• Nenhum resultado encontrado

Uma quest˜ao importante no estudo das t´ecnicas de teste baseado em especifica¸c˜ao por MEF ´e a avalia¸c˜ao da qualidade, ou cobertura de falhas, de um conjunto gerado (Yao et al., 1994). Ao longo da se¸c˜ao anterior, o m´etodo W foi introduzido. O autor deste m´etodo apresentou provas formais que garantem a cobertura de determinados tipos de defeitos pelos conjuntos gerados. Dessa forma, sabendo-se qual o m´etodo utilizado para gerar determinado conjunto de casos de teste, sabe-se tamb´em os tipos de falhas que este conjunto garante descobrir.

Por outro lado, quando se tem dispon´ıvel um conjunto de casos de teste gerado a partir de um m´etodo que n˜ao ´e conhecido, ´e importante definir maneiras de se avaliar esse conjunto. O objetivo de tal avalia¸c˜ao ´e revelar, sob algum aspecto, sua capacidade de encontrar falhas. Como discutido na Subse¸c˜ao 2.6.1, o conjunto de casos de teste ideal ´e aquele com menor custo de aplica¸c˜ao, ou seja, o menor conjunto em rela¸c˜ao `a quantidade e o tamanho das seq¨uˆencias de entradas inclu´ıdas, que, por meio das seq¨uˆencias de sa´ıdas

22 2.7. AN ´ALISE DA COBERTURA DE CASOS DE TESTE produzidas em sua aplica¸c˜ao, revele todas as poss´ıveis diferen¸cas entre a especifica¸c˜ao a partir do qual foi gerado, e qualquer implementa¸c˜ao interativa desconhecida.

Quando um conjunto possui tal capacidade de detec¸c˜ao de falhas, o mesmo ´e classifi- cado como m-completo e, quando utilizado em uma atividade de teste, aprova somente implementa¸c˜oes totalmente compat´ıveis com o comportamento especificado. O nome m-completo alude `a capacidade de encontrar erros em implementa¸c˜oes que contenham um n´umero m, desconhecido, de estados. Em uma segunda classifica¸c˜ao, os conjuntos de teste que provˆeem cobertura total de falhas somente quando se tem conhecimento de que n´umero de estados utilizados na constru¸c˜ao da implementa¸c˜ao sob teste ´e idˆentico ao n´umero n de estados da MEF de especifica¸c˜ao. Um conjunto com estas caracter´ısticas ´e dito ser n-completo.

2.7.1

Verifica¸c˜ao da Completude Atrav´es da Minimiza¸c˜ao de MEF

Yao et al. (1994) mostraram que o problema da verifica¸c˜ao da completude de um con- junto de casos de teste pode ser convertido no problema de se reduzir MEFs. O m´etodo consiste em reconstruir a MEF a partir das seq¨uˆencias que comp˜oem o conjunto. Ap´os reconstru´ıda, a MEF deve ser minimizada, e ent˜ao comparada com a MEF de especi- fica¸c˜ao. Verificar a equivalˆencia das MEFs ´e suficiente para decidir quando o conjunto ´e m-completo. Os resultados apresentados pelos autores demonstram a validade dessa abordagem, que ´e descrita com mais detalhes a seguir.

A partir de um conjunto de seq¨uˆencias de entradas e sa´ıdas (E/S), sejam essas seq¨uˆen- cias parte de uma especifica¸c˜ao ou casos de teste gerados a partir de um dos m´etodos apresentados ao longo deste cap´ıtulo, ´e poss´ıvel construir uma MEF capaz de exibir um comportamento consistente, ou seja, produzir sa´ıdas semelhantes `aquelas que est˜ao defini- das nas seq¨uˆencias do conjunto. Para tal, basta organizar os valores de E/S em uma estru- tura de ´arvore, explorando seq¨uˆencias que possuem valores em comum (prefixos iguais). Um exemplo desse processo ´e apresentado a seguir, considerando as seq¨uˆencias listadas na Tabela 2.2, geradas a partir do m´etodo W para a MEF da Figura 2.5.

Tabela 2.2: Seq¨uˆencias de Entrada/Sa´ıda geradas pelo m´etodo W Entradas/Sa´ıdas

a/1 a/0 b/0 b/0 a/1 b/0 b/1 b/0 b/1 a/0 b/1 b/0 b/1 b/0 b/0 b/1

Pode-se observar que as seq¨uˆencias definidas na Tabela 2.2 s˜ao reproduzidas pela MEF da Figura 2.6. Tal MEF ´e constru´ıda com a seguinte estrat´egia: estabelece-se um estado inicial, no exemplo q0, e a partir desse estado, s˜ao criadas ramifica¸c˜oes para cada seq¨uˆencia

de E/S no conjunto. O n´umero de transi¸c˜oes em cada ramifica¸c˜ao ´e equivalente ao n´umero de valores de E/S da seq¨uˆencia correspondente. Essas transi¸c˜oes s˜ao ordenadamente definidas de acordo com cada valor de E/S da seq¨uˆencia a qual est˜ao relacionadas. Quando duas seq¨uˆencias de E/S principiam por valores de entrada comuns, ou seja, contam com um prefixo em comum, suas ramifica¸c˜oes correspondentes s˜ao combinadas neste prefixo, de forma a se obter uma MEF determin´ıstica.

q 0 q 8 q 1 q 2 q 1 0 q 9 q 3 q 4 q 1 2 q 1 1 q 5 q 6 q 1 4 q 1 3 q 7 a / 1 a / 0 b / 0 b / 0 b / 1 b / 0 b / 1 b / 0 b / 1 b / 0 b / 1 b / 0 b / 0 a / 0

Figura 2.6: MEF em ´arvore (TFSM)

As MEFs que contam com essa caracter´ıstica, a organiza¸c˜ao em forma de ´arvore, recebem a denomina¸c˜ao Tree Finite State Machines (TFSM), ou ainda Tree Machines. Neste texto, o termo utilizado para fazer referˆencia a esse tipo de MEF ser´a MEF em ´

arvore. Uma MEF em ´arvore ´e uma MEF cuja representa¸c˜ao em diagrama resulta em um grafo com estrutura de ´arvore, tendo como n´o raiz o estado inicial (Yao et al., 1994). Com base nas propriedades desse tipo peculiar de grafo, sabe-se que sempre h´a um, e apenas um, caminho entre o estado inicial e cada um dos outros estados de uma MEF em ´arvore. Ainda, para cada estado (exceto o estado inicial) Si dessas MEFs, existe um,

e somente um, estado Sj que o precede, ou seja, a partir do qual se pode originar uma

transi¸c˜ao para Si.

Segundo Yao et al. (1994), para afirmar que o conjunto de seq¨uˆencias utilizadas na constru¸c˜ao da MEF em ´arvore ´e m-completo, ´e suficiente verificar a equivalˆencia entre a MEF constru´ıda e a especifica¸c˜ao, a partir da qual as seq¨uˆencias foram geradas. Os autores prop˜oem que tal tarefa seja realizada comparando ambas as m´aquinas em sua forma m´ınima. Dessa maneira, o problema de se decidir se um dado conjunto de seq¨uˆencias de E/S ´e m-completo se resume ao problema da redu¸c˜ao de estados, ou seja, a minimiza¸c˜ao de MEFs. Na Figura 2.7, (a) exibe a MEF em ´arvore da Figura 2.6 com os estados redundantes combinados (forma m´ınima), enquanto (b) reproduz novamente a MEF de

24 2.8. CONSIDERA ¸C ˜OES FINAIS

Documentos relacionados