Teste de Transição de Estado — Os 7 passos implícitos no Syllabus (ISTQB)

O guia definitivo para você entender o que é e como aplicar

Carlos Moraes
Revista eQAlizando (antiga Revista TSPI)
9 min readAug 20, 2022

--

Fonte: Blog da Qualidade, 2021.

Por que ler esse artigo?

Esse artigo explicita de forma clara, objetiva e prática a técnica Teste de Transição de Estado, a qual é demonstrada a partir da aplicação em um serviço de varejo on-line, ou seja, num e-commerce. Logo, se você está buscando o entendimento definitivo dessa técnica para incorporá-la às suas estratégias de teste, ou para preparar-se para uma prova certificadora, você está no lugar certo.

1. Introdução

A área de Testes e Qualidade de Software é composta por uma série de técnicas, estratégias e métodos de teste, dentre as quais algumas são definidas em documentos elaborados por entidades de padronização e normatização, bem como em materiais oficiais de estudo de entidades certificadoras.

Porém, considerando que grande parte da literatura de Testes e Qualidade de Software é obtida a partir de arquivos traduzidos, sua linguagem tende a ser muito técnica e superficial, além de não possuir diagramação e metodologia de fácil compreensão para àqueles que estão adentrando à área de tecnologia.

Logo, o intuito desse artigo é tornar leve o entendimento da técnica de teste caixa-preta Teste de Transição de Estado, de modo a possibilitar que a incorpore às suas estratégias de teste, bem como facilitar seu estudo para provas certificadoras.

Técnicas de teste caixa-preta: também chamadas de técnicas comportamentais ou baseadas no comportamento, são fundamentadas em uma análise da base de teste apropriada, como documentos de requisitos formais, especificações, casos de uso, user stories ou processos de negócios. Logo, se concentram nas entradas e saídas do objeto de teste sem referência à sua estrutura interna.

Sendo assim, esse artigo é estruturado de forma a fornecer o melhor entendimento em torno da técnica Teste de Transição de Estado, tendo como tópicos: Definição, Metodologia e Aplicação Prática.

2. Definição

Considerando que componentes, sistemas ou registros podem responder de modo diferente a um evento devido à sua dependência de condições atuais ou do histórico, torna-se necessário aplicar o conceito de estado. Sendo assim, Testes de Transição de Estado possuem quatro componentes principais, sendo eles:

  • Estado: situação na qual um componente, sistema ou registro se encontra;
  • Transição: etapa não permanente entre dois estados, resultante de um evento;
  • Evento: acontecimento programado dado um determinado valor de entrada que pode alterar o estado de um objeto;
  • Ação: procedimento programado dado que um determinado evento ocorra.

Portanto, o Teste de Transição de Estado é utilizado para verificar a capacidade do objeto de teste em transitar entre os estados por meio de transições válidas, as quais são iniciadas por um evento, podendo assim fazer com que o objeto de teste execute uma ação.

Em outras palavras, dado que o usuário se encontre na tela de login, tem-se como estado “Não logado”. Assim, quando o usuário realiza o evento de logon com dados válidos, ocorre a transição de estado para “Logado”, tendo como ação navegar para a tela secreta.

Paralelamente, tal técnica também pode ser usada para testar a entrada em estados através de transições inválidas ou nulas, ou seja, quando o evento não tem efeito em um estado, como testar se o evento “Pagamento negado pela operadora” permite uma transição de modo a alterar o estado “Pedido em separação” para “Pedido separado”.

Sendo assim, existem duas maneiras de representar, isto é, projetar as transições de estado, sendo elas:

  • Diagrama de Transição de Estado: elemento gráfico que mapeia a forma como os estados de um determinado componente, software ou registro se comportam, dado que determinados eventos venham a ocorrer, possibilitando assim a ocorrência de ações. Porém, normalmente é desenvolvido apenas com as transições válidas. Sendo assim, os estados são representados por caixas e as transições por flechas.
