teste baseado em modelos
TRANSCRIPT
Testes baseados em modelos
Andreza Pollyana e Ana Karina
● 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?
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
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
O Processo
5 Etapas :1.Modelagem do sistema2.Geração de testes abstratos3.Concretização dos testes4.Execução dos testes 5.Análise de resultados
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
Tipos de modelos
UML - diagrama de atividades
Máquina de estados para máquina de vender refrigerantes
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
geradoso Os relatórios de cobertura indicam o quanto do modelo os testes gerados estão, de fato,
testando e podem ser utilizados.
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.
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.
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
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