17
Testes de Software Testes de Software

Mini aula de teste de software

Embed Size (px)

Citation preview

Page 1: Mini aula de teste de software

Testes de SoftwareTestes de Software

Page 2: Mini aula de teste de software

Apresentação

Wanderlei Silva do Carmo

[email protected]

− Twitter: @w3ae

− Youtube: youtube.com/w3ae

Analista e desenvolvedor de sistemas Formado pelo Universidade Estácio de Sá – RJ Pós-graduando em Engenharia e Arquitetura de

Software Especialista Linux Atuando na área desde 1999 como instrutor em

centros de treinamentos

Page 3: Mini aula de teste de software

Agenda

Definição de Teste e DepuraçãoErro defeito ou falhaVerificação e ValidaçãoPreparação para TesteTécnicas de Teste de SoftwareTécnica Funcional, Técnica estrutural eTécnica Baseada em erro;Critério para geração de casos de teste.

Page 4: Mini aula de teste de software

Erro:

item de informação ou estado de execução inconsistente

Defeito:

deficiência mecânica ou algorítmica que, se ativada, pode levar a uma falha

Falha:

evento notável em que o sistema viola suas especificações

Se houver erros, o software estará com defeito e poderá falhar!

Erro, Defeito e Falha

Page 5: Mini aula de teste de software

Verificação:

O software está funcionando corretamente (sem erros) ?

Validação:

O software faz o que o cliente pediu?

Verificação e Validação

Page 6: Mini aula de teste de software

Selecionar os dados de entrada

Determinar a saída esperada

Preparação para o teste

Page 7: Mini aula de teste de software

Teste:

Processo de execução de um programa com o objetivo de revelar a presença de erros. Contribuem para aumentar a confiança de que o

Depuração:

Consequência não previsível do teste. Após revelada a presença do erro, este deve ser encontrado e corrigido. Contribuem para aumentar a confiança de que o software desempenha as funções especificadas.

Teste e Depuração

Page 8: Mini aula de teste de software

Técnicas de Software

Técnicas

Técnica é o processo que vai assegurar perfeito funcionamento de alguns aspectos de software ou de sua unidade.

Segundo a norma IEEE 610.12-1990, as técnicas são procedimentos técnicos e gerenciais que ajudam a avaliação e a melhoria do processo

Page 9: Mini aula de teste de software

Técnica Estrutural

O Teste estrutural também conhecido como teste da caixa branca, tem por objetivo testar o código fonte, testar cada linha de código possível, testar os fluxos básicos e os alternativos.

Classificam-se em:

Stress: Verifica como o sistema é executado com determinados volumes de dados.Execução: Se o sistema atinge o nível desejado de eficiência;Recuperação Contingência: Se o sistema é capaz de retornar o nível anterior antes da falha.Operação: Se o sistema opera conforme sua documentaçãoCompliance: Se o sistema foi desenvolvido conforme padrões e procedimentos.Segurança: Se o sistema está protegido conforme normas e políticas da organização.

Page 10: Mini aula de teste de software

Técnica Funcional

Teste funcional também conhecido como teste da caixa preta, é baseado na analise funcional do software. Ele garante que os requisitos funcionem conforme o especificado, ele não se preocupa na forma como ele foi implementado, são inseridos alguns dados e espera-se na saída o resultado de como foi projetado os requisitos.

Classificam-se em:

● Requisitos: Se o sistema é efetuado conforme suas especificações● Regressão: Se o sistema ou alguma parte dele foi afetado por alguma

alteração.● Tratamento de erros: Se os possíveis erros que possam acontecer tem

tratamento antes de acontecer suas falhas.● Manual: Interação entre homem e maquina.● Interfaces de integração: Verifica se o sistema troca informações com outros

sistemas.● Controle: Verifica se o sistema tem algum controle de dados, validações e

integridade, logs de auditoria.● Paralelismo: Se a versão nova ou a antiga gera os mesmos resultados.

Page 11: Mini aula de teste de software

Técnica Baseada em Erro

Os dados de teste são gerados considerando os principais defeitos mais cometidos pelos desenvolvedores. Por exemplo, o critério Análise de Mutantes [DEM78];

Análise de Mutantes;

Análise de Mutantes tem por finalidade introduzir pequenos defeitos em umprograma em teste através de operadores de mutação e gerar novos programaschamados de mutantes. Ela baseia-se em dois pressupostos [DEM78]:

• Hipótese do programador competente: os programadores fazem programas bem próximo do correto;

• Efeito de acoplamento: um defeito complexo é revelado, revelando-se defeitos simples. Pequenas modificações são introduzidas no programa através da aplicação de operadores de mutação (operadores que modificam alguma parte do código) que geram novos programas chamados mutantes.

São utilizados casos de testes na execução destes mutantes para distingui-los do programa original

Page 12: Mini aula de teste de software

Técnica Baseada em Erro

Um mutante é dito “morto” quando um caso de teste conseguir fazer a distinção entre o programa mutante e o programa original gerando saídas diferentes. Se a saída do programa original for considerada correta, então este estará livre do possível defeito descrito pelo programa mutante. Caso contrário, um defeito é descoberto e o programa deverá ser corrigido. O critério Análise de Mutantes exige que todos os mutantes sejam mortos [DEM78].

Os casos de teste que matam os mutantes são classificados como eficientes. Caso após a execução de todos os casos de testes, ainda existammutantes que gerem a mesma saída do programa original e se não for possívelgerar um caso de teste cuja saída diferencie o programa original do programamutante, os mutantes são considerados equivalentes ao programa original.

Page 13: Mini aula de teste de software

• Divide o domínio da entrada de um programa em classes de equivalência. A partir das quais os casos de teste são derivados

• Minimiza o número de casos de teste de cada classe, pois em princípio todos os elementos de uma classe devem se comportar de maneira equivalente.

• Classe equivalente representa um conjunto de estados válidos e inválidos para uma condição de entrada.

Critérios de teste Particionamento de classes de equivalência

Page 14: Mini aula de teste de software

• Erros tendem a ocorrer nos limites do domínio de entrada ao invés do centro.

• Explorar os limites dos valores de cada classe de equivalência para preparar os casos de teste.

Critérios de testeAnálise de Valor Limite

Page 15: Mini aula de teste de software

• Verifica o efeito combinado de dados de entrada.• As causas (condições de entrada) e os efeitos (ações) são identificados

e combinados em um grafo.

Critérios de testeGrafo de Causa-efeito

Page 16: Mini aula de teste de software

•Esse critério é baseado em quatro passos:•Para cada módulo de causa e efeito são relacionados, atribuindo-se um identificador para cada um.• O grafo de causa-efeito é elaborado.• Transforma-se o grafo de causa-efeito numa tabela de decisão.• As regras da tabela são convertidas em casos de teste.

Critérios de testeGrafo de Causa-efeito

Page 17: Mini aula de teste de software

Referencias

● http://dspace.c3sl.ufpr.br:8080/dspace

● http://pt.slideshare.net/danilohabreu/engenharia-de-testes