O que é teste baseado em modelo?
O que é teste baseado em modelo?
O teste baseado em modelo é uma técnica de teste de software em que o comportamento em tempo de execução do software em teste é verificado em relação às previsões feitas por um modelo. Um modelo é uma descrição do comportamento de um sistema. O comportamento pode ser descrito em termos de sequências de entrada, ações, condições, saída e fluxo de dados de entrada para saída. Deve ser compreensível na prática e reutilizável; compartilhável deve ter uma descrição precisa do sistema em teste.
Existem vários modelos disponíveis e descrevem diferentes aspectos do comportamento do sistema. Exemplos do modelo são:
- Fluxo de dados
- Controle de fluxo
- Gráficos de Dependência
- Tabelas de Decisão
- Máquinas de transição de estado
O teste baseado em modelo descreve como um sistema se comporta em resposta a uma ação (determinada por um modelo). Forneça ação e veja se o sistema responde conforme a expectativa.
É um método formal leve para validar um sistema. Este teste pode ser aplicado a testes de hardware e software.
Exemplo de teste baseado em modelo
O modelo acima explica a abordagem simplificada de escrever poesia no bloco de notas e as possíveis ações relacionadas a cada etapa. Para cada ação (como começar, inserir um poema, salvar), Caso de teste pode ser gerado e a saída pode ser verificada.
Tipos de MBT
Existem dois tipos de estruturas de teste baseadas em modelo-
- Offline/a priori: Geração de suítes de testes antes de executá-las. Um conjunto de testes nada mais é do que uma coleção de casos de teste.
- Online/on-the-fly: Geração de Conjuntos de Testes durante a execução do teste
Diferentes modelos em testes
Para compreender o MBT é necessário compreender alguns dos modelos explicados a seguir. Vamos examiná-los um por um:
Máquinas de estado finito
Este modelo ajuda os testadores a avaliar o resultado dependendo da entrada selecionada. Várias combinações das entradas podem resultar em um estado correspondente do sistema.
O sistema terá um estado específico e um estado atual, que é governado por um conjunto de entradas fornecidas pelos testadores.
Considere o exemplo-
Existe um sistema que permite que os funcionários façam login no aplicativo. Agora, o estado atual do funcionário é “Fora” e passa a ser “Entrado” assim que ele entra no sistema. No estado “in”, um funcionário pode visualizar, imprimir e digitalizar documentos no sistema.
Gráficos estaduais
É uma extensão da máquina de estados finitos e pode ser usada para sistemas complexos e em tempo real. Statecharts são usados para descrever vários comportamentos do sistema. Tem um número definido de estados. O comportamento do sistema é analisado e representado na forma de eventos para cada estado.
Por exemplo -
Os defeitos são gerados na ferramenta de gerenciamento de defeitos com o status Novo. Depois de corrigido pelos desenvolvedores, ele deve ser alterado para o status Corrigido. Se um defeito não for corrigido, altere o status para Reabrir. Os gráficos estaduais devem ser elaborados de forma que indiquem um evento para cada estado.
Linguagem de modelagem unificada (UML)
Linguagem de modelagem unificada (UML) é uma linguagem de modelagem padronizada de uso geral. A UML inclui um conjunto de técnicas de notação gráfica para criar modelos visuais que podem descrever o comportamento muito complicado do sistema.
UML possui notações como:
- Atividades
- Atores
- Processo de negócio
- Componentes
- Linguagem de programação
Desafios dos testes baseados em modelos
A implantação do MBT em todas as organizações obviamente requer uma grande quantidade de investimento e esforço. A seguir estão as desvantagens do MBT em Engenharia de Software.
- Habilidades necessárias exigidas em testadores
- O tempo da curva de aprendizado será maior
- Difícil entender o modelo em si
Vantagens do teste de modelo
A seguir estão os benefícios do MBT:
- Fácil manutenção de caso de teste/conjunto
- Redução de Custo
- Cobertura de teste aprimorada
- Pode executar testes diferentes em um número n de máquinas
- Detecção precoce de defeitos
- Aumento na contagem de defeitos
- Economia de tempo
- Maior satisfação no trabalho do testador
Conclusão
Os testadores constroem modelos mentais de qualquer maneira durante os testes. Esses modelos mentais podem ser transformados em modelos no papel. Isso ajuda os testadores a obter legibilidade e reutilização.
O teste baseado em modelo é uma nova abordagem para teste de software. A evolução do Teste de Software é mostrada abaixo -