Teste de Transição de Estado – Diagrama e Técnica (Exemplo)

O que é teste de transição de estado?

Teste de transição de estado é uma técnica de teste de caixa preta na qual alterações feitas nas condições de entrada causam alterações de estado ou alterações de saída no Aplicativo em Teste (AUT). O teste de transição de estado ajuda a analisar o comportamento de um aplicativo para diferentes condições de entrada. Os testadores podem fornecer valores de teste de entrada positivos e negativos e registrar o comportamento do sistema.

É o modelo no qual se baseiam o sistema e os testes. Qualquer sistema onde você obtenha uma saída diferente para a mesma entrada, dependendo do que aconteceu antes, é um sistema de estados finitos.

Técnica de teste de transição de estado é útil onde você precisa testar diferentes transições de sistema.

Quando usar a transição de estado?

  • Isso pode ser usado quando um testador está testando o aplicativo para um conjunto finito de valores de entrada.
  • Quando o testador está tentando testar a sequência de eventos que ocorrem na aplicação em teste. Ou seja, isso permitirá ao testador testar o comportamento da aplicação para uma sequência de valores de entrada.
  • Quando o sistema em teste depende de eventos/valores do passado.

Quando não confiar na transição de estado?

  • Quando o teste não é feito para combinações de entradas sequenciais.
  • Se o teste for feito para diferentes funcionalidades, como testes exploratórios

Quatro partes do diagrama de transição de estado

Existem 4 componentes principais do Modelo de Transição de Estado, conforme abaixo

1) Estados que o software pode obter

Unidos

2) Transição de um estado para outro

Transição

3) Eventos que originam uma transição como fechar um arquivo ou sacar dinheiro

Eventos

4) Ações que resultam de uma transição (uma mensagem de erro ou recebimento do dinheiro).

Opções

Diagrama de Transição de Estado e Tabela de Transição de Estado

Existem duas maneiras principais de representar ou projetar a transição de estado: diagrama de transição de estado e tabela de transição de estado.

No diagrama de transição de estado, os estados são mostrados em caixas de texto e a transição é representada por setas. Também é chamado de Gráfico ou Gráfico de Estado. É útil para identificar transições válidas.

Na tabela de transição de estado, todos os estados estão listados no lado esquerdo e os eventos são descritos no topo. Cada célula da tabela representa o estado do sistema após a ocorrência do evento. Também é chamada de Tabela de Estados. É útil para identificar transições inválidas.

Como fazer uma transição de estado (exemplos de transição de estado)

1 exemplo:

Vamos considerar uma função de sistema ATM onde se o usuário digitar a senha inválida três vezes a conta será bloqueada.

Neste sistema, se o usuário inserir uma senha válida em qualquer uma das três primeiras tentativas o usuário será logado com sucesso. Se o usuário digitar a senha inválida na primeira ou na segunda tentativa, será solicitado que ele digite a senha novamente. E finalmente, se o usuário digitar a senha incorreta 3rd tempo, a conta será bloqueada.

Diagrama de transição de estado

Diagrama de transição de estado

No diagrama sempre que o usuário insere o PIN correto ele é movido para o estado Acesso concedido, e se ele inserir a senha errada ele é movido para a próxima tentativa e se fizer o mesmo para os 3rd momento em que o estado de conta bloqueada é atingido.

Tabela de Transição de Estado

PIN correto PIN incorreto
S1) Iniciar S5 S2
S2) 1st tentativa S5 S3
S3) 2nd tentativa S5 S4
S4) 3rd tentativa S5 S6
S5) Acesso concedido - -
S6) Conta bloqueada - -

Na tabela, quando o usuário insere o PIN correto, o estado é transferido para S5, que é Acesso concedido. E se o usuário inserir uma senha errada, ele será movido para o próximo estado. Se ele fizer o mesmo 3rd tempo, ele alcançará o estado de conta bloqueada.

2 exemplo:

Confira este vídeo de teste de transição de estado antes de consultar o exemplo abaixo:

Clique aqui se o vídeo não estiver acessível

Na tela de login da reserva de voo, considere que você deve inserir o nome e a senha corretos do agente para acessar o aplicativo de reserva de voo.

Gráfico de transição de estado
Gráfico de transição de estado

Dá a você acesso ao aplicativo com senha e nome de login corretos, mas e se você digitar a senha errada.

O aplicativo permite três tentativas, e se o usuário inserir a senha errada na 4ª tentativa, o sistema fecha o aplicativo automaticamente.

Os State Graphs ajudam a determinar transições válidas a serem testadas. Neste caso, é obrigatório testar com a senha correta e com a senha incorreta. Para o cenários de teste, faça login em 2nd, 3rd e 4th tentativa qualquer um poderia ser testado.

Você pode usar a Tabela de estados para determinar transições de sistema inválidas.

Tabela de Transição de Estado

Em uma Tabela de Estados, todos os estados válidos são listados no lado esquerdo da tabela e os eventos que os causam no topo.

Cada célula representa o estado para o qual o sistema se moverá quando o evento correspondente ocorrer.

Por exemplo, enquanto no estado S1 você insere uma senha correta, você é levado ao estado S6 (Acesso concedido). Suponha que se você digitou a senha errada na primeira tentativa, você será levado ao estado S3 ou 2ª tentativa.

Da mesma forma, você pode determinar todos os outros estados.

Dois estados inválidos são destacados usando este método. Suponha que você esteja no estado S6, ou seja, já esteja logado no aplicativo e abra outra instância de reserva de voo e insira senhas válidas ou inválidas para o mesmo agente. A resposta do sistema para tal cenário precisa ser testada.

Vantagens e desvantagens da técnica de transição de estado

Diferenciais Desvantagens
Esta técnica de teste fornecerá uma representação pictórica ou tabular do comportamento do sistema que fará com que o testador cubra e compreenda o comportamento do sistema de forma eficaz. A principal desvantagem desta técnica de teste é que não podemos confiar nela sempre. Por exemplo, se o sistema não for finito (não está em ordem sequencial), esta técnica não pode ser utilizada.
Ao usar este teste, o testador técnico pode verificar se todas as condições estão cobertas e os resultados são capturados Outra desvantagem é que é necessário definir todos os estados possíveis de um sistema. Embora isto seja aceitável para sistemas pequenos, rapidamente se decompõe em sistemas maiores, à medida que há uma progressão exponencial no número de estados.

Resumo

  • O teste de transição de estado é definido como a técnica de teste na qual mudanças nas condições de entrada causam mudanças de estado no aplicativo em teste.
  • In Engenharia de Software, A técnica de teste de transição de estado é útil quando você precisa testar diferentes transições de sistema.
  • Duas maneiras principais de representar ou projetar transição de estado, diagrama de transição de estado e tabela de transição de estado.
  • No diagrama de transição de estado, os estados são mostrados em caixas de texto e a transição é representada por setas.
  • Na tabela de transição de estado, todos os estados estão listados no lado esquerdo e os eventos são descritos no topo.
  • A principal vantagem desta técnica de teste é que ela fornecerá uma representação pictórica ou tabular do comportamento do sistema que fará com que o testador cubra e compreenda o comportamento do sistema de forma eficiente.
  • A principal desvantagem desta técnica de teste é que não podemos confiar nela sempre.