A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Criado: abril 2001 Últ. atualiz.: set / 2011 Testes baseados na especificação - modelos."— Transcrição da apresentação:

1 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-

2 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 2 Referências R.Binder. Testing OO Systems, 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. 3 H.Robinson. Graph Theory in Model-based Testing. Obtido em set/20010 em M. Utting, B. Legeard. Practical Model-Based Testing.Morgan Kaufmann Publishers, C.Nagle. Test Automation Frameworks, Obtido em set/2009 em: Nagle.pdf

3 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

4 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 4 Testes caixa preta Especificação: Requisitos Projeto Independente de notação Partição de equivalência Valores Limite Grafo causa-efeito Tabela de decisão Dependente de notação Baseada em modelo Baseada em linguagem de especificação

5 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 5 Testes caixa preta Especificação: Requisitos Projeto Independente de notação Partição de equivalência Valores Limite Grafo causa-efeito Tabela de decisão Dependente de notação Baseada em modelo Baseada em linguagem de especificação

6 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 6 Testes baseados em modelos Nome dado a um conjunto de técnicas de testes baseados em modelos de comportamento do software. O modelo é obtido a partir dos requisitos. Visam automação da geração de testes Geração de testes começa cedo no ciclo de desenvolvimento Geração dos testes independe do código Melhora rastreabilidade entre modelos e requisitos Casos de testes são tão bons quanto o modelo do qual derivam validar o modelo

7 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Levantamento de Requisitos Análise e Projeto Codificação e Integração Testes Geração deTestes Modelo de testes Conj. de testes Requisitos Projeto Código

8 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 8 Tipos de modelos Diagramas de casos de uso: descrevem as funções realizadas por diferentes atores do sistema Diagramas de Atividades: mostram as atividades que o sistema pode realizar e a relação de ordem entre elas Tabelas/Árvores de decisão: mostram conjuntos de condições de entrada e as ações resultantes Máquinas Finitas de Estados: mostram o comportamento do sistema em termos de estados e das transições entre estados Gramáticas: descrevem a sintaxe de entrada Statecharts: extensão das Máquinas Finitas de Estados contendo hierarquia, concorrência, entre outros. …

9 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 9 Modelo de testes O modelo deve atender aos objetivos dos testes –De acordo com o Plano de Testes O modelo deve ter uma sintaxe e semântica precisas modelo testável –Tratável por ferramentas

10 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 10 Modelo de estados

11 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

12 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.

13 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

14 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 14 Exemplo de modelos de estados: Web site Fonte: H. Robinson, StarWest 2006 Homepage ImagepageNewspage ImageTab HomeTab NewsTab HomeTab NewsTab ImageTab

15 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

16 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

17 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

18 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.

19 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.

20 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

21 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.

22 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

23 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 23 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos 10

24 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 24 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos

25 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 25 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos

26 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 26 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos

27 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 27 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos

28 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 28 Exemplo de funcionamento Máquina de refrigerante: -refrigerante custa 15 centavos - máquina aceita moedas de 5 e 10 centavos

29 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 ByBy AxAx A 1 2 B / y A / B / A / x clássico Análise Estruturada UML [Binder 2000]

30 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 30 EstadosEventos AB 12/x1/– 22/–1/y Notação 2: tabela de transições estado destino ação estado origem

31 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

32 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 / y A / x incompleta completa

33 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.

34 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 34 Estados equivalentes - exemplo a / y s0 s1 s2 s3 s1 s2 s3 a / u a / y b / u b / x a / w b / u a / u b / y s0 s1 s2 s3 a / u b / u b / x a / w b / u a / u b / y

35 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.

36 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado 36 Conectividade - exemplo s0 s1 s2 s3 s4 s5

37 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

38 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

39 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

40 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

41 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 ?

42 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

43 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/y a/ b/x {S0, S1, S2, S3} {S1, S2, S3} a {S0, S1, S3} b {S2, S3} {S0, S1, S2} a b {S2, S3} {S0, S3} a b {S1, S3} {S0, S1} a b … b {S1} b Seq sincroniz. S1 =bbb De qqr estado, ao aplicar essa seq se chega em S1

44 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

45 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

46 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]

47 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. Critérios de seleção dos testes Baseado em grafos Baseado em teoria de autômatos Baseado em falhas Técnica Manual Busca exaustiva Busca aleatória Busca baseada em heurística... Geração dos testes

48 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?

49 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) –…

50 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/y a/ b/x Critério: visitar cada estado do modelo pelo menos uma vez Caso de teste: a / x – a / x – b / y – b / x

51 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/y a/ b/x EstadoS0 S1 S1 S2 S3 S3 S0 S1 S2 S3 S0 Entrada a b a b a b b a b b Saída esperada x x y x y x y x Critério: visitar cada transição do modelo pelo menos uma vez

52 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ção Pode 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

53 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

54 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Switch-cover (SC) s1 s2 s3 T1: a/0 T2: b/1 T6: b/0 T5: 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

55 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/0 T5: b/1 T3: a/1 T4: a/0 Seq. de testes Saídas esperadas Pares cobertos abbaaab (T1, T2), (T2, T2), (T2, T3), (T3, T4), (T4, T4), (T4, T5) aaba0110(T1, T3), (T3, T5), (T5, T1) aabb0110(T1,T3), (T3, T5), (T5, T6) baab0001(T6, T4), (T4, T4), (T4, T5), (T6, T5) bb01(T6, T5)

