Você está na página 1de 60

Teste de Software Aula 1

Profa. Roberta Coelho

Objetivos

Discutir sobre:
Experiencia da Turma Forma de Avaliacao Bibliografia O que teste de software?

Bibliografia

Algumas perguntas que surgem quando falamos sobre testes ...

2. O que afinal testar?

1. Por que testar?


3. Quando testar? 4. O que testar?

5. Como testar?

O que afinal testar?

26/08/2012

6 6

Testar consiste em

SOFTWARE

Testar consiste em

SOFTWARE

Testar consiste em

SOFTWARE

Testar consiste em
Dominio de Entrada Dominio de Saida

SOFTWARE

?
Oraculo
10

A entrevista...

Durante uma entrevista desenvolvedores definiram a atividade de testes como...

26/08/2012

11 11

A Entrevista
1.O objetivo dos testes mostrar que erros no esto presentes no software. 2.Testes procuram assegurar que o programa faz o que se supe que ele faa.
Voc v algum problema nestas definies?

26/08/2012

12 12

Definies

Como podemos fazer para assegurar que a funo no contem falhas??


func(int a, int b, int c)

26/08/2012

13 13

Definies

Precisarei executar a funo para todas as entradas possveis.


func(int a, int b, int c)

int -2.147.483.648 a 2.147.483.647 num de entradas possiveis 9.903.520.314.283.042.199.192.993.792


14 14

26/08/2012

Definio

Testar todas as entradas praticamente invivel!!

Por isso, assumimos que: o programa tem falhas!

26/08/2012

15 15

Definio

O teste pode mostrar a presena de falhas em


um software, Dijkstra mas nunca a sua ausncia.

26/08/2012

16 16

Portanto...

Definio

Durante os testes executa-se o programa com o objetivo de encontrar DEFEITOS..

Quanto mais DEFEITOS encontrarmos melhor ...


... pois sobraro menos DEFEITOS na verso final do sistema!!

26/08/2012

17 17

Quiz

Voc acha que a definio errada do que teste de software pode impactar na qualidade dos testes e consequentemente do sistema?
Por qu?

18

Quiz-Resposta

Se a tarefa do testador for verificar que o programa no contm erros, ento...


Ele trabalhar para isso. O testador deixar escapar erros que existem (inconscientemente).

19

Quiz - Resposta

Mas se a tarefa do testador encontrar problemas, ento...


Ele trabalhar para isso.
Ele trabalhar para encontr-los!

20

Processo de Testes na Microsoft

Tester DNA has to include a passion for quality and a love of finding out how something works and then how to break it.

that is what makes a tester different from a developer

21

Processo de Testes na Microsoft

Desenvolvedor tem uma atitude CONSTRUTIVA a curto prazo!!


Constri o sistema.

22

Processo de Testes na Microsoft

Testador deve ter uma atitude DESTRUTIVA!!


ASSUME que o programa tem falhas. Quanto mais falhas encontrarmos melhor...

Pois menos falhas sobraro aps o release!


23

Processo de Testes na Microsoft

Porm esta atitude CONSTRUTIVA a longo prazo:


bugs encontrados so corrigidos! o programa vai ficando cada vez mais robusto.

24

Por que testar?

26/08/2012

25 25

Alguns dados estatsticos (1)


Beizer [1990] estimou que testes toma 30% a 90% do custo de desenvolvimento

Santhanan and Hailpern [2002] relata que de 50 a 75% do custo de desenvolvimento envolve teste e depurao

26
26

Testes nas Empresas

27

Testes nas Empresas

28

Dev:Test Ratio

Na Microsoft existe em mdia 1 testador para cada desenvolvedor (as vezes o dobro ou triplo dependendo do projeto).

29

Processo de Testes na Microsoft

With a ratio of testers:developers of 1:1, those testers keep busy by testing the product () - and that involves automation, a lot of automation.

30

Quiz
Quais

vantagens e desvantagens de termos esta taxa 1:1?

31

Dev:Test Ratio

32

2. O que afinal testar?

1. Por que testar?


3. Quando testar? 4. O que testar?

5. Como testar?

33

Quando Testar?

34

Quando Testar?

At pouco tempo atrs os testes eram vistos como uma etapa posterior a implementao (Big-Bang Testing) Voce v algum problema nisso??
Projeto Arquitetural

Especificao de Requisitos

Projeto Detalhado
Codificao Testes

35

Quando Testar?

