O que é teste de transição de estado?
O teste de transição de estado é uma técnica de teste de caixa preta em que as 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 o sistema e os testes são baseados. Qualquer sistema onde você 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 estado é útil quando você precisa testar diferentes transições de sistema.
Neste tutorial, você aprenderá-
- O que é transição de estado em testes?
- Quando usar a transição de estado?
- Quando não confiar na transição de estado?
- Quatro partes do diagrama de transição de estado
- Diagrama de transição de estado e tabela de transição de estado
- Como fazer uma transição de estado (exemplos de uma transição de estado)
- Vantagens e desvantagens da técnica de transição de estado
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 no aplicativo em teste. Ou seja, isso permitirá que o testador teste o comportamento do aplicativo para uma sequência de valores de entrada.
- Quando o sistema em teste depende de eventos / valores no passado.
Quando não confiar na transição de estado?
- Quando o teste não é feito para combinações de entrada sequenciais.
- Se o teste deve ser 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) Afirma que o software pode obter
2) Transição de um estado para outro
3) Eventos que originam uma transição, como o fechamento de um arquivo ou retirada de dinheiro
4) Ações que resultam de uma transição (uma mensagem de erro ou receber o dinheiro).
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 textos em caixas e a transição é representada por setas. É também chamado de State Chart ou Graph. É útil para identificar transições válidas.
Na tabela de transição de estados, todos os estados são listados à esquerda e os eventos são descritos na parte superior. 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 uma transição de estado)
Exemplo 1:
Vamos considerar uma função do sistema ATM em que 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 inserir uma senha inválida na primeira ou na segunda tentativa, será solicitado que ele insira a senha novamente. E por último, se o usuário digitar a senha incorreta na 3ª vez, a conta será bloqueada.
Diagrama de transição de estado
No diagrama, sempre que o usuário inserir o PIN correto, ele será movido para o estado Acesso concedido, e se inserir a senha errada, ele será movido para a próxima tentativa e se fizer o mesmo pela 3ª vez, o estado de conta bloqueada será atingido.
Tabela de Transição de Estado
PIN correto |
PIN incorreto |
|
---|---|---|
S1) Iniciar |
S5 |
S2 |
S2) 1 r 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 é 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 a mesma 3ª vez, alcançará o estado de conta bloqueada.
Exemplo 2:
Confira este vídeo, antes de consultar o exemplo abaixo:
Clique aqui se o vídeo não estiver acessível
Na tela de login de reserva de voo, considere que você precisa inserir o nome do agente e a senha corretos para acessar o aplicativo de reserva de voo.
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 digitar a senha errada na 4ª tentativa, o sistema fecha o aplicativo automaticamente.
Os gráficos de estado ajudam a determinar as transições válidas a serem testadas. Neste caso, o teste com a senha correta e com uma senha incorreta é obrigatório. Para os cenários de teste, faça o login na 2ª , 3ª e 4ª tentativa qualquer um pode ser testado.
Você pode usar a Tabela de estado para determinar transições de sistema inválidas.
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 sistema de estado para onde ocorrerá o evento correspondente.
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, isto é, você já está conectado ao aplicativo e abre outra instância de reserva de voo e insere 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
Vantagens |
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 dessa técnica de teste é que não podemos confiar nela o tempo todo. Por exemplo, se o sistema não é um sistema finito (não em ordem sequencial), esta técnica não pode ser usada. |
Ao usar este teste, o testador de técnica pode verificar se todas as condições são cobertas e os resultados são capturados |
Outra desvantagem é que você deve definir todos os estados possíveis de um sistema. Embora isso seja adequado para sistemas pequenos, logo se divide em sistemas maiores, pois 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.
- Em 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 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 textos em caixas e a transição é representada por setas.
- Na tabela de transição de estados, todos os estados são listados à esquerda e os eventos são descritos na parte superior.
- A principal vantagem desta técnica de teste é que ela fornecerá uma representação pictórica ou tabular do comportamento do sistema, o que fará com que o testador cubra e compreenda o comportamento do sistema de forma eficiente.
- A principal desvantagem dessa técnica de teste é que não podemos confiar nela o tempo todo.