Tópicos Avançados em Engenharia de Software Generating Tests from Counterexamples Allynson Praxedes Leonardo 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.