introdução a engenharia de software sw i - parte...nuvens e testes teste usando a nuvem:...

Post on 19-Jun-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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