quinta-feira , 18 abril 2024
Evo Systems sem logo
Ínicio Tecnologia Automatização de testes a cada entrega aumenta a qualidade de um produto de TI de forma eficiente
Tecnologia

Automatização de testes a cada entrega aumenta a qualidade de um produto de TI de forma eficiente

1.1k
Compartilhe

* Por Leonardo Dominguez Dias, sócio-diretor da Evo Systems.

Se você está pensando em criar um novo produto de TI, é imprescindível testar todas as funções em diferentes cenários para alcançar o bom funcionamento do software e assim, evitar que falhas e bugs cheguem aos seus clientes e impactem os resultados de negócio. Os mesmos procedimentos de testes de construção são necessários na hora de fazer alterações ou atualizações. Na chamada do V Simpósio Brasileiro de Teste de Software Sistemático e Automatizado (SAST) deste ano, é citado, que estudos empíricos apontam que atividades relacionadas a testes representam mais de 50% dos custos de desenvolvimento.

Vale citar, que caso o sistema seja crítico ou core da sua empresa e esteja em evolução, o teste automatizado é uma ótima solução, e que ainda pode ser executada a cada etapa do desenvolvimento, integração de incremento de software e disponibilização do software em ambiente produtivo.

Porque considerar a automatização de testes de software

Na velocidade que as organizações demandam seus projetos, a adoção de metodologias ágeis também tem crescido progressivamente, favorecendo a entrega, mas também expondo o gargalo da verificação de sua qualidade. Afinal, entregas novas funcionalidades são mais urgentes e geram a sensação de quantidade sobre a qualidade das aplicações, que muitas vezes passam a sensação de retrabalho.

Quando os projetos são muito complexos ou demasiadamente grandes, com funcionalidades específicas e difíceis, rodam fora da empresa, em todo tipo de dispositivos ou ainda em diferentes hardwares e com diferentes capacidades, está na hora de automatizar o teste, evitando retrabalho e gastos desnecessários. A automatização é muito mais rápida e menos suscetível a erros, além de ser uma solução permanente. Com a automatização, por muitas vezes, sobra mais tempo, corrige os sistemas mais rapidamente e economiza recursos que podem ser empregados para desenvolvimento de novos produtos.

A automação de testes precisa ser planejada

Para a decisão entre automatizar ou não os testes em projetos, o especialista precisa entender as vantagens e desvantagens dentro da situação do projeto que realiza.

Vantagens

  • Aumento de produtividade – testes podem ser realizado até em paralelo
  • Diminuição dos erros – scripts projetados e já utilizados em outros momentos diminuem possíveis erros de digitação ou mesmo esquecimentos
  • Reuso – reutilizar testes no mesmo projeto ou em outros projetos, pequenos ajustes podem viabilizar realizar testes em outras partes do projeto

Desvantagens

  • Trabalho para criar automatizações (ferramentas, configuração, treinamentos)
  • Custos com as estruturas para suportar as ferramentas (servidores, licenças de software)

Vale reforçar que adotar a abordagem de automação em um projeto não precisa ser total. Pode-se adotar a estratégia de automação para um conjunto de testes altamente repetíveis e que demandam uso humano intensivo, deixando outros testes de forma manual.

Os testes – Quais são e para que servem?

São várias as possibilidades de testes automatizados, mas separei alguns imprescindíveis;

Testes unitários – Protegem a implementação – É uma especificação para os comportamentos esperados do código em teste. Facilita mudanças, e simplifica a integração.

Testes Funcionais – É capaz de determinar se o que o software foi programado para fazer está de fato fazendo.

Testes exploratórios – Antes de iniciar a automação, ou para conhecer o sistema que será testado no caso de legado, os testes exploratórios são complementares a um teste planejado, executado baseado em conhecimentos adquiridos em testes anteriores ou complementares a testes de regressão.

Testes de Interface e Aceitação – São testes caixa-preta que executam a jornada completa do usuário interagindo com o software

Teste de desempenho de carga – determina o desempenho de um sistema em condições de carga da vida real. Esse teste descobre como o sistema se comporta quando vários usuários acessam simultaneamente, por exemplo.

O mercado disponibiliza inúmeras ferramentas de automação ou ainda a possibilidade de contratar uma empresa que desenvolva uma ferramenta de automatização de testes sob medida. Uma solução desenhada para cada negócio é capaz de validar o comportamento do sistema, as regras de negócios e o desempenho da aplicação e pode ser empregada em aplicações web, móveis ou responsivas, com possibilidade de replicação para diferentes dispositivos.

A hora da decisão

A implantação nas empresas pode acontecer de diferentes maneiras, iniciando pela automação de testes unitários ou então por testes funcionais que simulam o uso do sistema por um usuário. Podem ser adotados testes automatizados para medir o desempenho uma funcionalidade em uma dada situação (ex.: rotina de geração de pedido e baixa de estoque numa blackfriday)

Projetar e implementar uma estratégia de testes automatizados é uma missão do time de desenvolvimento (do CIO a equipe de projetos) em sistemas que digitalizam processos ou são plataformas de negócios. Independente da sua decisão por ferramentas prontas ou por uma desenvolvedora especializada.  Acelerar a adoção dessas técnicas por meio de treinamentos especializados do próprio time ou pela parceria com fornecedores para transferência de tecnologia e expertise é uma necessidade. Não faz sentido ficar batendo cabeça ou investindo tempo em tentativa e erro, sem resultado garantido.

  • Leonardo Dominguez Dias é Mestre e engenheiro de computação pela Poli-USP com intercâmbio na universidade do estado da Califórnia USA. Atualmente é diretor da empresa Evo Systems, empresa especialista em inovação em TI e professor de pos graduação no Mackenzie e no PECE USP. Tem experiência na área de Engenharia da Computação, com ênfase em Arquitetura de Sistemas de Computação, projetos de implantação de fábricas de software e gestão de projetos de desenvolvimento de software e inovação.
Compartilhe

Deixe um comentário

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Conteúdo Relacionado

O outro lado da Inteligência Artificial: 4 dicas para se proteger dos perigos das deepfakes

À medida que a inteligência artificial se torna cada vez mais integrada...

Volkswagen Caminhões e Ônibus e Taggen desenvolvem tecnologia IoT para gestão inteligente de pátio

A Volkswagen Caminhões e Ônibus, em parceria com a Taggen Industries &...

Payface apresenta inovação para a indústria de pagamentos durante a Autocom 2024

A Payface, empresa líder de pagamentos por reconhecimento facial, em parceria com a...