Mind map
MUTANTES
Map content
MUTANTES
Tipos de teste
- Testes unitários
- são testes de baixo nível, necessários para verificar se um pequeno trecho do código-fonte foi implementado corretamente.
- Testes de Integração
- O teste de integração busca descobrir os erros relacionados às interfaces entre os componentes.
- testes de validação
- os testes de validação fornecem a garantia final de que o software satisfaz a todos os requisitos funcionais, comportamentais e de desempenho que foram especificados.
- casos de teste
- casos de teste pode ser baseado em duas abordagens:
- teste baseado em especificação
- também conhecido como teste caixa-preta
- o objetivo é determinar se o programa satisfaz aos requisitos funcionais e não-funcionais especificados.
- teste baseado em programa (ou teste estrutural)
- conhecido também como teste de caixa-branca.
- a estrutura interna e o conhecimento de como foi feita a implementação são considerados para derivar os casos de testes.
- teste baseado em especificação
- casos de teste pode ser baseado em duas abordagens:
- Testes unitários
Critério de Teste
- critérios para seleção de casos de teste
- são estabelecidas regras para a seleção de casos de teste de um determinado programa ou especificação.
- critérios de adequação de casos de teste
- são estabelecidas regras para determinar se o teste de um determinado programa ou especificação está completo
- O critério provê uma medida da cobertura dos testes feitos, influenciando, portanto, a decisão de quando parar a execução dos testes.
- são estabelecidas regras para determinar se o teste de um determinado programa ou especificação está completo
- Análise de Mutantes
- Aplicação
- No teste unitário, os mutantes avaliam o quão bem cada unidade do programa foi testada.
- Na mutação de interfaces, a proposta é que os mutantes avaliem o quão bem as interações entre diversas unidades foram testadas.
- Na mutação de especificações, os defeitos são tipicamente inseridos em máquinas de estado e em expressões lógicas para gerar mutações de especificações.
- O que é?
- A análise de mutantes é um critério que mede a eficácia de um conjunto de casos de teste.
- Escore de Mutação
- são geradas mutações do programa original P, através da introdução de uma única variação sintática.
- Para cada variação sintática, existe uma chance de que uma variação semântica seja produzida.
- modificações sintáticas são inseridas no programa original através da aplicação de um conjunto de regras chamadas de operadores de mutação.
- escore de mutação MS
- MS(P,T) = K / (M – E)
- Teste de Mutantes (Baseado em:)
- Teoria do Programador Competente:
- Efeito de Acoplamento:
- Processo de Teste de Mutantes de Offutt-DeMillo
- (CBT)
- Esta técnica determina as condições necessárias para um caso de teste eliminar um mutante e então são gerados dados de entrada que atendam a estas restrições.
- (CBT)
- Mutantes Equivalentes
- Um mutante é considerado um mutante equivalente se a modificação sintática que o produziu não foi capaz de produzir uma modificação semântica.
- Aplicação
- critérios para seleção de casos de teste
OBJETIVO DO TRABALHO
- proposta de redução de custo do teste de software utilizando análise de mutantes e descreve em detalhes os experimentos conduzidos com o objetivo de validar esta proposta.
- Este trabalho propõe-se a adaptar a abordagem de Offutt-DeMillo, gerando dados aleatoriamente e utilizando uma nova técnica para seleção de dados de teste, com o objetivo de reduzir os custos humanos envolvidos neste processo de testes. O conjunto de dados selecionados deverá ser o menor possível, mas eficaz na detecção de defeitos.
- Definindo mais formalmente, os mutantes tough são mutantes não-equivalentes de um determinado programa que necessitam de dados específicos e não triviais para serem eliminados.
2 HIPÓTESES
- a) Hipótese da existência dos mutantes tough
- b) Hipótese da alta capacidade dos mutantes tough em identificar bons dados de teste
4 PERGUNTAS DE PESQUISA
- a) Quais mutantes podem ser classificados como tough?
- b) Os mutantes tough possuem alguma característica específica que os diferencia dos demais?
- c) Como identificar os mutantes tough de maneira eficiente?
- d) Qual é a perda de eficácia na detecção de defeitos ao se utilizar somente os mutantes tough na seleção de dados de teste?
4 EXPERIMENTOS
- Experimento 1 - Existência
- Validar a percepção de que grande parte dos mutantes pode ser eliminada com poucos dados de testes, e que apenas uma pequena parcela dos mutantes precisa de dados específicos para serem mortos. Com isso, pode-se comprovar a existência dos mutantes tough. Validar a quantidade de dados aleatórios necessários para que seja possível identificar os mutantes tough.
- Experimento 2 – Características
- Verificar se os mutantes tough se mantém os mesmos ao se variar os dados de teste aleatórios
- Experimento 3 – Identificação
- Verificar a quantidade mínima de dados de testes aos quais os mutantes devem ser submetidos, a partir da qual é possível identificar os mutantes tough.
- Experimento 4 – Eficácia
- Verificar se os dados que eliminam os mutantes tough são eficazes na detecção de defeitos em programas.
- Para todos os experimentos que foram realizados, o µJava foi o sistema responsável por gerar os mutantes e executar os casos de teste.
- Experimento 1 - Existência
Information
- Description
- TI/Programação Mind Map on MUTANTES, created by Julio Cesar on 17/09/2019.
- Created by
- Julio Cesar
- Views
- 3
- Rating