Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduo
O desenvolvimento de sistemas no
uma tarefa simples e, por este motivo,
precisa que artifcios sejam utilizados
para diminuir os defeitos que podem ser
introduzidos nesse processo.
Teste de software contribui para a produo de um produto final de maior
qualidade e um processo bastante aceito
e difundido atualmente. Porm, uma das
questes mais complexas que norteia os
testes de software como garantir que os casos de testes gerados so eficientes, ou seja,
garantir que os casos de testes encontrem a
maior quantidade de defeitos possveis.
Dentre outras tcnicas que podem ser
utilizadas para se testar o software, ou melhorar os casos de testes, pode-se destacar
o Teste de Mutao.
Este artigo tem como finalidade principal
demonstrar a utilizao de um plug-in
desenvolvido para se aplicar testes de
mutao chamado MuClipse, alm de explicar os principais conceitos relacionados
a este tipo de teste.
Testes de Mutao
Por mais simples que um software possa
ser, os caminhos de execuo possveis na
sua utilizao podem ser muito grandes,
com isto praticamente impossvel testar
um sistema por completo e afirmar que o
sistema no contm defeitos.
Por outro lado, os tipos de problemas
que podem ser encontrados em um
software podem ser finitos. nesta premissa que os testes de mutao se embasam.
VA L I D A O, V E R I F I C A O E T E S T E S
Viso geral
A tcnica de teste de mutao divida em quatro
etapas. Primeiro, operadores de mutao so utilizados sobre o programa original realizando pequenas
alteraes sobre esse programa e gerando variaes,
ou seja, mutantes. Depois disto, o programa original
testado e deve ser aprovado pelos casos de testes.
Aps a execuo do programa original, os mutantes so
executados com o caso de teste e, se forem reprovados
pelo caso de teste so considerados mortos. Caso algum
mutante no seja reprovado, esse mutante considerado vivo e precisa ser analisado. Para os mutantes vivos
pode-se considerar que este mutante equivalente ao
programa original ou que os casos de testes no so
bons o suficiente para testar o programa. Neste ltimo
caso, os casos de testes devem ser alterados e, com isso,
se tornam cada vez mais eficientes.
Estudo de Caso
O MuClipse um plug-in para o IDE
(Ambiente de Desenvolvimento Integrado) Eclipse que tem por finalidade
auxiliar no processo de execuo de testes
de mutao em programas desenvolvidos
em Java. Ele funciona como uma ponte
entre o MuJava, um sistema para testes
de mutao em Java, e o Eclipse.
Ser criado um projeto chamado Aprovacao que conter uma classe Aluno
com os atributos nota1, nota2, notaFinal,
frequencia, os mtodos gets e sets desses
atributos e um mtodo chamado calcularAprovacao. Tambm ser criado um
caso de teste chamado TestarAprovacao
que tem por finalidade executar o mtodo
calcularAprovacao da classe Aluno.
A instalao do MuClipse bastante
simples, basta abrir o Eclipse e acessar o
menu Help / Software Updates..., clicar
sobre a aba Available Software e depois
sobre o boto Add Site. Neste momento
uma janela exibida onde deve ser digitado
http://muclipse.sourceforge.net/ no campo
Location e clicar sobre o boto Ok. Depois
disto, deve-se marcar o endereo adicionado anteriormente, como pode ser visto na
Figura 1, e clicar sobre o boto Install.
Para iniciar o caso de teste deve ser
criado um projeto chamado Aprovacao.
Depois disto deve ser criada a estrutura
do projeto que conter dois Source Folders
chamados src e testset cada um contendo
float nota1;
float nota2;
float notaFinal;
int frequencia;
VA L I D A O, V E R I F I C A O E T E S T E S
aluno aprovado. Caso a mdia entre as
duas primeiras notas for maior ou igual
a trs e menor que sete ento a nota final
considerada. A mdia entre a nota final
e a mdia das duas primeiras notas deve
ser maior ou igual a cinco para que o
aluno seja aprovado pela nota final, caso
contrrio o aluno reprovado.
Depois de criar a classe Aluno, os casos
de testes para executar essa classe devem
ser criados dentro do pacote br.com.
esmagazine no Source Folder testset. Para
isto, clique com o boto direito sobre esse
pacote e escolha a opo New / JUnit Test
Case. Com isto, uma janela exibida onde
deve ser digitado TestarAprovacao no
campo Name e, em seguida, clicar sobre
o boto Finish. Com isto uma classe que
estende a classe TestCase do framework
JUnit criada.
A classe TestarAprovacao deve conter os
casos de testes testReprovadoFrequencia,
testAprovadoNota, testReprovadoNota,
testReprovadoFinal e testAprovadoFinal. Alm disto, o MuClipse exige que
os mtodos setUp, chamado antes da
execuo de cada caso de teste, e tearDown, chamado depois da execuo de cada
caso de teste, sejam sobrescritos utilizando
o modificador de acesso public. Originalmente esses mtodos so declarados
como private.
A Listagem 2 demonstra como a classe
TestarAprovacao deve ficar aps completamente construda, que deve ser executada em relao ao programa original
para verificar sua conformidade com estes
casos de teste.
Para continuar o exemplo preciso
atender a mais uma exigncia do MuClipse: importar um arquivo chamado
extendedOJ.jar. Este arquivo pode ser
baixado atravs do site da ferramenta e
deve ser copiado para a pasta lib criada
anteriormente. Logo em seguida, deve-se
adicionar este arquivo ao Path da aplicao
clicando com o boto direito sobre ele e
depois escolhendo a opo Build Path /
Add to Build Path.
Gerando os Mutantes
Neste ponto, a classe a ser testada e os
casos de testes esto criados e possvel iniciar a criao dos mutantes. Para
isto, clique com o boto direito sobre o
projeto e escolha a opo Run As / Run
Executar Mutantes
Figura 5. Escolha dos Operadores de Mutao
VA L I D A O, V E R I F I C A O E T E S T E S
Em Name deve ser digitado o nome da
configurao como, por exemplo, ExecutarMutantes. O Campo Project deve
ser preenchido com o nome do projeto
e Mutants Output deve ser preenchido
obrigatoriamente com o diretrio result.
Em Class Folder deve ser digitado o
diretrio bin e em Source Folder deve
VA L I D A O, V E R I F I C A O E T E S T E S
Links
Site oficial do MuClipse
http://muclipse.sourceforge.net/
D
s
Feedback
eu
edio
ta
sobre e
s
Concluso
Este artigo procurou expor os principais
conceitos que fundamentam a tcnica de
testes de mutao e posteriormente aplicar