IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.:...

91
IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos de estado-

Transcript of IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.:...

Page 1: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Criado: abril 2001Últ. atualiz.: set / 2011

Testes baseados na especificação

- modelos de estado-

Page 2: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 2

Referências

R.Binder. Testing OO Systems, 2000.A.P.Mathur. Foundations of Software Testing. Pearson Education Editora,

2008, cap. 3.M.E.Delamaro et al. Introdução ao teste de software, Campus, 2007, cap. 3H.Robinson. “Graph Theory in Model-based Testing”. Obtido em set/20010

em http://www.harryrobinson.net/ http://www.geocities.com/harry_robinson_testing/graph_theory.htm

M. Utting, B. Legeard. Practical Model-Based Testing.Morgan Kaufmann Publishers, 2007.

C.Nagle. “Test Automation Frameworks”, 2000. Obtido em set/2009 em: http://testpro.com.au/whitepapers/Test-Automation-Frameworks-by-Carl-Nagle.pdf

Page 3: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 3

Tópicos

• Testes baseados em modelos: conceito• Modelo de estados: apresentação• Características• Propriedades• Testes de transição de estados

Page 4: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 4

Testes caixa preta Especificação:RequisitosProjeto

Independente de notação

Partição de equivalênciaValores LimiteGrafo causa-efeitoTabela de decisão

Dependente de notação

Baseada em modeloBaseada em linguagem de especificação

Page 5: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 5

Testes caixa preta Especificação:RequisitosProjeto

Independente de notação

Partição de equivalênciaValores LimiteGrafo causa-efeitoTabela de decisão

Dependente de notação

Baseada em modeloBaseada em linguagem de especificação

Page 6: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 10

Modelo de estados

Page 7: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 11

O que é

• Máquinas Finitas de Estado (MFE)– aplicação na Engenharia (hw e sw) de modelo matemático

denominado autômato finito– são usadas desde os anos 50 para modelar circuitos

– usadas desde os anos 60 para modelar sw • protocolos de comunicação

• analisadores de sintaxe

• sistemas de controle

• interfaces-usuário

• comportamento de objetos

reconhecedor de linguagens regulares

Page 8: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 12

O que é (cont.)

• Modelo de comportamento formado por estados, transições e ações

• O estado armazena informações sobre o passado

• As transições indicam mudanças de estado• As ações representam atividades que podem ser

realizadas em um determinado momento.

Page 9: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 13

Exemplo de modelo de estados: Notepad

Fonte: H. Robinson, StarWest 2006

NotRunning

WindowEmpty WindowFilled

SaveDialog

Page 10: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 14

Exemplo de modelos de estados: Web site

Fonte: H. Robinson, StarWest 2006

Homepage

Imagepage Newspage

ImageTab

HomeTab

NewsTab

HomeTab

NewsTab

ImageTab

Page 11: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 15

Classificação

• Há dois grupos distintos de máquinas:– Modelo de Moore

– Modelo de Mealy

Page 12: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 16

Modelo de Moore

• As saídas dependem unicamente dos estados

• As ações são executadas quando se entra no estado

• Ex.: sistema de controle de uma porta de garagem [Rumbaugh et al 91]

Fechada

Abrindo

Aberta

Fechando

abrir

porta_aberta fechar

porta_fechada

abrir

fechar

Page 13: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 17

Modelo de Mealy

• As saídas dependem das entradas e dos estados

• As ações são executadas conforme a entrada fornecida

Fechada

Aberta

Aciona motor;porta_aberta

fechar

Aciona motor;porta_fechada

abrir

Page 14: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 18

Elementos de uma MFE• Estado

– conjunto de valores dos dados do sistema em um determinado momento

• Transição– leva o sistema de um estado para outro devido à ocorrência de um

evento

• Evento– entrada ou período de tempo

• Ação– Atividade a ser realizada em um determinado momento. No modelo de

