Tabelas de decisão para a automação da geração e da execução de casos de teste Luana Lachtermacher Agenda • Motivação • Tabelas de Decisão • Trabalhos Relacionados • Proposta • Metodologia – Editor de Tabela de Decisão – Geração dos dados de teste – Geração dos scripts de teste • Exemplo • Próximos Passos 05/11/2015 Nome do Autor © LES/PUC-Rio 2 Motivação • Testes são importantes técnicas de controle da qualidade software. – Ainda são pouco eficazes – Normalmente a maior parte do processo é manual • Como o processo é manual: – não é garantido a completude dos testes. – não é garantido teste com diferentes dados. 05/11/2015 Nome do Autor © LES/PUC-Rio 3 Motivação • Processo de geração de massa de teste 05/11/2015 Nome do Autor © LES/PUC-Rio 4 Tabela de Decisão • O que é? – Expressa as combinações de condições necessárias para a execução de um determinado conjunto de ações. • Uma tabela de decisão é dividida em duas regiões: – Condições – Ações. • Através da tabela de decisão é possível validação: – Completude – Não Ambigüidade 05/11/2015 Nome do Autor © LES/PUC-Rio 5 Tabela de Decisão • Exemplo: Que tipo de triangulo é? 05/11/2015 CT1 CT2 CT3 CT4 C1 a=b Sim Sim Sim Não C2 a=c Sim Não Sim Sim C3 b=c Sim Sim Não Sim A1 Isósceles X X X A2 Eqüilátero A3 Escaleno X Nome do Autor © LES/PUC-Rio 6 Tabelas de Decisão para Teste • Cada coluna representa um caso de teste semântico. • As ações podem ser entendidas como sendo os oráculos. – Com isso será que é possível automatizar a execução dos testes? • É possível gerar automaticamente casos de teste valorados a partir das tabelas de decisão ? – A geração dos dados pode ser realizada através de gramáticas geradoras ou de uma seleção randômica de possíveis valores. 05/11/2015 Nome do Autor © LES/PUC-Rio 7 Tabelas de Decisão para Teste • Vantagens – Garante a completeza e não ambigüidade – Forma mais simples de planejamento – Visualização simplificada 05/11/2015 Nome do Autor © LES/PUC-Rio 8 Trabalhos Relacionados • Utilizadas em diferentes áreas: – Sistemas baseados em conhecimento [VANTHIENEN, 1993] – Especificação de regras de negócio [REUSCH, 2007] • Implementa tabela de decisão: – Chamado de Tablewise e que gera código Ada para implementação da tabela e geração de documentação texto sobre a tabela. [HOOVER, 1995] – LoginGem e Prologa – software proprietários 05/11/2015 Nome do Autor © LES/PUC-Rio 9 Trabalhos Relacionados • Área de testes: – Apresenta os casos de testes estruturado dentro dele. [FERRIDAY, 2007] – Existem ainda algumas considerações visando facilitar o uso de tabelas de decisão [JORGENSEN, 1995] 05/11/2015 Nome do Autor © LES/PUC-Rio 10 Proposta • Criar um processo de teste que: – O planejamento será feito através da tabela de decisão – A geração dos dados será realizada automaticamente – A geração dos scripts de teste também é gerado automaticamente. • A verificação da coerência entre a combinação de condições e os respectivos oráculos será realizada por inspeção ou revisão realizada por uma pessoa ou equipe. 05/11/2015 Nome do Autor © LES/PUC-Rio 11 Proposta • Serão tratados apenas os testes funcionais • Fazer a validação dos processo através de um estudo de caso de um sistema do Tecgraf. Comparando processo manual e o apresentado. 05/11/2015 Nome do Autor © LES/PUC-Rio 12 Contribuições Esperadas • Benefícios esperados: – elevada confiabilidade dos testes. – garantir a completeza nos testes. – a redução do custo na geração dos casos de testes. – garantir também maior cobertura nos teste ocasionado pela geração de dados aleatórios. – Reduzir o trabalho manual do processo de teste. 05/11/2015 Nome do Autor © LES/PUC-Rio 13 Metodologia Architect Specifier Standard use cases Transformation Interface designer User Interface Interface sketch Architect Marked up use cases State machine editor Reviewer XML State machines Designer Decision table generator Test case generator XML Typed decision tables Decision table editor XML Performable test cases Test script generator Test case selection criterion XML Decision tables XML Test cases Boundary conditions adder XML Automated test scripts Format & print 05/11/2015 Boundary conditions criterion Manual test cases Test tool specification Nome do Autor © LES/PUC-Rio 14 Editor de Tabelas de Decisão • Foi desenvolvido uma ferramenta para auxiliar nessa tarefa • As condições podem possuir relacionamentos uma com a outra • Garante a completeza e a não ambiguidade dos testes Geração dos Dados dos Testes • A geração dos dados depende do tipo de componente da interface. • Possíveis componentes: • Campo Texto – Tipo de valor assumido: string ou numérico • Check box • Radio Button • Lista • Combo • É gerado um arquivo XML 05/11/2015 Nome do Autor © LES/PUC-Rio 16 Geração do Script de Teste • O script de teste é gerado para framework FEST que é baseado no JUnit. • Para cada caso de teste gerado no XML dos dados é gerado um método no script. • É gerado um arquivo .java 05/11/2015 Nome do Autor © LES/PUC-Rio 17 Exemplo É construída 05/11/2015 Nome do Autor © LES/PUC-Rio 18 Exemplo – Dados Gerados 05/11/2015 Nome do Autor © LES/PUC-Rio 19 Exemplo – Script Gerado 05/11/2015 Nome do Autor © LES/PUC-Rio 20 Próximos Passos • Flexibilizar a geração de dados e a geração dos scripts • Fazer o estudo de caso 05/11/2015 Nome do Autor © LES/PUC-Rio 21 Dúvidas ? 05/11/2015 Nome do Autor © LES/PUC-Rio 22 Referencias Bibliográficas • [FERRIDAY, 2007] – Cai Ferriday, “A Review Paper on Decision Table-Based Testing” 2007 • [JORGENSEN, 1995] – Paul C. Jorgensen, “Software Testing – a Craftsman’s Approach” 1995, CRC Press. • [VANTHIENEN, 1993] – J.Vanthienen,et al “Illustration of a Decision Table Tool for Specifying and Implementing Knowledge Based Systems”, 1993 IEEE Boston Massachusetts. • [REUSCH, 2007] – Peter J. A. Reusch – “New Perspectives for Decision Tables in Project Management”, 2007 Germany IEEE 05/11/2015 Nome do Autor © LES/PUC-Rio 23 Referencias Bibliográficas • [PROLOGA] - http://www.econ.kuleuven.ac.be/prologa/ • [LOGICGEM] http://www.infopedia.com/products/logicgem/index.html • [NOTASTESTE] – Notas de aula do curso de Testes da PUCRio ministrado pelo Prof. Arndt Von Staa acessado através do site: http://www.inf.puc-rio.br/~inf2134/ • [STAA, 2000] – Arndt Von Staa, “Programação Modular”, 2000, editora: Campus. 05/11/2015 Nome do Autor © LES/PUC-Rio 24