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

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

Testes baseados na especificação - modelos de estado-

Apresentações semelhantes


Apresentação em tema: "Testes baseados na especificação - modelos de estado-"— Transcrição da apresentação:

1 Testes baseados na especificação - modelos de estado-
Criado: abril 2001 Últ. atualiz.: set / 2011

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. 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, 2007. C.Nagle. “Test Automation Frameworks”, Obtido em set/2009 em:

3 Tópicos Testes baseados em modelos: conceito
Modelo de estados: apresentação Características Propriedades Testes de transição de estados

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 Baseada em linguagem pode ser: Lotos, Labelled transition systems, etc Dependente de notação Baseada em modelo Baseada em linguagem de especificação

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 Baseada em linguagem pode ser: Lotos, Labelled transition systems, etc Dependente de notação Baseada em modelo Baseada em linguagem de especificação

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 Modelo de testes Conj. de testes Levantamento de Requisitos Análise
e Projeto Modelo de testes Projeto Geração deTestes Codificação e Integração Conj. de testes Código Testes

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 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 Modelo de estados

11 reconhecedor de linguagens regulares
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 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 Exemplo de modelo de estados: Notepad
WindowEmpty WindowFilled SaveDialog NotRunning Fonte: H. Robinson, StarWest 2006

14 Exemplo de modelos de estados: Web site
Homepage HomeTab HomeTab NewsTab ImageTab NewsTab ImageTab Imagepage Newspage Fonte: H. Robinson, StarWest 2006

15 Classificação Há dois grupos distintos de máquinas: Modelo de Moore
Modelo de Mealy

16 Modelo de Moore As saídas dependem unicamente dos estados
Fechada 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] abrir porta_fechada fechar Abrindo Fechando abrir porta_aberta fechar A máquina reconhece dois comandos: abrir e fechar. No estado Abrindo é executada uma ação que consiste em acionar o motor que controla a porta. No estado Fechando o motor é acionado no sentido inverso, fechando a porta. Nos estados Fechada e Aberta, nenhuma ação é realizada. Eles simplesmente sinalizam uma indicação para o “mundo externo” de que a porta está fechada ou aberta. Aberta

17 Modelo de Mealy As saídas dependem das entradas e dos estados
Fechada As saídas dependem das entradas e dos estados As ações são executadas conforme a entrada fornecida abrir fechar Aciona motor; porta_aberta Aciona motor; porta_fechada Aberta Qual modelo usar? Tanto faz. Há algoritmos para se passar de um para o outro. Em testes usa-se o modelo de Mealy pois tem menos estados e estes são “estáveis”, isto é, não tem ação sendo realizada neles. O statecharts é um híbrido, contendo os dois tipos de modelo. Para uma discussão a respeito, ver Beizer95, cap

18 Elementos de uma MFE Estado Transição Evento Ação
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 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 Tópicos Modelo de estados: apresentação Características Propriedades
Testes de transição de estados

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 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 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

24 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

25 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

26 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

27 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

28 Exemplo de funcionamento
Máquina de refrigerante: refrigerante custa 15 centavos máquina aceita moedas de 5 e 10 centavos 5 10 5 5 10 5 10 15 10 20

29 Notação 1: diagrama de estado
2 B / y A / — B / — A / x 1 2 B / y A / — B / — A / x 1 2 B y A x clássico Análise Estruturada UML [Binder 2000]

30 Notação 2: tabela de transições
Estados Eventos A B 1 2/x 1/– 2 2/– 1/y ação estado origem estado destino

31 Tópicos Modelo de estados: apresentação Características Propriedades
Testes de transição de estados

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

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. Porquê a minimalidade é importante? Em testes caixa preta, não é possível identificar se a máquina está em s ou s’.

34 Estados equivalentes - exemplo
a / y a / u b / x b / u s1 s2 s3 a / u b / y s0 a / w a / w b / y b / u s1’ s2’ s3’ b / x b / u a / y a / u s0 s1 s2 s3 a / u b / u b / x a / w b / y

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 Conectividade - exemplo
s1 s2 s5 s0 s3 s4

37 Propriedades B / erro 1 A / x B / y 2 B / erro A / — 1 A / x B / y 2
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 B / x B / erro A / x

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 Tópicos Modelo de estados: apresentação Características Propriedades
Testes de transição de estados

40 Testes de transições de estado: princípio
M I entrada Resultado esperado Resultado observado   defeito

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 ? Primeiros passos análogos aos dos testes baseados em grafos

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 42