Mealy, elas ocorrem em resposta a uma entrada.

Page 15: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 19

Elementos de uma MFE (cont.)

• Estado inicial– estado do sistema (ou componente) em que o 1º evento é aceito

• Estado origem / estado destino– uma transição leva o sistema de um estado origem a um estado

destino, os quais podem ser iguais

• Estado atual– estado corrente em que se encontra a execução do sistema

• Estado final– estado do sistema no qual eventos não são mais aceitos. O sistema

pode ter 0 ou mais estados finais. No tipo transdutor, em geral, não existem estados finais.

Page 16: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 20

Tópicos

• Modelo de estados: apresentação• Características• Propriedades• Testes de transição de estados

Page 17: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 21

Semântica (modelo de Mealy)

• A máquina inicia no estado inicial.

• A máquina espera por um evento durante um tempo indeterminado.

• A máquina recebe um evento.

• Se o evento não é aceito no estado corrente da máquina, ele é ignorado.

• Se o evento é aceito no estado atual: a transição correspondente é disparada, a ação associada é ativada e o estado designado como próximo torna-se o estado atual (pode ser o mesmo).

• Os passos anteriores se repetem até que a máquina chegue a um estado final ou volte ao estado inicial.

Page 18: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 22

Um modelo de estados ...

• Não leva em conta a maneira pela qual um evento é produzido

• Trata um evento por vez. Uma única transição pode ser disparada em um dado momento

• Não aceita nenhum evento além daqueles especificados

• Só pode estar em um único estado em um dado momento

• É estático: estados, eventos, transições e ações não podem ser criados nem removidos quando a máquina é executada

• Não descreve como uma ação produz uma saída

• Não tem intervalo de tempo associado a nenhum aspecto do modelo. O disparo de transições é considerado atômico, ie, não consome tempo

Page 19: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 23

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

10

Page 20: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 24

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

10Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

Page 21: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 25

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

10Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

Page 22: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 26

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

10Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

Page 23: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 27

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

10Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

Page 24: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 28

Exemplo de funcionamento

0

5

1015

20

5

10

5

5

10

10Máquina de refrigerante:-refrigerante custa 15 centavos- máquina aceita moedas de 5 e 10 centavos

Page 25: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 29

Notação 1: diagrama de estado

1

2

B / y

A / —

B / —

A / x

1

2

B—

By

Ax

A—

1

2

B / y

A / —

B / —

A / x

clássico Análise Estruturada

UML[Binder 2000]

Page 26: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 30

Estados EventosA B

1 2/x 1/– 2 2/– 1/y

Notação 2: tabela de transições

estadodestino

açãoestadoorigem

Page 27: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 31

Tópicos

• Modelo de estados: apresentação• Características• Propriedades• Testes de transição de estados

Page 28: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 32

Propriedades

• Completa: quando a cada par evento-estado está associada uma transição. Caso contrário a MFE é dita incompleta ou parcialmente especificada.

1

2

B / y

A / —

B / erro

A / x

1

2

B / yA / x

incompleta completa

Page 29: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 33

Propriedades

• Mínima: quando não possui estados equivalentes– Dois estados s e s’ são equivalentes se toda seqüência

de entrada começando em s produz exatamente as mesmas saídas quando começam em s’

– Existem algoritmos para detectar se uma MFE é mínima.

– Existem algoritmos que minimizam uma MFE.

Page 30: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 34

Estados equivalentes - exemploa / y

s0

s1 s2 s3

s1’ s2’ s3’

a / u

a / y

b / u

b / x

b / x

a / w a / w

b / u

b / u

a / u

a / u

b / y

b / y

s0

s1 s2 s3a / u

b / u

b / x

a / w

b / u

a / u

b / y

Page 31: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 35

Propriedades

• Fortemente conexa: todo estado é alcançável a partir de um outro estado– Um estado s’ é alcançável a partir de um estado s se

existe um caminho de s a s’.