Diagrama de Transição de Estado | Fonte: Elaborado pelo autor, 2022.
  • Tabela de Transição de Estado: elemento que exibe todas as transições válidas e potencialmente inválidas entre estados, considerando todos os eventos definidos. E sua estrutura possui como linhas os estados e como colunas os eventos.
Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Vale salientar que durante a criação do modelo de transição de estado, defeitos podem ser encontrados no documento de especificação, como:

  • Omissões;
  • Contradições;
  • Tipos ou valores de evento incorretos;
  • Tipos ou valores de ação incorretos;
  • Estado inicial incorreto;
  • Incapacidade de alcançar alguns estados de saída;
  • Incapacidade de entrar nos estados requeridos;
  • Estados extras (desnecessários);
  • Incapacidade de executar corretamente algumas transições válidas;
  • Capacidade de executar transições inválidas;
  • Condições de guarda erradas.

Condição de guarda: operação booleana de valores de atributo que possibilita que a transição aconteça apenas se a condição declarada pela expressão for verídica.

Exemplo de Condição de Guarda | Fonte: Elaborado pelo autor, 2022.

E baseando-se no Diagrama de Transição de Estado, deve-se desenvolver um conjunto de casos de teste que ao ser executado exercite todos os estados e todas as transições válidas com o menor número de testes possível, de modo a obter 100% em cada cobertura.

Em outras palavras, sua cobertura é geralmente definida como o número de estados identificados ou transições válidas testadas, dividido pelo número total de estados ou transições válidas identificadas no objeto de teste.

Sendo assim, os testes podem ser projetados para cobrir uma sequência típica de estados, para exercitar todos os estados, para exercitar cada transição ou para executar sequências específicas de transições, bem como para testar transições inválidas. E no contexto em que o intuito é testar transições inválidas, orienta-se utilizar a Tabela de Transição de Estado, pois torna-se mais fácil a identificação.

Logo, procedimentos manuais podem ser aplicados para identificar os itens a serem cobertos, como imprimir o Diagrama de Transição de Estado e a Tabela de Transição de Estado e marcar os itens cobertos até que a cobertura necessária seja concluída.

Porém, essa abordagem é muito demorada em contextos em que Diagramas de Transição de Estado e Tabelas de Transição de Estado sejam mais complexos. Portanto, uma ferramenta deve ser usada para otimizar esse processo, como a plataforma Lucidchart, a qual é uma aplicação de diagramação inteligente que pode ser utilizada para esse fim, ao adaptar suas funcionalidades.

E com relação a sua aplicabilidade, essa técnica é amplamente aplicada na indústria de software de prateleira (COTS), como o Pacote Office, bem como para modelar um cenário de negócios com estados específicos ou para testar a navegação na tela.

3. Metodologia

Passo 1: Identificar os estados

Inicialmente deve-se identificar todos os estados possíveis que um componente, sistema ou registro pode apresentar, e atribuir a eles um identificador único.

Lista de Estados | Fonte: Elaborado pelo autor, 2022.

Passo 2: Categorizar os estados

Em seguida, deve-se categorizar os estados como sendo inicial, transitório ou final.

Lista de Estados com sua respectiva categorização | Fonte: Elaborado pelo autor, 2022.

Passo 3: Identificar o estado subsequente

Posteriormente, deve-se identificar o estado subsequente a cada estado dado que um determinado evento ocorra, possibilitando assim que caso haja uma determinada ação, ela também aconteça. Assim, tanto o evento, quanto a ação, também devem ser identificados.

Obs: caso um estado tenha dois ou mais estados subsequentes, deve-se possuir uma linha para cada estado subsequente.

Lista de Estados com suas respectivas informações | Fonte: Elaborado pelo autor, 2022.

Passo 4: Elaborar o Diagrama de Transição de Estado

Em seguida, considerando a tabela elaborada no Passo 3, deve-se desenvolver o Diagrama de Transição de Estado informando os eventos que possibilitam a transição de um estado para o outro, bem como as ações resultantes das transições. Logo, os estados são representados por caixas e as transições por flechas.

Diagrama de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 5: Elaborar a estrutura da Tabela de Transição de Estado

O próximo passo é elaborar a estrutura da Tabela de Transição de Estado, a qual possui como linhas os estados e colunas os eventos.

