O que é regressão de software?
A regressão de software é um erro na programação de software que faz com que o software efetivamente regrida em uma ou mais áreas. Existem dois tipos principais de regressão de software: funcional e não funcional. Funcional significa que o programa trabalha em velocidades adequadas, mas uma ou mais funções não estão funcionando, enquanto não funcional significa que todas as funções estão funcionando, mas a velocidade diminui drasticamente. Um evento, como uma atualização, geralmente é a causa da regressão. O teste de regressão verifica o software para garantir que nenhuma regressão tenha ou ocorrerá.
A regressão funcional de software é uma maneira pela qual a regressão de programa pode se manifestar. Quando isso ocorre, o programa continuará sendo executado a toda velocidade, para que o usuário não perceba a regressão primeiro. Nesta manifestação, existem certas funções que não funcionam mais. Por exemplo, se um programa puder procurar arquivos, essa função poderá não funcionar mais. Isso pode afetar as funções acessórias - aquelas não usadas com frequência - ou a função principal do programa.
A regressão de software não-funcional é mais perigosa e mais fácil de notar, mesmo que todas as funções ainda estejam funcionando. Nesta manifestação, a regressão torna o programa mais lento ou a saída do programa será significativamente menor. A falta de velocidade significa que o programa também pode se tornar vulnerável a códigos e ataques maliciosos, colocando o programa e o computador em que está correndo o risco de invadir. A velocidade pode ficar tão lenta que pode ser impossível usar o programa.
Para que a regressão de software ocorra, um evento chamado deve ocorrer. Este evento altera a codificação do software e apresenta esses erros, intencionalmente - o que é raro - ou involuntariamente. O desenvolvedor pode estar tentando corrigir um bug ou atualizar a versão, mas introduz incorretamente algum código que regride o programa. O evento mais típico é uma atualização, porque isso afeta diretamente a codificação do programa. Outros eventos incluem alterações de versão ou configuração.
Para aliviar as chances de regressão de software, geralmente é empregado o teste de regressão. Esse tipo de teste examina o novo programa e o compara com todas as versões antigas do programa. Em seguida, executa a programação através de um teste para verificar se há algum sinal de regressão e garantir que toda a codificação esteja funcionando. Quaisquer sinais de código regredido ou que não funcionem serão devolvidos ao desenvolvedor ou usuário e informarão o que regrediu ou onde a regressão foi encontrada.