– Em outros termos: se existe uma seqüência válida de eventos que leve a MFE de s a s’.

– A MFE é dita inicialmente conexa se todo estado s é alcançável a partir do estado inicial s0.

Page 32: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 36

Conectividade - exemplo

s0

s1 s2

s3 s4

s5

Page 33: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 37

Propriedades

• Determinismo: para cada estado, existe uma e somente uma transição para cada entrada aceita no estado. Nesse caso diz-se que a MFE é determinista. Caso contrário, a MFE é indeterminista, ou seja, pode ter mais de uma transição para um dado estado e uma dada entrada.

• Existem algoritmos que transformam máquinas indeterministas em deterministas, mas com restrições (domínio de valores de dados, etc).

1

2

B / y

A / —

B / erro

A / x

1

2

B / y

B / x

B / erro

A / x

Page 34: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 38

Propriedades

Uma MFE testável deve ser:– Completa: a cada par evento-estado deve ser associada

uma transição (alguns métodos aceitam MFE incompleta)

– Mínima: não possui estados equivalentes

– Inicialmente conexa: todo estado é alcançável a partir do estado inicial

– Determinista: a cada par evento-estado está associada uma e somente uma transição

Page 35: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 39

Tópicos

• Modelo de estados: apresentação• Características• Propriedades• Testes de transição de estados

Page 36: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 40

Testes de transições de estado: princípio

M I

entrada

Resultado esperado

Resultado observado

defeito

Page 37: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 41

Passos para os testes de transição de estados

Construir o modelo de estados Revisar o modelo construído possui propriedades

desejadas? Gerar os casos de testes obtendo as entradas e saídas

esperadas Executar os testes gerados Analisar os resultados:

– saída observada = saída esperada ?

– estado final correto ?

Page 38: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 42

Como chegar a um estado específico

• Usar uma seqüência de sincronização, que leva a MFE de um estado s a um estado s’– São úteis para posicionar a máquina em um estado

específico

– Como obter: uso de árvore de sincronização

Page 39: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Árvore de sincronização

S1

S3 S2

S0

a/x

b/y b/—

a/x

b/ya/—

b/x

{S0, S1, S2, S3}{S0, S1, S2, S3}

{S1, S2, S3}{S1, S2, S3}

aa{S0, S1, S3}{S0, S1, S3}

bb

{S2, S3}{S2, S3} {S0, S1, S2}{S0, S1, S2}

aa bb

{S2, S3}{S2, S3} {S0, S3}{S0, S3}aa bb

{S1, S3}{S1, S3} {S0, S1}{S0, S1}aa bb

……

{S0, S1}{S0, S1}

bb

{S1}{S1}bb

Seq sincroniz. S1 =bbbDe qqr estado, ao aplicar essa seq se chega em S1

Seq sincroniz. S1 =bbbDe qqr estado, ao aplicar essa seq se chega em S1

Page 40: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 44

Como chegar a um estado específico

• Usar uma seqüência de sincronização, que leva a MFE de um estado s a um estado s’– São úteis para posicionar a máquina em um estado

específico

– Cálculo: uso de árvore de sincronização Nem sempre existe essa seqüência

Nesse caso, usar algoritmo de caminho mínimo a partir do estado inicial seqüência de transferência

A seq. de sincronização para o modelo nem sempre vai sê-lo para a implementação

Page 41: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 45

Como voltar ao estado inicial

• Usar seq de sincronização que leve ao estado inicial

Caso não exista …• Usar uma transição de reset, que leva a MFE de

um estado s ao estado inicial s0 …– Precisa ser especificada e implementada

• Ou ainda, terminar o processo

Page 42: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 46

Quais falhas se pode revelar? • Omissão de transição: a implementação não responde a um par

evento/estado especificado

• Transição incorreta: o estado resultante é válido, mas incorreto (falha de transferência)

• Omissão de ação: a implementação não responde a um evento válido

