Teste de transição de estado com exemplo
⚡ Resumo Inteligente
O teste de transição de estados é uma técnica de caixa-preta que valida como um aplicativo transita entre estados conforme as condições de entrada mudam. Este tutorial explica as quatro partes do diagrama, a diferença entre diagramas de estado e tabelas, e apresenta exemplos práticos de caixa eletrônico e login para os testadores.
O que é teste de transição de estado?
Teste de transição de estado É uma técnica de teste de caixa preta na qual mudanças nas condições de entrada causam alterações de estado ou de saída na Aplicação em Teste (AUT). Ela ajuda a analisar o comportamento de uma aplicação para diferentes condições de entrada, e os testadores podem fornecer valores de entrada positivos e negativos enquanto registram o comportamento do sistema.
Baseia-se no modelo sobre o qual o sistema e os testes são construídos. Qualquer sistema em que se obtém uma saída diferente para a mesma entrada — dependendo do que aconteceu antes — é um sistema de estados finitos. A técnica de Teste de Transição de Estados é útil quando se precisa de testar diferentes transições do sistema.
Quando usar testes de transição de estado
- Quando um testador está testando o aplicativo para um conjunto finito de valores de entrada.
- Quando o testador está testando uma sequência de eventos que ocorrem no AUT (Sistema em Teste), ele permite verificar o comportamento do aplicativo para uma sequência de valores de entrada.
- Quando o sistema em teste depende de eventos ou valores do passado.
Quando não confiar nos testes de transição de estado
- Quando o teste não é feito para combinações de entradas sequenciais.
- Quando os testes visam funcionalidades diferentes, como nos testes exploratórios.
Quatro partes de um diagrama de transição de estados
Existem quatro componentes principais no modelo de Transição de Estado, descritos abaixo.
1) Estados que o software pode alcançar.
2) Transição de um estado para outro.
3) Eventos que desencadeiam uma transição, como fechar um arquivo ou sacar dinheiro.
4) Ações que resultam de uma transição, como uma mensagem de erro ou o recebimento de dinheiro.
Diagrama de Transição de Estados vs. Tabela de Transição de Estados
Existem duas maneiras principais de representar ou projetar a transição de estados: o diagrama de transição de estados e a tabela de transição de estados.
| Aspecto | Diagrama de Transição de Estado | Tabela de Transição de Estado |
|---|---|---|
| Também chamado | Gráfico/Mapa de Estados | Tabela de estado |
| Representação | Box"e" para estados, setas para transições. | Grade de estados (linhas) e eventos (colunas) |
| Melhor para identificar | Transições válidas | Transições inválidas |
| Cada célula mostra | - | O estado alcançado após a ocorrência de um evento. |
Como fazer uma transição de estado (exemplos)
Exemplo 1: Bloqueio do PIN do caixa eletrônico
Considere uma função de um sistema de caixa eletrônico em que, se o usuário inserir a senha inválida três vezes, a conta é bloqueada.
Neste sistema, se o usuário inserir uma senha válida em qualquer uma das três primeiras tentativas, o login será concluído com sucesso. Se o usuário inserir uma senha inválida na primeira ou segunda tentativa, será solicitado que a insira novamente. Por fim, se o usuário inserir a senha incorreta pela terceira vez, a conta será bloqueada.
Diagrama de Transição de Estados (Exemplo 1)
No diagrama, sempre que o usuário insere o PIN correto, ele passa para o estado de Acesso Concedido. Se ele inserir a senha incorretamente, ele passa para a próxima tentativa e, se fizer isso pela terceira vez, o estado de Conta Bloqueada é alcançado.
Tabela de Transição de Estados (Exemplo 1)
| Estado | PIN correto | PIN incorreto |
|---|---|---|
| S1) Iniciar | S5 | S2 |
| S2) 1ª tentativa | S5 | S3 |
| S3) 2ª tentativa | S5 | S4 |
| S4) 3ª tentativa | S5 | S6 |
| S5) Acesso concedido | - | - |
| S6) Conta bloqueada | - | - |
Na tabela, quando o usuário insere o PIN correto, o estado muda para S5 (Acesso Concedido). Se o usuário inserir uma senha incorreta, ele passa para o próximo estado e, após a terceira tentativa incorreta, chega ao estado de Conta Bloqueada.
Exemplo 2: Login de reserva de voo
Na tela de login da reserva de voos, você deve inserir o nome do agente e a senha corretos para acessar o sistema. aplicativo de reserva de voo.
Gráfico de transição de estado
O aplicativo permite três tentativas; se o usuário inserir a senha incorreta na quarta tentativa, o sistema fecha o aplicativo automaticamente.
O gráfico de estados ajuda você a determinar as transições válidas a serem testadas. O teste com a senha correta e com uma senha incorreta é obrigatório, e para o cenários de testeÉ possível testar o login na segunda, terceira ou quarta tentativa. Você pode usar uma tabela de estados para determinar transições de sistema inválidas.
Em uma tabela de estados, todos os estados válidos são listados à esquerda e os eventos que os causam na parte superior. Cada célula mostra o estado para o qual o sistema transita quando o evento ocorre. Por exemplo, no estado S1, uma senha correta leva você para S6 (Acesso Concedido); uma senha incorreta na primeira tentativa leva você para S3 (Segunda 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 (já conectado) e abra outra instância de reserva de voos e insira as senhas para o mesmo agente. A resposta do sistema para esse cenário precisa ser testada.
Vantagens e desvantagens da técnica de transição de estado
| Vantagens | Desvantagens |
|---|---|
| Fornece uma representação pictórica ou tabular do comportamento do sistema, auxiliando na compreensão do processo.ping O testador cobre e compreende o sistema de forma eficaz. | Não se pode confiar totalmente nele em todas as situações — por exemplo, não é adequado para sistemas que não sejam finitos ou sequenciais. |
| Permite ao testador verificar se todas as condições foram atendidas e se os resultados foram registrados. | Requer a definição de todos os estados possíveis. Isso funciona para sistemas pequenos, mas deixa de funcionar para sistemas maiores devido ao crescimento exponencial do número de estados. |






