:\s vcrsoes com defeito do Sort. batizadas de versoes L II. .... XL forarn entao "tes- ladas" utilizando-se a Muta«;ao de Interface. Mutantes forarn gerados utilizando- sc todos os operadores de rnuta«;ao, exceto os operadores de cobertura de nos (' de arestas (CovAllNod c CovAllEdg). Esses operadores foram aplicados a 7 conexoes do prograrna, descritas na Tabela 15. Nessa tabela. a prirneira coluna mostra quais saG as fun«;oes que fazern charnadas as fun<;oes da segunda coluna. A terceira coluna fornece 0 mirnero de vezes que a conexao existe no prograrna,
ou seja 0 nurnero de chamadas que a fun<;a,o que chama faz
a
fun«;ao chamada.Experiencias anteriores [75] rnostram que operadores de troca de variaveis c de constantes. quando aplicados diversas vezes no rnesmo ponto. tendern a geraT JTmtantes que se cornportam de rnaneira sernelhante. Por exemplo, trocando uma ocorrencia, de urna variavel por todas as outras variaveis cornpativeis san gerados
A rllutantes - onde
N
e 0 nurnero de variaveis compatlveis - que tern a tendenciaa se cornportar de rnaneira semelhante, ou seja, se urn deles e distinguido por um caso de teste, os demais san tarnbern distinguidos pelo rnesmo caso de teste. Assirn.
Tabela 15: Conexoes onde foram aplicados os operadores de Muta<;ao de Interface no programa Sort
Fun<;ao que chama Fun<;ao chamada
#
de chamadasmam sort 1 merge qsort 1 sort qsort 1 qsort qsort 2 merge disorder 2 cmp skip 4 cmp cmpa 1
apenas urn deles seria suficiente para selecionar 0 mesmo caso de teste. Por isso,
nos experimentos. a aplica<;ao dos operadores de troca de variaveis e constantes foi limitada, utilizando as caracteristicas de parametriza<;ao dos operadores de Muta<;ao de Interface. Operadores "DirVarRep" que atuam sobre variaveis de interface foram limitados a, no maximo, 2 mutantes por ocorrencia de variavel. Os operadores "IndVarRep" foram limitados a, no maximo, 1 mutante por ponto de muta<;ao. Coincidentemente,o mimero de mutantes gerados para cada uma das versoes do Sort foi sempre 0 mesmo. A Tabela 16 mostra 0 mimero de mutantes
gerados para cada urn dos operadores.
Operador Mutantes Operador Mutantes DirVarRepPar 114 I DirVarRepGlo 46 DirVarRepLoc 118 DirVarRepExt 2;12 DirVarRepCon 118 DirVarRepReq 116 IndVarRepPar 98 IndVarRepGlo 8:3 IndVarRepLoc 107 IndVarRepExt 147 IndVarRepCon 73 IndVarRepReq 67 DirVarlncDec 240 IndVarIncDec 230 DirVarAriNeg .58 IndVarAriNeg 67 DirVarLogNeg .58 IndVarLogNeg 67 DirVarBitNeg .58 IndVarBitNeg 67 RetStaDel 12 RetStaRep 10 ArgRepReq 0 ArgStcAli 6 ArgStcDif I ArgDel 8 ArgAriNeg 4 ArgLogNeg 4 ArgBitNeg 4 ArglncDec .52 FunCalDel 44 TOTAL 2309
dos 30 conjuntos de teste adequados
a
Mutac;ao de Interface (MI-adequados).0
processo de criaC;ao de cada urn desses conjuntos e esquematizado na Figura 40. Inicialmente, san marcados os mutantes equivalentes. Depois, urn pool de 500 casos de teste e gerado aleatoriamente e a partir desse pool, os casos de teste san retirados e utilizados na execuc;ao dos mutantes. Somente os casos de teste que distinguem pelo menos urn mutante - ou seja, aqueles "selecionados" pelos mutantes - sa.o mantidos no conjunto MI-adequado, os demais san descartados. Esse processo e repetido ate que se obtenha urn escore de mutac;ao de 100% ou ate que 0 pool seja esgotado. Nesse ultimo casa, pode-se obter urn conjunto nao100% adequado1•
Obteve conjunto
MI-adequado
Figura 40: Processo de gerac;ao de urn conjunto de teste ;"lI-adequado para 0
program a
Sort
o
processo de identificac;ao dos mutantes equivaJentes tambem foi automa- t.izado. Antes de iniciar-se a criac;ao dos conjuntos MI-adequados. os rnutantes de cada urn dos experirnelltos de I a XI foram executados corn urn conjunto de.lOO casos de teste gcrados a.lcatoriamcntc. Mutantes nao distinguidos nessc pro- cesso forarn considerados equivalentes nas fases seguintes do experimento. Assinl. a operaC;ao "Marcar Mutantes Equivalentes" que aparece no. Figura 40 consiste sirnpJesmente ern marcar como equivalentes os mutantes previamente identifica-
dos como tal. Essa certamente nao e uma maneira precisa de determinarem-se os mutantes equivalentes porem e uma abordagem conservadora. Ela pode fazer com que mutantes que nao san equivalentes sejam marcados como tal. Como conseqiiencia, durante a constru<;:ao dos conjuntos MI-adequados, pode-se deixar de selecionar um caso de teste que mataria aquele mutante. Isso pOl' sua vez s6 pode fazer com que 0 conjunto MI-adequado seja menos efetivo em revelar urn
defeito. nunca mais efetivo. Dessa forma. as medidas de efetividade obtidas san pessimistas.
Uma vez obtido urn conjunto MI-adequado, sua efetividade e verificada pela sua capacidade em revelar 0 defeito semeado na versao do
Sort
para 0 qual ele foiconstrufdo. Para isso. cada caso de teste do conjunto e executado com a versao original do
Sort,
sern defeito, e com a versao incorreta. Se para algum dos casos de teste os resultados obtidos sao diferentes, conclui-se que 0caso de teste selecionado C capaz de revelar 0 defeito. Como san gerados 30 conjuntos adequados paracada versao incorreta do
Sort,
pode-se obter uma inferencia estatfstica sobre a efetividade em revelar crros desses conjuntos. 1\a Tabela 17 san mostrados os resultados para cada um dos experimentos, isto e, a media e 0 desvio padrao doescore de muta<;:ao e do nurnera de casos de teste em cada conjunto adequado e a porcentagem de conjuntos que revel am 0 defeito.
No teste baseado em muta<;:ao no nfvel de unidade, experimentos tem mostrado que a utiliza<;:ao de um numera alto de operadores de muta<;ao pode ser substitufda par um subconjunto de operadores que podem alcan~ar a mesma efetividade ern revelar defeitos porem com um custo sensivelmente inferior [18]. Intuitivamente. o mesrno cleve ocorrcr ao aplicar-se Muta<;ao de Interface Assirn. a aplicac:ao do conjunto completo no teste de um programa pode levar a um conjunto de mutantes supcrdimcnsionaclo que pocleria ser substitufclo par outra menor e com a mesma efetividade. POI' isso, foram utilizados tambem nesse experirnento os crit(~rios MI-alternati vos.
Faram selecionados alguns subconjuntos de mutantes que faram executados corn os conjuntos MI-adequados. Ap6s essa execu<;ao. somente aqueles case)s de teste que distinguem algum rnutante desse subconjunto sao mantidos. seleciorlClIHlo- se assim urn subconjunto do conjunto ~vll-adequado. A efetividade desses novos conjuntos. adequados aos criterios alternativos, forarn entao medidas para se ava- liar qual seria a efetividade obtida equal seria 0custo do teste se fossem utilizados somente esses criterios. As Tabelas 18 e 19 mostrarn as rnedidas de efetividacle 011-
tidas pOI' alguns dos criterios alternativos. Os criterios Ml-alternativos utilizaclos forarn:
I