introdução a engenharia de software sw i - parte...nuvens e testes teste usando a nuvem:...
Post on 19-Jun-2020
9 Views
Preview:
TRANSCRIPT
Engenharia de
Software
Prof.Luís Fernando GARCIA
luis@Garcia.pro.br
www.Garcia.pro.br
2
Parte 6
Testes
Enfoque Enfoque de TESTES na disciplina
Enfoque
▸Enfoque GERENCIAL ...
▸Não (apenas) técnico ...
5
ERRO FATAL!
7
Necessidade
Dependência
▸ Software cada vez mais complexo
▸ Software cada vez mais disseminado
▸ Software essencial
9
Dependência10
HistóricoNão Oficial
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?
12
Histórico Não Oficial
▹ Anos 10-18 – Complicações?
▹ Desenvolvimento de APPs▹ Startups▹ Desenvolvimento Ágil▹ Crise em empresas de desenvolvimento
13
Teste x
QualidadeUma relação complicada ...
15
CasesExemplos e números
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
17
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
18
#Medo
5 – 7 – 10 erros a cada KLOC !
19
Definições
Definições
Processo de executar um programa com o objetivo de
revelar a presença de erros ...
21
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.”
22
Definições23
TerminologiaNão é tudo a mesma coisa ...
25
26
SubdivisõesNomes Oficiais
Termos
▸ Verificação
▸ Validação
28
QuestõesPara discussão
Questões
▸ Origem Humana
▸ Inicia nos requisitos
▸ Gerados na comunicação
▸ Partes raramente usadas
▸ Custo crescente
30
PrincípiosDa área de teste de software
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
32
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
33
Estratégias
35
Níveis de Teste36
Níveis de Teste37
Técnicas de Teste – CAIXA BRANCA38
Técnicas de Teste – CAIXA PRETA39
Modelo em VFamoso modelo em V ...
41
PlanejamentoPlanejamento de Testes
43
44
45
46
Documentos
Caso de Teste48
Caso de Teste - EXEMPLO49
Plano de Teste50
Plano de Teste – EXEMPLO51
Plano de Teste – EXEMPLO52
Plano de Teste – EXEMPLOS53
Processo Modelo 3Px3E
Metodologia 3P x 3E
▸ 1 - Procedimentos
▸ 2 - Planejamento
▸ 3 - Preparação
▸ 4 - Especificação
▸ 5 - Execução
▸ 6 - Entrega
55
56
57
58
59
Parte 2
Automação
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
62
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 ...
63
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)
64
Mais Aplicações
▸ Testes funcionais
▸ Testes unitários
▸ Testes de performance
▸ Outros ...
65
ParadigmasDa automação de testes de sw
Paradigmas67
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 ...
68
Paradigmas
▸ Data Driven
▸ Executam a mesma ação repetidamente porém com dados diferentes ...
69
Paradigmas
▸ Keyword Driven
▸ Foco em testes de aceitação
▸ Foco em metodologias ágeis
▸ Permite a escrita de testes baseados em palavras-chave que representam ações do usuário (PASSOS) como abrir um browser web, digitar a URL, cliques em botões etc
70
Paradigmas
▸ SeleniumIDE
71
Paradigmas
▸ Linha de Comando
▸ Não dependente da Interface Gráfica
▸ Criação de Scripts
72
Paradigmas
▸ Baseados em API
▸ Não dependente da Interface Gráfica
▸ Maior profundidade/poder
▸ Evolução dos baseados em linha de comando
73
Paradigmas
▸ Test Harness▸ Baseado na lógica de negócio
▸ Composto de:▹ API ou gancho no programa original▹ Programa testador
74
Paradigmas75
76
Ferramentas
FerramentasPara “EXECUÇÃO“ de testes
79
FerramentasPara “GERÊNCIA“ de testes
81
82
Testes ÁgeisTestes em Ambiente Ágil
84
Diferenças entre testes85
Diferenças entre testes86
Diferenças entre testes87
Nuvem Testes e Nuvens ...
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.
89
Nuvens e Testes
▸ Teste usando a nuvem:
▸ Potencializa a Profundidade, Amplitude e Escala do teste ...
▸ Economia
▸ Dinamicidade / Adaptabilidade
▸ Diversidade de combinações
90
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
91
MPT.BR
93
94
MPT.BR95
EquipeProfissionais de Teste
▸ 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 ...
97
CompetênciasDos(as) Profissionais
Competências do(a) Profissional de Testes99
Competências do(a) Profissional de Testes100
Competências do(a) Profissional de Testes101
Competências do(a) Profissional de Testes102
Competências do(a) Profissional de Testes103
Competências do(a) Profissional de Testes104
Profissionais de Testes
The baby is ugly!
▸ 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!”.
107
Próximo
Assunto
Próximos Assuntos
Evolução
Sistemas Legados
109
top related