Atualmente, o custo de manutenção de software representa cerca de 50% do custo de uma empresa desenvolvedora de software. O Instituto de Pesquisa Triângulo (RTI), sediado no Estados Unidos, realizou um estudo para o Instituto Nacional de Padrões e Tecnologia (NIST) dos EUA, em 2002, para estimar o impacto do teste de software inadequado sobre a economia dos Estados Unidos. As suas conclusões foram que esses custos ou perdas financeiras ocasionadas por defeitos de software ficaram na ordem de US$ 59,5 bilhões, ou 0,06% do PIB dos EUA. Cerca de 37%, ou US$ 22 bilhões, deste custo poderia ser evitado caso fossem aplicadas técnicas de automação de testes de forma correta, com infrastrutura adequada e realizados de forma sistemática.
Um estudo recente da Universidade de Cambridge mostra que o custo global com defeitos de software, nas atividades de encontro e remoção dos defeitos, cresce anualmente a uma taxa de US$ 312 bilhões de dólares. Este custo representa em média a metade do tempo de desenvolvimento de projetos de software. Os desenvolvedores, em média, gastam 50,1% do seu tempo em atividades que não são de desenvolvimento. Metade do tempo útil do programador é gasto em atividades de correção de defeitos.
Diante destes custos elevadíssimos, destacamos CINCO MOTIVOS PARA INVESTIR EM AUTOMAÇÃO DE TESTES DE SOFTWARE PARA REDUZIR ERROS EM PRODUÇÃO.

1- Teste manual sozinho não consegue ter a mesma abrangência de execução dos testes automatizados

Cada grupo de desenvolvimento de software testa seus próprios produtos, contudo software entregues sempre tem defeitos. Os analistas de teste se esforçam para pegá-los antes do produto ser lançado, mas os defeitos insistem em reaparecer, mesmo com os melhores processos de testes manuais. Automação de testes de software é a melhor maneira de aumentar a eficácia, a eficiência e a cobertura de execução do seu teste de software, aumentando assim a confiabilidade e a estabilidade dos sistemas em ambiente de produção.

2- Teste manual é executado por seres humanos. E seres humanos invariavelmente falham.

Teste de software manual é uma atividade realizada por um ser humano sentado em frente ao computador, que de forma cuidadosa, passa por telas de aplicativos, tentando várias combinações de uso e de entrada, comparando os resultados com o comportamento esperado e evidenciando as suas observações. Testes manuais são repetidos por várias vezes durante os ciclos de desenvolvimento de alterações no código fonte e outras situações, como vários ambientes operacionais e configurações de hardware. Estas repetições de teste manuais podem ser falhas, cada pessoa pode interpretar uma ação ou resultado de forma diferente no momento da execução do teste ou ainda, se ausentar por diversos motivos, gerando atrasos ao projeto.

3- Teste automatizado é executado por robôs, 24 horas por dia, 7 dias por semana.

Uma ferramenta de testes automatizados é capaz de reproduzir ações pré-gravadas e pré-definidas, comparar os resultados com o comportamento esperado e relatar o sucesso ou fracasso desses testes manuais para um analista de teste. Uma vez que os testes automatizados são criados, eles podem facilmente ser repetidos e estendidos, uma tarefa impossível com os testes manuais. Devido a isso, os gerentes experientes descobriram que o teste de software automatizado é um componente essencial dos projetos de desenvolvimento bem-sucedidos.

4- A cobertura de teste aumenta de forma significativa nos testes automatizados

Teste de software automatizado pode aumentar a profundidade e o alcance de testes para ajudar a melhorar a qualidade do software. Testes longos e que muitas vezes são evitados durante o teste manual podem ser executados sem supervisão. Eles podem até mesmo ser executados em vários computadores com diferentes configurações. Teste de software automatizado pode olhar para dentro de um aplicativo e ver o conteúdo da memória, tabelas de dados, conteúdo de arquivos, comparar imagem de telas, e os estados internos do programa para determinar se o produto está se comportando conforme o esperado. Automação de teste pode facilmente executar milhares de diferentes casos de teste complexos durante cada teste, fornecendo uma cobertura que é impossível com testes manuais.

5- Teste automatizado de software economiza tempo e dinheiro

Testes de software tem que ser repetido muitas vezes durante os ciclos de desenvolvimento, para garantir que a qualidade seja mantida em níveis aceitáveis. Cada código fonte alterado precisará ter testes de software repetido. Para cada versão do software liberada, pode ser necessário que seja testado em todos os sistemas operacionais e configurações de hardware. Fazer isto manualmente é uma tarefa muito dispendiosa e demorada. Uma vez criado, os testes automatizados podem ser executados uma e outra vez sem nenhum custo adicional, e eles são muito mais rápidos do que os testes manuais. Teste de software automatizado pode reduzir o tempo para executar testes repetitivos de dias para horas, com um nível de acertividade muito maior do que os seres humanos podem conseguir realizar. A economia de tempo é traduzida diretamente em redução de custos, aumento de qualidade e satisfação do cliente.
Veja neste comparativo entre teste manual e teste automatizado. O custo inicial do teste automatizado é de fato maior, mas é um custo que se paga já a partir do quinto sprint. E o custo do teste manual continua a crescer de forma linear até não poder ser mais viável, onde passa a deixar de ser feito e irá gerar custos de manutenção corretiva, além de desgastes na relação com o cliente e perda de mercado do seu produto.
Teste manual e teste automatizado
O ROI (return of investment) dos testes automatizados sobre teste manual pode ser da ordem de 63% ao final de um ano. Algo espetacular, concorda?
ROI
 
Por Rodrigo Almeida, Gerente de Qualidade de Software

Leave a Reply

Your email address will not be published. Required fields are marked *

Post comment