Tópicos Avançados em Engenharia de Software
Generating Tests from Counterexamples
Allynson PraxedesLeonardo Nunes
Resumo
Software model Checker extendido do BLAST-Conjunto de Vetores de testes
-Localizações do programa(Predicado P verdadeiro)
Código morto
Model Checker
Execução do programa viola uma especificação do mesmo.
Caminho falhos ou Caminhos que violam a especificação
Executa até encontrar um Counterexample
Overview
Fase 1: Model checking
• Encontrar o vetor teste que leva o programa para a localização L5;
• m=z; assume (y<z); assume (x<y);• Os passos para a execução do programa
alcançar L5 no CFA Counterexemple
Fase 2: Tests from counterexamples
• Encontrar um vetor teste – valores associados a x, y e z – que alcance L5;
• trace formula (TF) – conjunção das restrições:– (m = z) ^ (y < z) ^ (x < y)– “x=0,y=1,z=2,m=2”
Continuação
• Repetir as duas fases até para cada localização• Até produzir um conjunto de vetores teste
para todas as localizações de CFA.
• Localizações não são alcansáveis: L13 e L15
Executando testes
• Construir o Test Driver para o programa dado;• Utilizando o BLAST’s testdriver generator;• Aceita como entrada os vetores de teste
gerados;• Executa os testes.