• Ação incorreta: a implementação executa a ação errada em resposta a um evento

• Caminho furtivo: a implementação aceita um evento não especificado para o estado (suposição de completeza incorreta)

• Corrupção de estado: a implementação faz transição para um estado inválido (não especificado)

• Omissão/acréscimo de estado: a implementação apresenta comportamento imprevisível

• Alçapão: a implementação aceita evento não especificado [Binder00, 7.4]

Page 43: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 47

Taxonomia dos testes

Utting, A.Pretschner, B.Legeard. A Taxonomy of Model-Based Testing. Working Paper Series. Univ. of Waikato, Apr/2006.Utting, A.Pretschner, B.Legeard. A Taxonomy of Model-Based Testing. Working Paper Series. Univ. of Waikato, Apr/2006.

Critérios de seleção dos

testes

Critérios de seleção dos

testes

Baseado em grafosBaseado em teoria de autômatosBaseado em falhas

Baseado em grafosBaseado em teoria de autômatosBaseado em falhas

Técnica Técnica

ManualBusca exaustivaBusca aleatóriaBusca baseada em heurística...

ManualBusca exaustivaBusca aleatóriaBusca baseada em heurística...

Geração dos testesGeração

dos testes

Page 44: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 48

Testes baseados em cobertura

• Exercitar caminhos no modelo(análogo aos testes de caminhos caixa branca)

• Caminho = seqüência de entradas + saídas esperadas

• Como nos testes caixa branca: nº de caminhos pode ser muito alto …

• O quê fazer nesse caso?

Page 45: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 49

Geração de testes - critérios

• Diferentes critérios podem ser aplicados, como nos testes caixa branca:– Cobertura de estados do modelo

– Cobertura de transições do modelo

– Cobertura de seqüências de transições (“Switch cover”)

– Cobertura borda-interior (boundary-interior)

– …

Page 46: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 50

Cobertura de estados

S1

S3 S2

S0

a/x

b/y b/—

a/x

b/ya/—

b/x

Critério: visitar cada estado do modelo pelo menos uma vez

Caso de teste: a / x – a / x – b / y – b / x

Page 47: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 51

Cobertura de transições ( método T )

S1

S3 S2

S0

a/x

b/y b/—

a/x

b/ya/—

b/x

Estado S0 S1 S1 S2 S3 S3 S0 S1 S2 S3 S0Entrada a b a b a b b a b bSaída esperada x — x y — x y x y x

Critério: visitar cada transição do modelo pelo menos uma vez

Page 48: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 52

Cobertura de transições

• Algoritmos do tipo Carteiro Chinês são utilizados para percorrer as arestas do grafo

• Para evitar caminhos muito longos pode-se ter um caso de teste para cada transiçãoPode ter muitos casos de teste redundantes

• Passos:– Aplicar seqüência de entradas que levem a s2– Aplicar entrada b– Verificar se saída obtida é y

Page 49: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Switch-cover (SC)

• Switch-cover (SC) = combinações de arestas (transições)– Ex.: 1-SC = combinações de pares de transições

• Em Teoria de Grafos: algoritmo de de Bruijn para gerar combinações de seqüências de arestas

Page 50: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Switch-cover (SC)

s1 s2

s3

T1: a/0

T2: b/1

T6: b/0T5: b/1 T3: a/1

T4: a/0

Requisitos de teste para o modelo:(T1, T2), (T1, T3), (T2, T2), (T2, T3), (T3, T4), (T3, T5), (T4, T4), (T4, T5), (T5, T6), (T5, T1), (T6, T4), (T6, T5)

Critério1-SC: cada par de transições adjacentes do modelo deve ser coberto pelo menos uma vez

Page 51: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Switch-cover (1-SC) - testes

s1 s2

s3

T1: a/0

T2: b/1

T6: b/0T5: b/1 T3: a/1

T4: a/0