56 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/0 T5: b/1 T3: a/1 T4: a/0 Seq. de testes Saídas esperadas Transições cobertas aab011(T1, T3), (T3, T5) abaabb00001(T1, T2), (T3, T4), (T5, T6)

57 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

58 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 se (s i, s j ) T senão g(s i ) – grau de saída de s i

59 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Exemplo 59 s1 s2 s3 T1: a/0 T2: b/1 T6: b/0 T5: b/1 T3: a/1 T4: a/0 Prob(T1)=0,99999 Prob(T6)=0,00001

60 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

61 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

62 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, s 0,, O) –X: conjunto finito de entradas (alfabeto de entrada) –Y: conjunto finito de saídas (alfabeto de saída) –S: conjunto finito de estados – s 0 : 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

63 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

64 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 S0 a/x b/y b/ a/x b/y a/ b/x EstadoUIO S0ab S1b S2? S3a

65 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 S0 a/x b/y b/ a/x b/y a/ b/x a/ EstadoUIO S0ab S1b S2ab S3ba

66 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) s m entrada de s m a s n UIO(s n ) Exemplo: S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ Transição alvo Seq: aa b ba

67 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 Estadosaida S0x S1x y S2 y S3 x S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/

68 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

69 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

70 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Grafo- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ DS = ab S0 S1 ab/x S3 ab/xy ab/ x S2 ab/ y

71 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

72 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Exemplo - seqüência- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ S0 S1 ab/x S3 ab/xy ab/ x S2 ab/ y Estado-origem … S2S3S0S1S3 Verifica se S3 DS Seq de S0 a S2

73 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 x m DS, x m X (alfabeto de entrada da máquina) Como obter a seqüência-

74 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Grafo- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ x m DS, x m X DS = ab S0 S3 a ab S1 S2 b ab

75 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Grafo- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ x m DS, x m X DS = ab S0 S3 a ab S1 S2 b ab a ab

76 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Grafo- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ x m DS, x m X DS = ab S0 S3 a ab S1 S2 b ab a ab b ab

77 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Grafo- S1 S3 S2 S0 a/x b/y b/ a/x b/y a/ b/x a/ x m DS, x m X DS = ab S0 S3 a ab S1 S2 b ab a ab b ab

78 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-

79 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Redução do grafo- S1 S3 S2 S0 a/x b/ y b/ a/x b/y a/ b/x a/ DS = ab a b S0S1S1 S1S2S1 S2S2S3 S3S3S0 Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 b ab a ab b ab Transições com entrada b saindo de S1, S2 e S3 retirar do grafo- porque já foram testadas com a seqüência-

80 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Redução do grafo- S1 S3 S2 S0 a/x b/ y b/ a/x b/y a/ b/x a/ DS = ab a b S0S1S1 S1S2S1 S2S2S3 S3S3S0 Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 b ab a ab

81 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Redução do grafo- S1 S3 S2 S0 a/x b/ y b/ a/x b/y a/ b/x a/ DS = ab a b S0S1S1 S1S2S1 S2S2S3 S3S3S0 Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 b ab a ab Seqüência- : a ab, a ab S0 S3 S0 a, a ab S0 S1 S3 a a a ab S0 S1 S2 S3

82 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Exemplo Estado atual SaídaPróximo estado abab s1x0x1s1s4 s2x0x1s1s5 s3x0x1s5s1 s4x1 s3s4 s5x1 s2s5 Inspirado em [Mathur2008, pg214] Gerado com a Plavis:

83 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

84 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

85 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado O conjunto W SiSi SjSj xO(S i, x)O(S j, x) S1S2baaax1x1x0x1x1x1x0x0 S1S3aax0x0x0x1 S1S4ax0x1 S1S5ax0x1 S2S3aax0x0x0x1 S2S4ax0x1 S2S5ax0x1 S3S4ax0x1 S3S5ax0x1 S4S5aaax1x0x1x1x0x0

86 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]

87 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Conjunto de cobertura de transições S1 S4 S2 S1 S4 S3 S1 S5 S1 a b a a a a b b b b Árvore de alcançabilidade

88 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Conjunto de cobertura de transições S1 S4 S2 S1 S4 S3 S1 S5 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.

89 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Conjunto Z O conjunto Z é obtido como: –Z = (X 0 W) (X 1 W) … (X m-n W) m: nº de estados de I n: nº de estados de M m > n X 0 = { }, X 1 = X, X 2 = X X, … em que indica concatenação

90 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Conjunto de testes No exemplo, assumindo que m = n tem-se: –Z = X 0 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 teste

91 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.

92 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

93 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]

94 IC-UNICAMP Eliane Martins Testes baseados em modelos de estado Diagrama de estados 94

95 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 t a -2, onde t a é 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 t a +2, o aquecedor é desligado. O ventilador continua ligado até que a temperatura do aquecedor chegue a T-5. Assuma que t a +2 > T-5. [Alagar e Periyasamy 98]


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

Apresentações semelhantes


Anúncios Google