A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teste de Software 01: Introdução Marcelo dAmorim

Apresentações semelhantes


Apresentação em tema: "Teste de Software 01: Introdução Marcelo dAmorim"— Transcrição da apresentação:

1 Teste de Software 01: Introdução Marcelo dAmorim

2 2 Resumo desta aula Perspectiva –Provar corretude ou encontrar erros? Alguma terminologia –Caso de teste, suite de teste, falha, defeitos, depuração, etc. Dados estatísticos sobre a área

3 3 Perspectiva: Métodos Formais e Informais Prova de teorema –Prova propriedades complexas, mas requer muito esforço humano. Análise estática (interpretação abstrata) –Prova propriedades simples; pode apresentar alarmes falso. Mas é automático. Teste –Não prova corretude e não é automático!

4 4 Perspectiva: Métodos Formais e Informais Testing can never demonstrate the absence of errors in software, only their presence. -- E.W.Dijkstra

5 5 Perspectiva: Métodos Formais e Informais Testing can never demonstrate the absence of errors in software, only their presence. -- E.W.Dijkstra Principal limitação de testes é incompletude: é possível que teste não encontre um erro latente.

6 6 Perspectiva: Métodos Formais e Informais Testing can never demonstrate the absence of errors in software, only their presence. -- E.W.Dijkstra Apesar disto, testes também é: –Simples de implantar –Documenta intenções e designs, e –É eficaz em encontrar erros. Inclusive, erros complexos como memory leakage e deadlock Principal limitação de testes é incompletude: é possível que teste não encontre um erro latente.

7 7 "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth

8 8 O que é um teste?

9 9 A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement [IEEE, do178b]

10 10 O que é um teste? A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement [IEEE, do178b]

11 11 O que é um teste? A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement [IEEE, do178b]

12 12 Partes de um (caso de) teste Test inputs = dados de entrada Execution conditions = precondições Expected results (oracle) = resultado esperado (oráculo)

13 13 Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: ?

14 14 Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: Inserir cartão Confirmar se leu corretamente Informar senha Confirmar se válida Interromper se opção saque indisponível Informar opção de saque Informar valor de saque Retirar dinheiro Conferir dinheiro

15 15 Estrutura de um teste Exemplo: caixa eletrônico Cenário: saque de dinheiro Teste: Inserir cartão Confirmar se leu corretamente Informar senha Confirmar se válida Interromper se opção saque indisponível Informar opção de saque Informar valor de saque Retirar dinheiro Conferir dinheiro ENTRADA CONDIÇÃO RESULTADO ESPERADO

16 16 Suíte de teste Definição: conjunto de casos de testes Em geral, relacionado a módulo do sistema Exemplo: suíte de regressão

17 17 comum: rodar teste de regressão ao final de cada dia de desenvolvimento continuous testing: rodar teste de regressão a medida que mudanças aparecem impact analysis: rodar apenas os testes afetados por mudanças no código

18 18 Terminologia IEEE STD (http://standards.ieee.org/)http://standards.ieee.org/ –Fault ou bug (defeito) problema –Failure (erro) manifestação do problema Mais detalhes –Software Metrics and Reliability [Rosenberg et al., ISSRE98]

19 19 Terminologia IEEE STD (http://standards.ieee.org/)http://standards.ieee.org/ –Fault or bug (defeito) problema –Failure (erro) manifestação do problema Mais detalhes –Software Metrics and Reliability [Rosenberg et al., ISSRE98] CAUSA EFEITO

20 20 Exemplo // pre condicao: v != null public static void sort(int[] v) { for (int i = 0; i <= v.length; i++) { …v[i] … }

21 21 Exemplo // pre condicao: v != null public static void sort(int[] v) { for (int i = 0; i <= v.length; i++) { …v[i] … } CAUSA EFEITO

22 22 Teste e Depuração Teste é atividade de localizar erros! Depuração é atividade de localizar bugs! Exemplo –sort(new int[]{});

23 23 Terminologia IEEE STD (http://standards.ieee.org/)http://standards.ieee.org/ –Fault or bug (defeito) problema –Failure (erro) manifestação do problema Mais detalhes –Software Metrics and Reliability [Rosenberg et al., ISSRE98] Teste procura por manifestações de um problema

24 24 Como se manifesta? Erros de lógica Erros universais

25 25 Inspeção Forma-se uma equipe para identificar defeitos e chegar a um consenso Qualquer artefato pode ser alvo de inspeção Exemplo –Walkthrough (forma de code peer review)

26 26 Teste x Depuração x Inpeção Teste e Depuração são atividades ortogonais Inspeção –Manual (necessariamente) –Complementar à teste e depuração

27 27 Alguns dados estatísticos Entre 70 e 80% do custo de desenvolvimento de software envolve atividades de teste e depuração -- National Institute of Standards and Technology (NIST) 2002.

28 28 Alguns dados estatísticos Gartner Group estimou em 2006 que o mercado mundial de teste de software é de $13bi. e o tamanho do mercado global de serviços é em torno de $6.1bi. --

29 29 Resumo desta aula Perspectiva –Provar corretude ou encontrar erros? Alguma terminologia –Caso de teste, suíte de teste, falha, defeitos, depuração, etc. Dados estatísticos sobre a área

30 30 Enquete ant make JUnit3 JUnit4


Carregar ppt "Teste de Software 01: Introdução Marcelo dAmorim"

Apresentações semelhantes


Anúncios Google