O QUE SÃO TESTES DE REGRESSÃO?

Teste de Regressão significa testar novamente as partes inalteradas do aplicativo. Os casos de teste são executados novamente para verificar se a funcionalidade anterior continua a ser realizada adequadamente. Os testes de regressão verificam se alterações realizadas e novas inclusões de funcionalidades não introduziram novos bugs. Este teste pode ser realizado em uma nova compilação, quando há mudança significativa na funcionalidade original, ou mesmo em uma única correção de bug.

Como parte de um ciclo de liberação de novas versões, os testes de regressão devem ser considerados na estimativa de teste. Testes de regressão são normalmente realizados após a verificação de alterações ou novas funcionalidades, mas este não é sempre o caso. Para um projeto de ciclo longo, que vai levar meses para ser concluído, eles devem ser incorporados no ciclo de testes diariamente. Para lançamentos semanais, testes de regressão podem ser realizados quando o teste funcional for realizado para as alterações.

Os Testes de regressão são iniciados quando o programador corrige qualquer bug ou adiciona um novo código para uma nova funcionalidade no sistema. Pode existir muitas dependências na funcionalidade recém-adicionada e nas já existentes, portanto é uma medida de qualidade para verificar se o novo código está em conformidade com o código antigo e se o código não modificado não está sendo afetado.

A maior parte do tempo da equipe de testes é reservada para a tarefa de verificar as alterações e sem planejamento adequado, elas podem ser feitas de última hora no sistema, o que vai acarretar em baixa qualidade para o cliente. Em tais testes, verificar somente a área de aplicação afetada não é suficiente para completar o processo de testes, cobrindo todos os aspectos principais do sistema.

Quanto realizar testes de regressão?

Isto depende do alcance do recurso recentemente adicionado. Se o escopo da correção ou característica for grande, então os ensaios devem ser realizados exaustivamente, incluindo todos os casos de teste do aplicativo. Mas isso pode ser efetivamente decidido quando o testador, durante o planejamento do desenvolvimento da versão, for informado sobre o âmbito, a natureza e a quantidade de mudança.

Como estes são testes repetitivos, podem ser automatizados para que um conjunto de casos de teste possa ser facilmente executado em uma nova compilação. Casos de teste de regressão precisam ser selecionados com muito cuidado para que, em um conjunto mínimo de casos realize a máxima cobertura de uma funcionalidade.  O conjunto de casos precisa de melhorias contínuas para a funcionalidade recém-adicionada, e torna-se muito difícil quando o âmbito de aplicação é muito grande e há incrementos contínuos ou patches para o sistema. Os casos de testes seletivos precisam ser executados, a fim de economizar custos e tempo de teste. Estes casos de teste são selecionados com base nas melhorias feitas no sistema ou em partes, que podem ter afetado, durante a manutenção, a maioria das funcionalidades. Porém, a análise de risco e custos/benefícios devem ser realizadas para uma escolha correta do escopo de teste de regressão a fim de não gerar mais problemas na produção do cliente.

O que fazemos em regressão de teste?

• Executar novamente os testes realizados anteriormente;

• Comparar os resultados atuais com os resultados dos testes executados anteriormente.

Este é um processo contínuo executado em várias fases ao longo do ciclo de vida de teste de software. A melhor prática é a realização de testes de regressão após a liberação de uma versão ou release, a cada sprint ou ainda a cada novo build gerado, num processo de integração contínua.

Para realizar testes eficazes, o plano de testes de regressão deve ser criado. Este plano deve delinear a estratégia de teste de regressão e critérios de saída. O teste de desempenho é também a parte deste teste onde se pode ter a certeza de que a performance do sistema não será afetada devido às mudanças feitas nos componentes e funcionalidades do mesmo.

Melhores práticas indicadas para testes de regressão passam por execução automatizada de casos de teste, para que quaisquer efeitos secundários de regressão possam ser corrigidos o quanto antes. Desta forma, cobrindo quase todos os defeitos de regressão em estágios iniciais, em vez de encontrar e corrigir os que estão no final do ciclo de lançamento.

Você precisa executar testes de regressão do seu aplicativo, site, produto de software e não sabe como fazer? Deixe seu comentário e contato aqui no blog e eu lhe procurarei para conversarmos!

Por Rodrigo Almeida, Consultor em Qualidade de Software