Estrutura da Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 6: Preencher a Tabela de Transição de Estado

Posteriormente, considerando o Diagrama de Transição de Estado elaborado no Passo 4, deve-se preencher a tabela com o id do estado subsequente resultante da interseção do estado n com o evento x. Em outras palavras, dado que esteja num estado n e ocorra o evento x, insere-se o id do estado seguinte ou deixa-se em branco caso não haja correspondência (transição inválida ou nula).

Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 7: Definir um conjunto de casos de teste

Em seguida, baseado no Diagrama de Transição de Estado, deve-se definir um conjunto de casos de teste que ao ser executado exercite todos os estados e todas as transições válidas com o menor número de testes possível, de modo a obter 100% em cada cobertura.

Em outras palavras, deve-se analisar o diagrama para “desenhar” os caminhos existentes que possibilitam exercitar todos os estados e todas as transições válidas. Logo, dependendo do contexto é necessário mais de um caso de teste.

Assim, considerando a Cobertura de Transição, para o caso do diagrama de exemplo mostrado no Passo 4, tem-se dois casos de teste, o primeiro exercitando os caminhos que envolvem as transições entre o Estado 1, Estado 2, Estado 3 e Estado 5, e o segundo exercitando os caminhos que envolvem as transições entre o Estado 1, Estado 2, Estado 4, Estado 4 e Estado 5.

Obs: caso deseje testar transições inválidas, orienta-se utilizar a Tabela de Transição de Estado para definir os casos de teste.

Conjunto de Casos de Teste — Cobertura de Transição | Fonte: Elaborado pelo autor, 2022.

E considerando a Cobertura de Estado, para o caso do diagrama de exemplo mostrado no Passo 4, tem-se dois casos de teste, o primeiro exercitando os caminhos que envolvem as transições entre o Estado 1, Estado 2, Estado 3 e Estado 5, e o segundo exercitando os caminhos que envolvem as transições entre o Estado 1, Estado 2, Estado 4 e Estado 5.

Conjunto de Casos de Teste — Cobertura de estado | Fonte: Elaborado pelo autor, 2022.

4. Aplicação Prática

Considerando a necessidade de fornecer um caso prático para elucidar a aplicação da técnica em questão, utilizou-se um exemplo resumido de um processo de compra em um e-commerce, ou seja, não contém todos os elementos existentes, como estados, transições, eventos e ações, pois o intuito é apenas exercitar a técnica.

Passo 1: Identificar os estados

Lista de Estados | Fonte: Elaborado pelo autor, 2022.

Passo 2: Categorizar os estados

Lista de Estados com sua respectiva categorização | Fonte: Elaborado pelo autor, 2022.

Passo 3: Identificar o estado subsequente

Lista de Estados com suas respectivas informações | Fonte: Elaborado pelo autor, 2022.

Passo 4: Elaborar o Diagrama de Transição de Estado

Diagrama de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 5: Elaborar a estrutura da Tabela de Transição de Estado

Estrutura da Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.
Estrutura da Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 6: Preencher a Tabela de Transição de Estado

Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.
Tabela de Transição de Estado | Fonte: Elaborado pelo autor, 2022.

Passo 7: Definir um conjunto de casos de teste

Conjunto de Casos de Teste — Cobertura de Estado | Fonte: Elaborado pelo autor, 2022.
Conjunto de Casos de Teste — Cobertura de Transição | Fonte: Elaborado pelo autor, 2022.

5. Conclusão

Portanto, após a explicitação da técnica Teste de Transição de Estado, conclui-se que dependendo do contexto em que se está inserido, é uma excelente técnica para compor as estratégias de teste, bem como caso ao se deparar com algum questionamento referente à ela, será capaz de responder de forma assertiva e confiante.

6. Referências Bibliográficas

1 ISTQB, Syllabus: Certified Tester Foundation Level, versão 3.1, 2018.

2 ISTQB, Syllabus: Certified Tester Advanced Level, Test Analyst, versão 3.1.1, 2021.

--

--

Carlos Moraes
Revista eQAlizando (antiga Revista TSPI)

Engenheiro de Produção atuante em Testes e Qualidade de Software.