Seq. de testes

Saídas esperadas

Pares cobertos

abbaaab 0111001 (T1, T2), (T2, T2), (T2, T3), (T3, T4), (T4, T4), (T4, T5)

aaba 0110 (T1, T3), (T3, T5), (T5, T1)

aabb 0110 (T1,T3), (T3, T5), (T5, T6)

baab 0001 (T6, T4), (T4, T4), (T4, T5), (T6, T5)

bb 01 (T6, T5)

Page 52: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Cobertura borda-interior

• Um conjunto de testes é adequado para este critério se os laços do modelo são visitados 0 (passa pela borda, i.e, pula o laço) e pelo menos 1 vez (passa pelo interior do laço)

s1 s2

s3

T1: a/0

T2: b/1

T6: b/0T5: b/1 T3: a/1

T4: a/0

Seq. de testes

Saídas esperadas

Transições cobertas

aab 011 (T1, T3), (T3, T5)

abaabb 00001 (T1, T2), (T3, T4), (T5, T6)

Page 53: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Percurso aleatório (Random Walk)

• Princípio:– A partir do estado

corrente, escolher aleatoriamente uma transição

– Repetir o mesmo processo para o próximo estado

Fácil de implementar Bom para testar cenários

inesperados ou pouco comuns Demora a cobrir modelos

grandes

57

Page 54: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Percurso aleatório guiado• Guia o percurso de forma a cobrir áreas de interesse no modelo

• Modelo com probabilidades associadas às transições:– Ex.: distribuição uniforme

– Transições com maior probabilidade têm mais chance de serem visitadas

Cobertura de transições com baixa probabilidade vai requerer grande número de testes

58

