• Nenhum resultado encontrado

3.1 Técnica baseada em Análise de Dependência

3.1.2 Descrição da técnica

Para iniciar a execução, a técnica necessita da MEFE e de um arquivo contendo as modifi- cações realizadas nesta MEFE. As modificações descritas neste arquivo devem apontar que transições ou estados foram modificados e qual o tipo da modificação, ou seja, se o estado ou transição foi: removido, adicionado ou modificado. Este último tipo de modificação é referente às alterações nos rótulos dos estados ou transições (e.g. alguma modificação de rótulo de botões na interface gráfica).

Uma vez que o modelo e as respectivas modificações são especificados, a técnica inicia a análise de dependência no modelo da versão base. A análise verifica todos os pares de transição para identificar as dependências de dados e controle. As dependências de dados são verificadas através de variáveis definidas e utilizadas nas transições do modelo. Por sua vez, as dependências de controle são identificadas através dos caminhos na MEFE, que iniciam no estado inicial e terminam no estado final.

É utilizado o conceito de pós-dominância [Korel et al. 2002, Bo 2005, Chen et al. 2007] entre as entidades do modelo para identificar as dependências de controle. As relações entre a definição e uso de uma variável são utilizadas para identificar as dependências de dados entre as transições. Diante disto, é necessário realizar diversos caminhamentos na máquina

3.1 Técnica baseada em Análise de Dependência 44

de estados, procurando identificar, para cada transição, as respectivas dependências.

Estas informações de dependências são estruturadas em um grafo estático de dependên- cias (GED) [Chen et al. 2007]. Neste grafo, cada vértice representa uma transição do mo- delo, e as transições que conectam os vértices deste grafo representam as dependências de dados e controle existente entre as transições da máquina de estados. O grafo estático de dependência obtido a partir do modelo da Figura 3.2 é apresentado na Figura 3.3. Este grafo apresenta as dependências encontradas seguindo a análise de dependências apresentada por Chen et al. [Chen et al. 2007].

Figura 3.3: Grafo estático de dependências obtido a partir da máquina de estados do exemplo.

Após estruturar o GED do modelo da versão base, a técnica realiza as modificações no modelo para obter a máquina de estados da versão delta. Cada tipo de modificação é tratada de forma diferente para a obtenção do modelo modificado. Para ilustrar estas modificações, foram realizadas 3 modificações. São elas:

• Adição da transição T9: Verificação de saldo na conta.

• Remoção da transição T6: Depósito de dinheiro.

3.1 Técnica baseada em Análise de Dependência 45

De acordo com a técnica, ao remover uma transição, é necessário criar um auto-laço no estado de origem da transição removida. Este auto-laço, indica que aquele estado pode apresentar uma falta por remoção. O modelo modificado pode ser visto na Figura 3.4.

Figura 3.4: Máquina de estados com as modificações especificadas.

Após obter o modelo modificado, o próximo passo é obter o GED do modelo modificado. Portanto, uma nova análise de dependência é inicializada verificando todas as transições da máquina de estados da versão base, procurando identificar as dependências e entidades afe- tadas pelas modificações. O GED da versão base também é verificado para identificar as dependências por efeito colateral, ou seja, as dependências que foram removidas, ou adi- cionadas devido às modificações realizadas. O GED da versão delta do nosso exemplo, é apresentado na Figura 3.5

Uma vez que as MEFE e os GED estão especificados, é possível iniciar a seleção na suíte de testes de regressão. Os autores da técnica argumentam que a suíte de testes de regressão utilizada não influencia no resultado da técnica, no entanto, eles recomendam que sejam uti- lizados casos de teste que cobrem as funcionalidades já modificadas, por exemplo, os casos de teste que cobrem as transições adicionadas, ou que não cobrem as transições removidas durante as modificações. Também é possível utilizar uma suíte de testes de regressão gerada automaticamente a partir da máquina de estados da versão delta.

3.1 Técnica baseada em Análise de Dependência 46

Figura 3.5: Grafo estático de dependências obtido a partir da máquina de estados com as modificações.

Os padrões de interação são subgrafos do GED modificado, e são obtidos a partir de algo- ritmos específicos para cada modificação realizada. Chen et al. estabelecem cerca de 15 padrões de interações para os tipos de modificações realizadas [Chen et al. 2007].

Para cada modificação, é selecionado um subconjunto da suíte de regressão, composto pelos casos de teste que exercitam a transição ou estado modificado. Então, cada caso de teste deste subconjunto é analisado, e são construídos até 3 padrões de interações para o caso de teste. Depois cada par de caso de teste deste subconjunto é verificado com o objetivo identificar os casos de teste que possuem os mesmos padrões de interação. Possuir os mes- mos padrões de interação é representado pela técnica como redundância e portanto, dentre os casos de teste que possuem os mesmos padrões de interação, apenas um é escolhido para a suíte selecionada.

Após realizar a verificação de todos os subconjuntos de cada modificação, os casos de teste selecionados serão executados no teste de regressão. Foi observado, em estu- dos de caso reportados pelos autores da técnica, uma redução de cerca de 90% da suíte de testes de regressão ao utilizar esta técnica. No entanto, é importante considerar que os casos de teste gerados automaticamente em uma máquina de estados, geralmente, co-