43 Árvore de sincronização
{S0, S1, S2, S3} S1 S3 S2 S0 a/x b/y b/— a/— b/x a b {S1, S2, S3} {S0, S1, S3} b a b {S0, S1} {S2, S3} {S0, S1, S2} a b b {S2, S3} {S0, S3} {S1} a b Livro Delamaro et al, cap 3 A raiz contém todos os estados da máquina. Para cada entrada, o nó seguinte da árvore será o conjunto de estados-destino qdo a entrada é fornecida para cada estado origem no nó-pai. A seq de sincroniz é formada pelos símbolos de entrada que vão da raiz até um nó contendo {s}. {S1, S3} {S0, S1} Seq sincroniz. S1 =bbb De qqr estado, ao aplicar essa seq se chega em S1

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 44

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 45

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 Critérios de seleção dos testes
Taxonomia dos testes Critérios de seleção dos testes Baseado em grafos Baseado em teoria de autômatos Baseado em falhas Geração dos testes Manual Busca exaustiva Busca aleatória Busca baseada em heurística ... Técnica Utting, A.Pretschner, B.Legeard. A Taxonomy of Model-Based Testing. Working Paper Series. Univ. of Waikato, Apr/2006.

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

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

50 Cobertura de estados Critério: visitar cada estado do modelo pelo menos uma vez S1 S3 S2 S0 a/x b/y b/— a/— b/x Caso de teste: a / x – a / x – b / y – b / x 50

51 Cobertura de transições ( método T )
Critério: visitar cada transição do modelo pelo menos uma vez S1 S3 S2 S0 a/x b/y b/— a/— b/x Estado S0 S1 S S2 S S S S S2 S S0 Entrada a b a b a b b a b b Saída esperada x — x y — x y x y x 51

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 52

53 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 Tem tb o n-SC, que visa cobrir seq com n+1 transições Algoritmo de de Bruijn (se pronuncia de-broin)

54 Switch-cover (SC) Critério1-SC: cada par de transições adjacentes do modelo deve ser coberto pelo menos uma vez 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) Tem tb o n-SC, que visa cobrir seq com n+1 transições

55 Switch-cover (1-SC) - testes
Seq. de testes Saídas esperadas Pares cobertos abbaaab (T1, T2), (T2, T2), (T2, T3), (T3, T4), (T4, T4), (T4, T5) aaba 0110 (T1, T3), (T3, T5), (T5, T1) aabb (T1,T3), (T3, T5), (T5, T6) baab 0001 (T6, T4), (T4, T4), (T4, T5), (T6, T5) bb 01 (T6, T5) s1 s2 s3 T1: a/0 T2: b/1 T6: b/0 T5: b/1 T3: a/1 T4: a/0 Tem tb o n-SC, que visa cobrir seq com n+1 transições

56 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 aab 011 (T1, T3), (T3, T5) abaabb 00001 (T1, T2), (T3, T4), (T5, T6)

57 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 A desvantagem é que demora a cobrir modelos grandes: o mesmo link pode ser visitado mais de uma vez, pois não guarda por onde passou antes.

58 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 se (si, sj)  T senão g(si) – grau de saída de si Seq de nós aleatórios constitui cadeia de Markov T – conjunto de transições do modelo Grau de um vértice: nro de vértices adjacentes ao vértice, i.e, nro de vértices (v, t) pertencente ao conjunto de arestas do grafo

59 Exemplo Prob(T1)=0,99999 Prob(T6)=0,00001 s1 s2 s3 T2: b/1 T1: a/0

60 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 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 61

62 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 Notar que não pode ter estado final, pois não consegue gerar seq de verificação de estado para eles.

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 Seqüência Única de Entrada e Saída
a/x b/y b/— a/— b/x 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 Estado UIO S0 ab S1 b S2 ? S3 a 64

65 Seqüência Única de Entrada e Saída
a/x b/y b/— a/— b/x a/ 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 Estado UIO S0 ab S1 b S2 ab S3 ba 65

66 Como aplicar o método U Cada seqüência é da forma: Exemplo: Seq:
Seq sincronização (ou transferência) sm  entrada de sm a sn  UIO(sn) Exemplo: S1 S3 S2 S0 a/x b/y b/— a/— b/x a/ Seq: aa  b  ba Fala-se em seq de sincronização mas pode ser qqr caminho que leve de s0 a s2. Transição alvo

67 Seqüência de Distinção
a/x b/y b/— a/— b/x a/ 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 saida S0 x  S1 x y S2  y S3  x 67