0

)(1

),(Pr ijisgssob se (si, sj) T

senãog(si) – grau de saída de si

Page 55: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Exemplo

59

s1 s2

s3

T1: a/0

T2: b/1

T6: b/0T5: b/1 T3: a/1

T4: a/0

Prob(T1)=0,99999

Prob(T6)=0,00001

Page 56: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Testes baseados em teoria de autômatos

• Testes formais, visam mostrar a equivalência entre I (implementação) e M (modelo) – Equivalência de entrada e saída: I, quando submetida a

entradas produzidas a partir de M, produz as mesmas saídas especificadas em M?

• Baseiam-se em seqüências de verificação de estado

Page 57: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 61

Verificação do estado

• Aplicar seqüências de entradas ao estado corrente da MFE

• Observar asa saídas produzidas

• Analisar as entradas e saídas para identificar o estado origem, isto é, o estado em que a máquina estava quando a seqüência foi aplicada.

• Necessita de seqüência de identificação de estado

Page 58: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Elementos de uma MFE - Formalização

• Uma MFE pode ser definida como uma tupla: (X, Y, S, s0, , O)

– X: conjunto finito de entradas (alfabeto de entrada)

– Y: conjunto finito de saídas (alfabeto de saída)

– S: conjunto finito de estados

– s0 : estado inicial

: X S S - função de transição -- no máximo um próximo estado (modelo determinista)

– O: X S Y - função de saída

Page 59: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 63

Como obter seq de identificação do estado

• Existem 3 métodos principais (e diversas variantes):– UIO: obtém seqüências únicas de entrada e saída por

estado

– DS: obtém uma seqüência de distinção para a MFE que permite distinguir um estado do outro

– W: obtém um conjunto de seqüências de caracterização

Page 60: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 64

Seqüência Única de Entrada e Saída

• Método U ou UIO (do inglês Unique I/O Sequences)– Seqüência x que distingüe cada

estado s dos demais: s’ S, s s’, O(s, x) O(s’, x)

– Cada estado tem sua UIO

– A máquina precisa ser:• Fortemente conexa

• Mínima

– UIOs podem não existir

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

Estado UIOS0 abS1 bS2 ?S3 a

Page 61: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 65

Seqüência Única de Entrada e Saída

• Método U ou UIO (do inglês Unique I/O Sequences)– Seqüência x que distingüe cada

estado s dos demais: s’ S, s s’, O(s, x) O(s’, x)

– Cada estado tem sua UIO

– A máquina precisa ser:• Fortemente conexa

• Mínima

– UIOs podem não existir

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

Estado UIOS0 abS1 bS2 abS3 ba

Page 62: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Como aplicar o método U

• Cada seqüência é da forma:Seq sincronização (ou transferência) sm entrada de sm a sn UIO(sn)

• Exemplo:

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

Transição alvoTransição alvo

Seq:aa b ba Seq:aa b ba

Page 63: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 67

Seqüência de Distinção

• Método D ou DS (do inglês Distinguishing Sequence)– Seqüência x que produz uma saída

diferente para cada estado s, s’ S, s s’, O(s, x) O(s’, x)

– A DS está associada à máquina

– A máquina precisa ser:• Completa

• Fortemente conexa

• Mínima

– A DS pode não existir

DS =ab Estado saidaS0 x S1 x y

S2 yS3 x

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

Page 64: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Como aplicar o método D

• Gerar as seqüências:– Seqüência-: verifica todos os estados

– Seqüência-: verifica todas as transições

Page 65: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Como obter a seqüência- (1)

• Gerar um grafo (grafo-):– Nó = estado

– Aresta: liga cada estado origem ao estado resultante da aplicação de DS

Page 66: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Grafo-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

DS = abDS = ab

S0S0

S1S1

ab/xab/x S3S3

ab/xyab/xy

ab/xab/x

S2S2ab/yab/y

Page 67: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Como obter a seqüência- (2)

• Escolher um estado origem no grafo-– Estado origem = estado que não tem arestas de entrada

no grafo

– Quando não houver mais estado origem, escolher qqr nó que não tenha sido visitado

• Gerar a seqüência de sincronização (ou de transferência) para o estado origem escolhido

• Aplicar DS ao estado final atingido

Page 68: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Exemplo - seqüência-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

S0S0

S1S1

ab/xab/x S3S3

ab/xyab/xy

ab/xab/x

S2S2ab/yab/y

Estado-origemEstado-origem

… S2… S2 S3S3 S0S0 S1S1 S3S3 Verifica se S3Verifica se S3DSDS DSDS DSDS DSDS DSDS

Seq de S0 a S2Seq de S0 a S2

Page 69: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

• Obter o grafo (grafo- ) da seguinte forma:– Nó = estado

– Aresta: liga cada estado origem ao estado resultante da aplicação de xm DS, xm X (alfabeto de entrada da máquina)

Como obter a seqüência-

Page 70: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Grafo-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

xm DS, xm X DS = ab

xm DS, xm X DS = ab

S0S0

S3S3

a aba ab S1S1

S2S2

b abb ab

Page 71: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Grafo-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

xm DS, xm X DS = ab

xm DS, xm X DS = ab

S0S0

S3S3

a aba ab S1S1

S2S2

b abb ab

b abb ab

a aba ab

Page 72: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Grafo-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

xm DS, xm X DS = ab

xm DS, xm X DS = ab

S0S0

S3S3

a aba ab S1S1

S2S2

b abb aba aba ab

a aba ab

b abb ab

Page 73: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Grafo-

S1

S3 S2

S0a/x

b/y b/—

a/x

b/ya/—

b/x

a/

xm DS, xm X DS = ab

xm DS, xm X DS = ab

S0S0

S3S3

a aba ab S1S1

S2S2

b abb ab

b abb ab

a aba ab

a aba ab

a aba ab

b abb ab

Page 74: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Geração da seqüência-

• Percurso no grafo-, visitando todas as arestas– Muita redundância, dado que já se aplicou a seqüência-

– Reduzir grafo-

Page 75: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Redução do grafo-S1

S3 S2

S0a/x

b/y

b/—

a/x

b/ya/—

b/x

a/

DS = abDS = ab

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

Estados resultantes da aplicação de DSEstados resultantes da aplicação de DS

S0S0

S3S3

a aba ab S1S1

S2S2

b abb ab

b abb ab

a aba ab

a aba ab

a aba ab

b abb abTransições com entrada b saindo de S1, S2 e S3 retirar do grafo- porque já foram testadas com a seqüência-

Transições com entrada b saindo de S1, S2 e S3 retirar do grafo- porque já foram testadas com a seqüência-

Page 76: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Redução do grafo-S1

S3 S2

S0a/x

b/y

b/—

a/x

b/ya/—

b/x

a/

DS = abDS = ab

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

Estados resultantes da aplicação de DSEstados resultantes da aplicação de DS

S0S0

S3S3

a aba ab S1S1

S2S2

b abb aba aba ab

a aba ab

a aba ab

Page 77: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Redução do grafo-S1

S3 S2

S0a/x

b/y

b/—

a/x

b/ya/—

b/x

a/

DS = abDS = ab

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

a bS0 S1 S1S1 S2 S1S2 S2 S3S3 S3 S0

Estados resultantes da aplicação de DSEstados resultantes da aplicação de DS

S0S0

S3S3

a aba ab S1S1

S2S2

b abb aba aba ab

a aba ab

a aba ab

Seqüência- : a ab, a abS0 S3 S0 a, a ab S0S1 S3 a a a ab S0S1 S2 S3

Seqüência- : a ab, a abS0 S3 S0 a, a ab S0S1 S3 a a a ab S0S1 S2 S3

Page 78: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Exemplo

Estado atual

Saída Próximo estado

a b a b

s1 x0 x1 s1 s4

s2 x0 x1 s1 s5

s3 x0 x1 s5 s1

s4 x1 x1 s3 s4

s5 x1 x1 s2 s5

Inspirado em [Mathur2008, pg214]

Gerado com a Plavis: http://www2.dem.inpe.br/plavisFSM/main.php Gerado com a Plavis: http://www2.dem.inpe.br/plavisFSM/main.php

Page 79: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 83

Método W

• Conjunto de caracterização (W)– Contém seqüências que podem distingüir cada par de

estados s, s’ S, s s’, x W: O(s, x) O(s’, x) para x X+

– W está associado à máquina– A máquina precisa ser:

• Completa• Fortemente conexa• Mínima

– W sempre existe se a máquina é mínima

Page 80: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 84

Método W – Geração de testes

• Geração de testes:– Estimar se M e I têm aproximadamente o mesmo nro. de

estados• Assume-se que nro estados (I) nro estados (M)

– Obter W– Obter a árvore de transições para dela extrair o conjunto

de cobertura de transições, P– Construir o conjunto Z– O conjunto de testes é dado por: P Z

Page 81: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

O conjunto W

Si Sj x O(Si, x) O(Sj, x)

S1 S2 baaa x1x1x0x1 x1x1x0x0

S1 S3 aa x0x0 x0x1

S1 S4 a x0 x1

S1 S5 a x0 x1

S2 S3 aa x0x0 x0x1

S2 S4 a x0 x1

S2 S5 a x0 x1

S3 S4 a x0 x1

S3 S5 a x0 x1

S4 S5 aaa x1x0x1 x1x0x0

Page 82: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 86

Árvore de Alcançabilidade

• Para obter P, é preciso construir a árvore de alcançabilidade, da seguinte forma: O estado inicial é a raiz da árvore. Examine cada estado não-terminal e cada transição que sai desse

estado. No mínimo uma nova aresta é criada para cada transição. Essa aresta liga o estado atual ao próximo estado

Para cada nova aresta e cada novo nó adicionado no passo 2:• se o novo nó corresponde a um estado já representado por um outro

nó da árvore ou a um estado final, marque esse nó como terminal (nenhuma aresta será criada a partir desse nó)

Repita os passos e até que todos os nós tenham sido marcados como terminais.

[Binder00, 7.4]

Page 83: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Conjunto de cobertura de transições

S1

S1

S1

S1

a

b

a

a

a

a

b

b

b

b

Árvore de alcançabilidade

Page 84: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Conjunto de cobertura de transições

S1

S1

S1

S1

a

b

a

a

a

a

b

b

b

b

P = {, a, b, bb, ba, bab, baa, baab, baaa, baaab, baaaa}

Árvore de alcançabilidade

• Conjunto (de caminhos parciais) que cobre todas as transições.• Cada caminho começa no estado inicial.• é a seq nula.

Page 85: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Conjunto Z

• O conjunto Z é obtido como: – Z = (X0 W) (X1 W) … (Xm-n W)

• m: nº de estados de I

• n: nº de estados de M

• m > n

• X0 = {}, X1 = X, X2 = X X, …

em que indica concatenação

Page 86: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Conjunto de testes

• No exemplo, assumindo que m = n tem-se:– Z = X0 W = {a, aa, aaa, baaa}

• Concatenando-se P e Z:– T = {, a, b, bb, ba, bab, baa, baab, baaa, baaab, baaaa}

{a, aa, aaa, baaa} {a, aa, aaa, baaa, aa, aaa, aaaa, abaaa, ba, baa, baaa, bbaaa, bba, bbaa,bbaaa, bbbaaa,…} Plavis: 66 casos de testePlavis: 66 casos de teste

Page 87: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 91

Sumário• Testes caixa preta são baseados na especificação do sistema,

ignorando seu código fonte

• Partições de equivalência são úteis para testar entradas isoladamente

• Análise de valores-limite testa entradas isoladamente, nos limites, sendo portanto indispensáveis

• Grafo causa-efeito/tabela de decisões são úteis para testar combinações de entradas

• Máquinas de estado são úteis para testar seqüências válidas de entradas. Devem ser verificadas.

• Abordagem recomendada: combinar técnicas.

Page 88: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Exercícios

• Gere casos de testes para os problemas a seguir, considerando os critérios:– Cobertura de estados

– Cobertura de transições

Page 89: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 93

Exercício1 – Controle de microondas

Considere o sistema de controle de um microondas, com botões para: escolha da potência, ajuste do relógio e iniciar. O funcionamento do forno se dá da seguinte forma:

1.Selecione o nível de potência (máxima ou média)

2.Informe o tempo de cozimento

3.Pressione Iniciar e o alimento será cozido durante o tempo especificado

Por razões de segurança, o microondas não pode operar enquanto a porta estiver aberta.

Ao completar o cozimento, um alarme é acionado.

O microondas possui também um pequeno visor alfanumérico que permite exibir várias mensagens de avisos e de alerta.

Baseado em [Sommerville 2003, cap 7]

Page 90: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado

Diagrama de estados

94

Page 91: IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos.

IC-UNICAMP Eliane Martins

Testes baseados em modelos de estado 95

Exercício 2

• Forneça a especificação na forma de modelo de estados para um sistema de controle de aquecimento de uma casa, composto de um aquecedor, um termostato e um ventilador. O controle da temperatura é distribuído, ie, cada cômodo tem um controlador de temperatura. Se a temperatura em um cômodo cai abaixo de ta-2, onde ta é a temperatura ambiente desejada, o aquecedor é ligado. Quando a temperatura do aquecedor atinge um limite máximo T, este é desligado e o ventilador é acionado para espalhar o ar quente. Enquanto isso o termostato monitora e registra a temperatura ambiente. Quando esta atinge ta +2, o aquecedor é desligado. O ventilador continua ligado até que a temperatura do aquecedor chegue a T-5. Assuma que ta +2 > T-5.

[Alagar e Periyasamy 98]