Engenharia de Software
2 Prof. Luís Fernando GARCIA luis@garcia.pro.br www.garcia.pro.br
Parte 6 Testes
Enfoque Enfoque de TESTES na disciplina
5 Enfoque Enfoque GERENCIAL... Não (apenas) técnico...
ERRO FATAL!
7
Necessidade
9 Dependência Software cada vez mais complexo Software cada vez mais disseminado Software essencial
10 Dependência
Histórico Não Oficial
12 Histórico Não Oficial Anos 70-90 pouca importância Anos 90-00 importância crescente Anos 00-10 Auge da importância Anos 10-18 Complicações?
13 Histórico Não Oficial Anos 10-18 Complicações? Desenvolvimento de APPs Startups Desenvolvimento Ágil Crise em empresas de desenvolvimento
Teste x Qualidade Uma relação complicada...
15
Cases Exemplos e números
17 Dados Clássicos 2002 USA 60 bilhões de prejuízo 2002 USA 22 bilhões de economia com um pouco mais de testes! Normal 40% do custo do projeto Especiais 5x mais que outras fases
18 Cases Clássicos Estação Climática de Marte U$165mi Airbus A320 290 mortes Máquinas de radiação/câncer SAMU Londres 1992 Airbus A300 1994 264 mortes Guerra das Malvinas Trem Míssil SCUD Guerra do Golfo
19 #Medo 5 7 10 erros a cada KLOC!
Definições
21 Definições Processo de executar um programa com o objetivo de revelar a presença de erros...
22 Definições Teste consiste na verificação dinâmica do funcionamento de um programa em um conjunto finito de casos de teste, cuidadosamente selecionado dentro de um domínio infinito de entradas, contra seu funcionamento esperado.
23 Definições
Terminologia Não é tudo a mesma coisa...
25
26
Subdivisões Nomes Oficiais
28 Termos Verificação Validação
Questões Para discussão
30 Questões Origem Humana Inicia nos requisitos Gerados na comunicação Partes raramente usadas Custo crescente
Princípios Da área de teste de software
32 Princípios Não planeje o teste assumindo que o programa está correto Um bom caso de teste é aquele que tem alta probabilidade de encontrar erro ainda não descoberto/caso de teste bem sucedido é aquele que detecta erro ainda não descoberto A probabilidade de existência de mais erros numa parte do programa é proporcional ao número de erros já descoberto na mesma
33 Princípios Teste deve ser feito por outra pessoa que não o autor do programa Dados de teste devem ser definidos para dados inválidos e não-esperados Determinar SEMPRE os resultados esperados Verificar cuidadosamente os resultados de cada teste Nunca jogue fora casos de teste, a não ser que esteja jogando fora também seu programa
Estratégias
35
36 Níveis de Teste
37 Níveis de Teste
38 Técnicas de Teste CAIXA BRANCA
39 Técnicas de Teste CAIXA PRETA
Modelo em V Famoso modelo em V...
41
Planejamento Planejamento de Testes
43
44
45
46
Documentos
48 Caso de Teste
49 Caso de Teste - EXEMPLO
50 Plano de Teste
51 Plano de Teste EXEMPLO
52 Plano de Teste EXEMPLO
53 Plano de Teste EXEMPLOS
Processo Modelo 3Px3E
55 Metodologia 3P x 3E 1 - Procedimentos 2 - Planejamento 3 - Preparação 4 - Especificação 5 - Execução 6 - Entrega
56
57
58
59
Parte 2
Automação
62 Automação de Testes aplicação de estratégias e ferramentas tendo em vista a redução do envolvimento humano em atividades manuais repetitivas (Cen Kaner) FOCO na amplitude/escopo, não na velocidade dos testes
63 Automação de Testes Boas Práticas Automatizar testes críticos primeiro... Nem todos os testes valem a pena serem automatizados... Incorpore testabilidade à aplicação... Ferramentas de testes também são software... Criar infra-estrutura adequada, ambiente isolado e controlado e Massa de dados consistente... Crie um projeto de automação de testes... Alinhe e motive envolvidos... Investimento de longo prazo... Teste manual é insubstituível...
64 Automação de Testes Principal aplicação: Testes Regressão (re-testes de funcionalidades mediante inclusão de novas funcionalidades ou correção de defeitos)
65 Mais Aplicações Testes funcionais Testes unitários Testes de performance Outros...
Paradigmas Da automação de testes de sw
67 Paradigmas
68 Paradigmas Capture/Playback Captura a utilização da aplicação pelo usuário.. Geram um script... Reproduzem posteriormente... Não requerem alterações na aplicação... Dependem fortemente da interface gráfica...
69 Paradigmas Data Driven Executam a mesma ação repetidamente porém com dados diferentes...
70 Paradigmas Keyword Driven Foco em testes de aceitação Foco em metodologias ágeis Permite a escrita de testes baseados em palavraschave que representam ações do usuário (PASSOS) como abrir um browser web, digitar a URL, cliques em botões etc
71 Paradigmas Selenium IDE
72 Paradigmas Linha de Comando Não dependente da Interface Gráfica Criação de Scripts
73 Paradigmas Baseados em API Não dependente da Interface Gráfica Maior profundidade/poder Evolução dos baseados em linha de comando
74 Paradigmas Test Harness Baseado na lógica de negócio Composto de: API ou gancho no programa original Programa testador
75 Paradigmas
76
Ferramentas
Ferramentas Para EXECUÇÃO de testes
79
Ferramentas Para GERÊNCIA de testes
81
82
Testes Ágeis Testes em Ambiente Ágil
84
85 Diferenças entre testes
86 Diferenças entre testes
87 Diferenças entre testes
Nuvem Testes e Nuvens...
89 Nuvens e Testes Teste usando a nuvem: Nesta categoria, o teste de software migra para a nuvem e os recursos computacionais da nuvem são utilizados para potencializar a profundidade, amplitude e a escala do teste de software. Teste da nuvem: Nesta categoria são tratados os desafios da implementação de uma estratégia para a realização de testes em aplicações residentes nas nuvens.
90 Nuvens e Testes Teste usando a nuvem: Potencializa a Profundidade, Amplitude e Escala do teste... Economia Dinamicidade / Adaptabilidade Diversidade de combinações
91 Nuvens e Testes Teste da nuvem: Ambiente distribuído Multiusuário Escalável Alta disponibilidade Infraestrutura compartilhada Alto volume de usuários Usuários sem treinamento
MPT.BR
93
94
95 MPT.BR
Equipe Profissionais de Teste
97 Coordenador de Testes Automatizador de Testes Arquitetos de Testes Definição das técnicas de testes... Analistas de Testes Criação de casos de testes... Testadores Executam os testes...
Competências Dos(as) Profissionais
99 Competências do(a) Profissional de Testes
100 Competências do(a) Profissional de Testes
101 Competências do(a) Profissional de Testes
102 Competências do(a) Profissional de Testes
103 Competências do(a) Profissional de Testes
104 Competências do(a) Profissional de Testes
Profissionais de Testes
The baby is ugly!
107 O testador deve ser diplomático, ou seja, utilizar bons modos e delicadeza para conduzir uma questão, pois, querendo ou não, na maioria das vezes, é portador de más notícias. Conforme [LOVELAND], terá que dizer ao desenvolvedor The baby is ugly!.
Próximo Assunto
109 Próximos Assuntos Evolução Sistemas Legados