68 Como aplicar o método D Gerar as seqüências:
Seqüência-: verifica todos os estados Seqüência-: verifica todas as transições Tb baseado no livro do Delamaro et al, cap 3

69 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 Tb baseado no livro do Delamaro et al, cap 3

70 Grafo- DS = ab ab/x ab/y ab/x ab/xy a/x S0 S1 b/— b/y b/x a/— S3

71 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 Exemplo - seqüência- Estado-origem ab/x ab/xy ab/x ab/y … S2 S3 S0
a/x b/y b/— a/— b/x a/ S0 S1 ab/x S3 ab/xy ab/x S2 ab/y DS DS DS DS DS … S2 S3 S0 S1 S3 Verifica se S3 Seq de S0 a S2

73 Como obter a seqüência-
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)

74 Grafo- xm  DS, xm X DS = ab a ab b ab a/x S0 S1 b/— b/y b/x a/x

75 Grafo- xm  DS, xm X DS = ab a ab a ab b ab b ab a/x S0 S1 b/—
b/y b/x a/x S3 b/y a/— S2 a/ S0 a ab S1 a ab b ab S2 S3 b ab

76 Grafo- xm  DS, xm X DS = ab a ab a ab b ab a ab b ab a/x S0 S1
b/y b/x a/x S3 b/y a/— S2 a/ S0 a ab S1 a ab b ab a ab S2 S3 b ab

77 Grafo- xm  DS, xm X DS = ab a ab b ab a/x S0 S1 b/— b/y b/x a/x

78 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 Redução do grafo- DS = ab a b S0 S1 S1 S1 S2 S1 S2 S2 S3 S3 S3 S0
a/x b/y b/— a/— b/x a/ Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 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 Redução do grafo- DS = ab a b S0 S1 S1 S1 S2 S1 S2 S2 S3 S3 S3 S0
a/x b/y b/— a/— b/x a/ Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 b ab Precisaria retirar tb as transições correspondentes às seq de transfer que foram usadas nos testes com a seq alfa. No caso desse exemplo, não tivemos (?)

81 Redução do grafo- DS = ab a b S0 S1 S1 S1 S2 S1 S2 S2 S3 S3 S3 S0
a/x b/y b/— a/— b/x a/ Estados resultantes da aplicação de DS S0 S3 a ab S1 S2 b ab Seqüência- : a ab, a ab S0  S3  S0 a, a ab S0S1  S3 a a a ab S0S1  S2  S3 Precisaria retirar tb as transições correspondentes às seq de transfer que foram usadas nos testes com a seq alfa. No caso desse exemplo, não tivemos (?) Percorre-se em seguida o grafo reduzido, intercalando com seq de transferência (em azul) para ir de um estado a outro

82 Exemplo Estado atual Saída Próximo estado a b s1 x0 x1 s4 s2 s5 s3
Gerado com a Plavis: Inspirado em [Mathur2008, pg214] Estado atual Saída Próximo estado a b s1 x0 x1 s4 s2 s5 s3

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 M e I (ver slide 32) 83 83

84 Método W – 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 M e I (ver slide 32) 84 84

85 O conjunto W Si Sj x O(Si, x) O(Sj, x) S1 S2 baaa x1x1x0x1 x1x1x0x0 S3
Obtém-se o conjunto W construindo seq que diferenciem cd par de estados entre si.

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 Conjunto de cobertura de transições
Árvore de alcançabilidade S1 S4 S2 S3 S5 a b P: conjunto de seq obtidas percorrendo-se caminhos parciais na máquina, i.e, um caminho que comece no estado inicial e termine em um estado qqr da máquina.

88 Conjunto de cobertura de transições
Árvore de alcançabilidade S1 S4 S2 S3 S5 a b P = {, a, b, bb, ba, bab, baa, baab, baaa, baaab, baaaa} P: conjunto de seq obtidas percorrendo-se caminhos parciais na máquina, i.e, um caminho que comece no estado inicial e termine em um estado qqr da máquina. Conjunto (de caminhos parciais) que cobre todas as transições. Cada caminho começa no estado inicial.  é a seq nula.

89 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

90 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, …} Mostrar arquivo gerado pela Plavis Plavis: 66 casos de teste

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 Exercícios Gere casos de testes para os problemas a seguir, considerando os critérios: Cobertura de estados Cobertura de transições

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: Selecione o nível de potência (máxima ou média) Informe o tempo de cozimento 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] 93

94 Diagrama de estados Ações de saída não são mostradas para melhorar a vizualização. 94 94

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]


Carregar ppt "Testes baseados na especificação - modelos de estado-"

Apresentações semelhantes


Anúncios Google