O documento discute testes baseados em modelos, onde um modelo do sistema é construído e usado para gerar casos de teste automaticamente. Os benefícios incluem geração de testes mais cedo, redução de ambiguidades, menor tempo de teste e custos reduzidos. O processo envolve modelagem do sistema, geração de testes abstratos a partir do modelo, concretização dos testes em scripts executáveis e análise dos resultados dos testes.
2. ● aumento da complexidade dos sistemas.
● dificuldade da equipe de testes entender o sistema.
● Modelos ajudam a especificar e melhor entender as características e funcionamento do sistema.
● são econômicos.
Porque usar modelos?
3. Definição e características
● “Testes baseados em modelos é uma técnica de testes em que um modelo do sistema sendo
testado, ou de parte dele, é construído e a partir dele é derivado um conjunto de casos de
testes.”
● São considerados testes de caixa preta
● Em vez de escrevermos os testes manualmente baseados no documento de requisitos, criamos
um modelo do comportamento esperado do sistema que captura os requisitos a serem testados,
então ferramentas são utilizadas para gerar, automaticamente, testes a partir desse modelo
4. Vantagens
● A geração de testes começa mais cedo no ciclo do desenvolvimento
● Evita ambiguidade que pode estar presente na documentação dos requisitos
● Reduz o tempo dos testes
● Possibilita a construção de várias suites de testes a partir do mesmo modelo mudando apenas o
critério de testes.
● Reduz custos
● Não é necessário conhecimento em programação
5. O Processo
5 Etapas :
1.Modelagem do sistema
2.Geração de testes abstratos
3.Concretização dos testes
4.Execução dos testes
5.Análise de resultados
6. 5.1 Modelagem do sistema
● Criação do modelo, que será chamado de modelo abstrato pois deve ser menor e mais simples
que o próprio sistema
● Omitir detalhes do sistema
● Conter as saídas esperadas
● Usar ferramentas para verificar a sua consistência
7. Tipos de modelos
UML - diagrama de atividades
Máquina de estados para máquina de vender
refrigerantes
8. 5.2 Geração de testes abstratos
● Derivados do modelo
● escolher o critério de seleção de testes que determina que testes deverão ser gerados a partir
do modelo.
● Geração de um conjunto de testes abstratos que não são diretamente executáveis devido a
simplicidade do modelo
● A maioria das ferramentas também gera uma matriz de rastreamento de requisitos e outros
relatórios de cobertura.
o A matriz de rastreamento rastreia a ligação entre os requisitos funcionais e os testes
gerados
o Os relatórios de cobertura indicam o quanto do modelo os testes gerados estão, de fato,
testando e podem ser utilizados.
9. 5.3 Concretização dos testes
● Transformar os testes abstratos em testes executáveis,
● Feito por uma ferramenta de transformação que utiliza vários templates e mapeamentos que
traduzem cada caso de testes abstratos em um script de testes executáveis ou escrevendo-se
um código adaptador que realiza esta função.
● O objetivo desta fase é construir uma ligação entre os testes abstratos criados na fase anterior e
o sistema sendo testado.
10. 5.4 Execução dos testes
Os testes podem ser realizados, basicamente de duas maneiras:
● Online
○ As ferramentas de testes se conectam diretamente ao sistema e
○ Testes são feitos dinamicamente, isto é, os testes são executados a medida em que são produzidos
○ A ferramenta de testes gerencia a execução e a gravação dos resultados
● Offline
○ As ferramentas geram casos de testes que podem ser lidos pelo computador e executados automaticamente depois,
o que permite que eles sejam realizados por uma outra plataforma de testes.
11. 5.5 Análise de resultados
● Analisar e realizar as correções se necessárias.
● Para cada falha relatada deve-se determinar a sua causa, que pode se encontrar no sistema,
nos casos de testes aplicados, no modelo ou no adaptado
12. Exemplo de ferramenta - MaTeLo
● Realiza testes offlines e só funciona no windows
● Adicionar bibliotecas de entrada (resultados das transações) e definir distribuições para essas entradas.
● Adicionar bibliotecas de saída (verificação)
● Simular ações de usuários (transições de estados)
● Verificar se o resultado obtido é igual ao esperado. (pode-se usar funções para sistemas mais complexos)
● Gerenciar requisitos (criando ou exportando) e
liga-los aos casos de testes gerados.
● Criar perfies de Testes
● Checar modelos
● Verificar o caminho de um caso de teste
● Escolher que tipo de algortimo será usado para
a geração de testes
● Gerar os casos de testes