Geração automática de testes a partir de modelos UML Baseado em Diagramas de Estados Paulo Jorge da Costa Monteiro
Estrutura da Apresentação Introdução Diagrama de Estado e Máquina de Estados Geração de testes baseado: no controlo de fluxo no fluxo de dados Conclusão Áreas de Estudo Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Introdução Classes: Unidade básica de testes em OO Estudos: Especificações Algébricas Especificações baseados em modelos Diagramas de Estados Máquinas de estados finitas Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Introdução Testes Exaustivos são impossíveis!!! Aplicação de Diagramas de Estados na geração automática de testes: Controlo de Fluxo Fluxo de dados Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Diagrama de estados Comportamento de um objecto; Um estado: Situação estável; Prolongado durante um período de tempo; Objecto não sofre alteração de valor. Eventos causam a mudança de estados Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Diagrama de Estados Máquina de Café Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Diagrama de estados vs Máquina de estados Estados concorrentes e hierárquicos Permite broadcasting de eventos; Múltiplas Transições Acções associadas com estados e transições Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Máquina de Estados Estuda-se o conjunto máximo de estados em que um sistema pode estar simultâneamente. Retira: Hierarquia Estrutura de estados concorrentes Elimina broadcast de eventos Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Máquina de Estados Máquina de Estados: Tuplo(NStates, C0, NTrans) Máquina de Café Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado no controlo de fluxo Indentificado como caminhos em Máquinas de Estados; Podem existir caminhos infinitos; Requer definição de um critério de cobertura. Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado no controlo de fluxo Seja P um conjunto de caminhos: P satisfaz a cobertura de caminhos -> P incluir todos os caminho possíveis P satisfaz a cobertura de um estado -> para todo s, s NStates P satisfaz a cobertura de uma transição -> para todo t, t NTrans Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado no controlo de fluxo Pseudo-Código para geração do caso de teste Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado no controlo de fluxo Foi definida uma cobertura global; Algumas sequências de caminhos não são possíveis; Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado no controlo de fluxo Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados Baseado na noção de definições e uso de variáveis de classes. Em diagramas de estados, variáveis podem ser definidas e usadas acções de estados e nas suas transições Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados Definição de variáveis: Estados: Variável x é definida e/ou usada numa acção a de um estado, se essa acção alterar o seu valor. Transições: Variável x é definida e/ou usada numa acção a de um transição, se essa acção alterar o seu valor. Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados Definição e uso de variáveis Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados Definição e uso de estados Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados De seguida constroi-se um grafo de fluxo; Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Geração de testes baseado em fluxo de dados Estamos prontos para gerar casos de teste da análise técnica baseado nos Grafos de Fluxo. Testes deverão cobrir: Definição e Uso de variáveis Definição e Uso de Estados Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Conclusão Demonstrado que o método a seguir para a geração de testes: Controlo de fluxo Fluxo de dados Usando: Máquina de estados Grafos de fluxo Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Áreas de Estudo Testes Orientado a Objectos totalmente automatizados Testes relacionando várias classes Diagramas de Actividades Diagramas de Sequência Diagramas de Colaboração Uso de “herança” para realizar testes Dez/2006 Paulo Jorge da Costa Monteiro FEUP
Paulo Jorge da Costa Monteiro Bibliografia Y.G.Kim, H.S. Hong, D.B. Bae e S.D. Cha, “Test cases generation from UML state diagrams”, IEE Proc-Software,Vol 146, Nº 4, Agosto 1999. Dehla Sokenou, “Generating Test Sequences from UML Sequence Diagrams and State Diagrams”, GEBIT Solutions GmbH. Je Outt and Aynur Abdurazik, “Generating Tests from UML Specications”, USA. Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder, “UML-based Test Generation and Execution”, Siemens Corporate Research, Inc., USA. Dez/2006 Paulo Jorge da Costa Monteiro FEUP