• Nenhum resultado encontrado

2.3

Teste de Regressão

Teste de regressão é uma atividade realizada em uma versão nova ou modificada de um software, com o objetivo de identificar faltas inseridas durante estas modificações. Esta atividade tenta revalidar as antigas funcionalidades herdadas pela versão anterior. Dentre as versões de um componente ou sistema, podemos definir a versão base e a versão delta. A versão base é a versão do componente/sistema que passou em uma suíte de teste. Uma versão delta de um componente/sistema é uma versão modificada que não passou em uma suíte de teste de regressão. Uma delta build é uma configuração executável do Sistema sob Teste (SSB) que contém todos os componentes base e delta [Binder 1999].

Uma suíte de testes de regressão é composta por diversos casos de teste de regressão. Casos de teste de regressão são definidos como casos de testes que passaram na versão base e é esperado que passem na delta build. Quando encontramos um caso de teste que passava na versão base e não passa mais na versão delta, localizamos uma “falta de regressão”.

Teste de regressão é uma atividade que pode ser utilizada para aumentar a confi- ança e qualidade de um sistema, em um cenário onde constantes mudanças são realizadas [Korel et al. 2002]. Ainda que muito importante, esta atividade também é muito cara, pois exige uma grande quantidade de tempo e recursos computacionais, em especial quando li- damos com sistemas de software grande (i.e., um sistema com muitos subsistemas e compo- nentes integrados). Durante o teste de regressão, casos de teste desenvolvidos anteriormente são implantados para revalidar um sistema modificado, bem como novos casos de teste são freqüentemente gerados [Agrawal et al. 1993].

Diante disto, alguns relatórios indicam que a etapa de teste de regressão chega a consumir cerca de 80% dos recursos da etapa de Teste e até 50% dos recursos da etapa de manutenção. Dessa forma, diversos pesquisadores têm desenvolvidos trabalhos com o objetivo de reduzir este custo [Harrold and Orso 2008]. Estes trabalhos consistem em técnicas para lidar com as diversas atividades realizadas em um teste de regressão, que possibilitem a redução destes custos. Algumas destas atividades são ilustradas na Figura 2.2

As atividades (representadas pelas setas na Figura 2.2) caracterizam também os princi- pais problemas abordados na área de teste de regressão [Harrold and Orso 2008]. Através de técnicas propostas para a realização destas atividades, os custos do teste de regressão po-

2.3 Teste de Regressão 16

Figura 2.2: Atividades de um Teste de Regressão [Adaptada de Harrold e Orso]

dem ser reduzidos. Considerando um cenário de teste de regressão convencional, com um software C, uma suíte de testes T para esta versão do software, e uma versão modificada C0, obtida de C, as atividades da Figura 2.2 são caracterizadas da seguinte forma:

• Manutenção da Suíte de Testes: Esta atividade contempla a manutenção nos casos de teste da suíte de testes T . O objetivo desta manutenção é identificar os casos de teste obsoletos, ou seja, casos de teste que não são mais executáveis na nova versão do software (C0). Um caso de teste obsoleto que falha não revela faltas de regressão, pois a falha não é causada pela modificação em si, e sim pelo fato do caso de teste não ser mais executável na versão correspondete do sistema. Um cenário onde casos de testes obsoletos são, frequentemente, encontrados ocorre quando há modificações na interface gráfica do software.

• Seleção de Teste de Regressão: Esta atividade é realizada no subconjunto obtido como resultado da atividade de Manutenção da Suíte de Testes. Mesmo com a remoção dos casos de teste obsoletos, o tamanho da suíte de testes de regressão pode inviabilizar

2.3 Teste de Regressão 17

a execução de todos os casos de teste devido à indisponibilidade de recursos. por exemplo. Dessa forma, é necessário selecionar um subconjunto de casos de teste, a partir da suíte de teste de regressão, utilizando técnicas de re-teste seletivo.

• Priorização da Suíte de Testes: Mesmo após o processo de seleção dos casos de testes, a suíte de teste pode ser organizada com o objetivo de priorizar os casos de teste. Esta organização pode ser definida de acordo com critérios, como cobertura de requisitos ou estimativas de faltas de regressão [Harrold and Orso 2008], com o objetivo de diminuir o tempo de execução do teste de regressão. A priorização possui um objetivo distinto da selação de casos de teste. A priorização procura ordenar a suíte de testes, de forma que a ordem em que os casos de teste são executados afeta o processo de detecção de faltas. A seleção, por sua vez, procura reduzir a quantidade de casos de teste que devem ser executados.

• Aumento da Suíte de Teste: O objetivo desta atividade é adicionar casos de teste na suíte de teste de regressão, para contemplar algum critério de cobertura que não foi atingido pela suíte disponível (esta suíte pode ser referente à versão base, ou a suíte resultante das atividades anteriores).

• Minimização da Suíte de Testes: O objetivo da minimização é remover as redundân- cias presentes na suíte de teste de regressão. Estas redundâncias podem ser resultados da atividade de aumento na suíte de testes. Esta atividade considera como redundantes, os casos de teste que exercitam o mesmo comportamento na aplicação.

• Manipulação de casos de teste: Esta atividade é realizada com o objetivo de ma- nipular o caso de teste para reduzir os recursos necessários para a sua criação. Dessa forma, são verificados aspectos que viabilizem o reuso dos casos de teste, como por exemplo, realizar a geração dos casos de testes em diversos níveis de granularidade, para acelerar a execução e reuso de apenas algumas partes dos casos de teste.

Uma etapa de Teste de Regressão pode contemplar apenas algumas ou nenhuma destas atividades [Harrold and Orso 2008]. O nosso trabalho, se encaixa na atividade de Seleção de Testes de Regressão. Esta atividade também é conhecida como re-teste seletivo, e é geralmente realizada através de técnicas automáticas que selecionam subconjuntos da suíte