At pouco tempo atrs os testes eram vistos como uma etapa posterior a implementao (Big-Bang Testing)
Se o software nao foi projetado pensando em testes??

Especificao de Requisitos Projeto Arquitetural

Projeto Detalhado
Codificao Testes How To Write Hard To Test Code? (Misko Hevery Google Talk)

Agora Ins morta....

36

37

Quando Testar?

Hoje os Testes no so mais vistos como uma fase que inicia aps a implementao. Testes so todo um processo executado em PARALELO ao processo de desenvolvimento.

38

Quando Testar?

Hoje:
Especificao de Requisitos Arquitetura Testes de Aceitao Testes de Sistema Testes de Integrao Testes de Unidade

Projeto

Implementao

26/08/2012

39 39

Teste de Unidade (Developer Testing)

OBJETIVO: Testar componentes individuais (ex: classes, mtodos), durante a implementao.

QUE TESTADO: a interface, condies de limite, tratamento de erros dentro das fronteiras da unidade, ...

Aluno getDisciplinas() calculaMedia(Disciplina d) ....

Test Driven Development : testes antes!


26/08/2012 40 40

Teste de Integrao

OBJETIVO: Integrar, aos poucos, conjuntos de mdulos e test-los (integrao incremental).

O QUE TESTADO: a interface entre os mdulos.


41 41

26/08/2012

Teste de Sistema

OBJETIVO: Verificar o funcionamento da aplicao como um todo em um ambiente operacional similar ao de produo.

O QUE TESTADO: Verificar requisitos funcionais e no funcionais (desempenho, usabilidade...).


42 42

26/08/2012

O que testar?

43

Tipos de Teste
Tipo do Teste Teste funcional Descrio - Testa a funcionalidade geral (regras de negcio). - Condies vlidas e invlidas.

26/08/2012

44 44

Tipos de Teste de Sistema


Tipo do Teste
Teste de desempenho

Descrio
- Verifica o tempo de resposta e processamento para diferentes configuraes: - nmero de usurios ou - tamanho do BD. - Geralmente ocorre paralelamente ao teste de estresse.

26/08/2012

45 45

Tipos de Teste
Tipo do Teste Teste de recuperao de falhas Descrio - O software forado a falhar de diversas maneiras - Verificamos procedimentos de recuperao.

26/08/2012

46 46

Tipos de Teste de Sistema


Tipo do Teste Teste de interfaces com o usurio Descrio - Verifica: - navegao - consistncia - aderncia a padres

26/08/2012

47 47

Como testar?

48

Como Testar?
Nossa tarefa como testadores trabalhar para encontrar defeitos no software! No podemos testar um programa para todas as entradas possveis...

49

Quiz: Como podemos aumentar


as chances de um subconjunto de entradas detectar uma falha?

50

Para lidar com a incompletude dos testes existem basicamente dois tipos de ESTRATGIAS...

51

52

Tipos de Estratgias de Teste

Existem basicamente dois tipos de estratgias de teste: Caixa preta (ou funcional) e

Caixa branca (ou estrutural)

26/08/2012

53 53

Teste Caixa Preta

Tambm conhecida como data-driven, or input/output

driven testing

Casos de teste criados manipulam apenas dados de ENTRADA e a SADA.

x
Dados de entrada Programa
54 54

Dados de sada

Sada esperada

26/08/2012

Estrutural (caixa branca)

Desenvolvedor precisa conhecer o funcionamento interno do programa. Testa possveis caminhos lgicos do programa.

Dados de entrada

Programa
26/08/2012 55 55

Qual a melhor?

Dados de entrada

Programa

x
Dados de entrada Programa
26/08/2012 56 56

Dados de sada

Sada esperada

Quiz: Se alguem lhe pedisse para testar este sistema como voce faria??

GUI
Servlet1

Servlet2 Servlet3

Negcio

<fachada> Banco Conta

Cliente

Dados DAOCliente DAOConta


57

Problema: Se a funcionalidade testada falha... Onde estar o defeito que causou esta falha?
GUI
Servlet1 Servlet2 Servlet3

Negcio

<fachada> Banco Conta

Cliente

Dados DAOCliente DAOConta


58

Resumo

Discutimos a incompletude dos Testes.

Respondemos as perguntas:
Por que testar? Quando testar? Como testar? O que testar?

59

Quiz - Resposta

Testes de Unidade, Integrao e Sistema so complementares.

Podemos usar testes caixa preta no nivel de sistema, ...

60