Sie sind auf Seite 1von 15

Teste de defeitos

Teste de Software

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 1

Objetivos





Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 2

Tpicos

Entender as tcnicas de teste que so


engrenadas para descobrir falhas de programa
Introduzir guias para teste de interface
Entender abordagens especficas para testes
orientados a objetos
Entender os princpios do suporte da
ferramenta CASE para teste

Ian Sommerville 2000

Testar os programas para


estabelecer a presena de
defeitos no sistema

Software Engineering, 6th edition. Chapter 20

Slide 3






Testes de componentes e de integrao


Testes de defeitos
Testes orientados a objetos
rea de trabalho de teste

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 4

O processo de teste


Testes de componentes

Fases do teste

Testes de componentes de programas individuais.


Usualmente os programadores assumem a responsabilidade
pelo teste de seu cdigo (exceto em caso de sistemas
crticos).
Testes so derivados da experincia do desenvolvedor.

Testes de integrao

Testes de grupos de componentes integrados para formar


subsistemas ou sistemas completos.
Uma equipe independente de teste faz o teste de integrao.
Os testes so baseados em uma especificao do sistema.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 5

Teste para deteco de defeitos




Software Engineering, 6th edition. Chapter 20

Software Engineering, 6th edition. Chapter 20

Slide 6

Prioridades do teste

O objetivo de testes para a deteco de


defeitos revelar defeitos nos programas.
Um teste bem sucedido aquele que revela a
presena de um defeito (faz com que o
programa se comporte de maneira anmala)
Testes mostram a presena e no a ausncia
de defeitos.

Ian Sommerville 2000

Ian Sommerville 2000

Slide 7

Somente um teste exaustivo pode mostrar que


um programa est livre de defeitos. Contudo,
teste exaustivo impossvel
Os testes deviam exercitar as capacidades do
sistema ao invs de seus componentes
Testar funcionalidades antigas mais
importante do que testar as novas
Testar situaes tpicas mais importante do
que limitar casos de valor

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 8

Processo de teste para a deteco


de defeitos

Dados de teste e Casos de teste




Dados de teste - entradas criadas para testar o


sistema.
Casos de teste - Entradas para testar o sistema
e as sadas esperadas para essas entradas,
quando o sistema opera de acordo com suas
especificaes.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 9

Teste de caixa preta




Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 10

Teste de caixa preta

Uma abordagem para testar onde o programa


considerado como uma caixa-preta.
Os casos de teste para testar o programa so
baseados na especificao do sistema.
O planejamento dos testes podem comear nos
primeiros estgios do processo de software.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 11

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 12

Particionamento de equivalncia


Particionamento de equivalncia

Dados de entrada e resultados de sada caem


em diferentes classes onde todos os membros
de uma classe so relacionados
Cada uma dessas classes uma partio de
equivalncia onde o programa se comporta de
uma maneira equivalente para cada membro da
classe
Casos de teste devem ser escolhidos de cada
partio.
Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 13

Particionamento de equivalncia


Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Particionamento de equivalncia
3

Entradas e sadas do sistema so particionadas


em conjuntos de equivalncia

Slide 14

Se a entrada um inteiro de 5 dgitos entre 10.000 e 99.999,


parties de equivalncia so nmeros < 10.000, nmeros
entre 10.000 e 99. 999 e nmeros > 99. 999

Less than 4

11
10

Between 4 and 10

More than 10

Number of input values




Escolher casos de teste nos limites das


parties:

9999
10000

50000

100000
99999

00000, 09999, 10000, 99999, 10001


Less than 10000

Between 10000 and 99999

More than 99999

Input values
Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 15

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 16

Especificao de uma rotina de


busca

Rotina de busca - parties de entrada

procedure Search (Key : ELEM ; T: ELEM_ARRAY;


Found : in out BOOLEAN; L: in out ELEM_INDEX) ;

Pr-condio
-- a seqncia tem pelo menos um elemento
TFIRST <= TLAST
Ps-condio
-- O elemento encontrado e referenciado por L
( Found and T (L) = Key)
ou
-- O elemento no est na seqncia
( not Found and
not (exists i, TFIRST >= i <= TLAST, T (i) = Key ))

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20




Slide 17

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 18

Rotina de busca - parties de


equivalncia

Diretrizes de testes (sequncias)




Entradas que esto de acordo com a prcondio: seqncia com no mnimo um


elemento.
Entradas onde a pr condio no vale.
Entradas onde o elemento chave um
elemento da seqncia.
Entradas onde o elemento chave no um
membro da seqncia.

Teste o software com seqncias que possuem


somente um nico valor.
Use diferentes seqncias, de diferentes
tamanhos, em diferentes testes.
Derive testes de maneira que o primeiro, o
mdio e o ltimo elemento da seqncia sejam
acessados.
Teste com seqncias de comprimento zero.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 19

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 20

Teste estrutural


Teste caixa branca.

Algumas vezes chamado testes de caixa


branca.
Derivao de casos de teste de acordo com a
estrutura do programa. O conhecimento do
programa usado para identificar casos de
testes adicionais.
O objetivo exercitar todos os enunciados do
programa.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 21

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 22

Busca binria - parties equivalentes







Binary search (Java)

Pr-condies satisfeitas, elemento chave includo na


matriz
Pr-condies satisfeitas, elemento chave no includo
na matriz
Pr-condies no satisfeitas, elemento chave includo
na matriz
Pr-condies no satisfeitas, elemento chave no
includo na matriz
A entrada tem um nico valor
A entrada tem um nmero mpar de valores
A entrada tem um nmero par de valores

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 24

Busca binria - parties equivalentes

Busca binria casos de teste

Equivalence class boundaries

Elements < Mid

Elements > Mid

Mid-point

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 25

Teste de caminho


Software Engineering, 6th edition. Chapter 20

Software Engineering, 6th edition. Chapter 20

Slide 26

Grficos de Fluxo do Programa

O objetivo do teste de caminho assegurar que o


conjunto de casos de teste permite que cada caminho
do programa seja executado pelo menos uma vez
O ponto de partida para o teste de caminho um
grfico de fluxo do programa, no qual os ns
representam as decises do programa, enquanto os
arcos representam o fluxo de controle
Enunciados com condies so, dessa forma, ns no
grfico de fluxo

Ian Sommerville 2000

Ian Sommerville 2000

Slide 27

Descreve o fluxo de controle do programa,


Cada ramo mostrado como um caminho
separado e loops so mostrado por setas, por
uma seta fazendo a volta, de volta para o n de
condio do loop
Usado como base para computar a
complexidade ciclomtica
Complexidade ciclomtica = Nmero de ramos
Nmero de ns +2
Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 28

Complexidade ciclomtica


O nmero de testes para testar todos os enunciados de


controle igual a complexidade ciclomtica
A Complexidade ciclomtica igual ao nmero de
condies em um programa
Este tipo de caso de teste deve ser usado com cuidado.
Isso no implica na adequao do teste
Embora todos os caminhos sejam executados, todas as
combinaes de caminho no so executadas

bottom > top

while bottom < = top


2

if (elemArray [mid] == key

8
5

(if (elemArray [mid]< key


6

9
7

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 29

Caminhos independentes






Testes de integrao

1, 2, 3, 8, 9
1, 2, 3, 4, 6, 7, 2
1, 2, 3, 4, 5, 7, 2
1, 2, 3, 4, 6, 7, 2, 8, 9
Casos de teste devem ser projetados para
executar todos esses caminhos.
Um analisador de programa dinmico pode ser
usado para verificar que os caminhos esto
sendo executados

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Grfico de fluxo para busca


binria

Slide 31




Testes feitos em sistemas completos ou


subsistemas, compostos de componentes
integrados.
Testes de integrao devem ser desenvolvidos
a partir da especificao do sistema.
A maior dificuldade a localizao de erros.
Integrao incremental reduz esse problema.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 32

Testes de integrao incremental


A

Abordagens para o teste de integrao


T1

A
T1

Comea com os componentes de alto nvel de um sistema, e


a integrao se d de cima para baixo em uma hierarquia de
componentes. Componentes individuais em um nvel mais
baixo na hierarquia so representados por stubs.

T2

T2
T2

T3

Teste de integrao bottom-up

T3

Envolve integrar e testar os mdulos de nvel inferior na


hierarquia e, ento, subir na hierarquia de mdulos, at que o
mdulo final seja testado.

C
T4

T3
C

T4

T5

D
Test sequence
1

Test sequence
2

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Testing
sequence

Na prtica, a maioria das integraes envolve a


combinao dessas estratgias.

Test sequence
3
Slide 33

Ian Sommerville 2000

Teste de integrao top-down


Level 1

Teste de integrao top-down

T1

Level 1

Level 2

Le vel 2

Slide 34

Teste de integrao bottom-up


. ..

Test
drivers
Level N

Level 2

Software Engineering, 6th edition. Chapter 20

Level N

Le vel N

Level N

Level N

Level 2

Testing
sequence

Le vel 2
stubs
Test
drivers

Le vel 3
stubs

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 35

Level N1

Ian Sommerville 2000

Level N1

Level N1

Software Engineering, 6th edition. Chapter 20

Slide 36

Abordagens de teste


Validao da arquitetura

Os testes de integrao top-down permitem a demonstrao de um


sistema de trabalho limitado em uma fase inicial do desenvolvimento.


Implementao de teste

Os testes top-down oferecem maior probabilidade de descobrir erros


na arquitetura de sistema

Demonstrao do sistema

Testes de interface

So geralmente mais fceis com o teste bottom-up

Observao de teste

Problemas com ambas as abordagens. Cdigo extra so


necessrios para observar os testes.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 37

Teste de interface

Ocorrem quando mdulos ou subsistemas so


integrados para criar sistemas maiores.
Objetivo detectar erros devido a erros ou
suposies invlidas sobre interfaces.
Particularmente importante para o
desenvolvimento orientado a objeto, uma vez
que os objetos so definidos por suas
interfaces

Ian Sommerville 2000

Slide 38

Tipos de interfaces

Test
cases

Interfaces de parmetros

Bloqueio de memria compartilhado entre os processos

Interfaces de procedimento

Os dados transmitidos de um processo para outro

Interfaces de memria compartilhada

Software Engineering, 6th edition. Chapter 20

Sub-sistemas encapsulam um conjunto de processos para


serem chamados por outros sub-sistemas

Interfaces de transmisso de mensagem

Sub-sistemas requerem servios de outros sub-sistemas

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 39

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 40

Erros de interface


Guia de teste de Interface

Mau uso da Interface

Um componente chamador chama outro componente e


produz um erro no uso de sua interface
Ex: parmetros na ordem errada

M interpretao da Interface

Um componente chamador cria suposies incorretas sobre o


comportamento do componente chamado

Erros de tempo

O componente chamador e o chamado operam em


velocidades diferentes e informaes fora de data so
acessadas

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 41

Teste de estresse


Software Engineering, 6th edition. Chapter 20

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 42

Teste orientado ao objeto

Exercitar o sistema alm de sua carga mxima de


projeto. Estressar o sistema geralmente faz com que os
defeitos venham tona
Estressando o comportamento de falha de teste do
sistema. Os sistemas no devem ter falhas
catastrficas. Testes de estresse devem checar perdas
inaceitveis de servio ou dados
Particularmente relevante para sistemas distribudos
que podem apresentar srias degradaes quando a
rede fica sobrecarregada

Ian Sommerville 2000

Projeta testes de forma que os parmetros de um


procedimento chamado esto nos extremos de suas
faixas
Sempre testar parmetros indicadores com indicadores
nulos
Projetar testes que causem falhas no componente
Usar o teste de estresse em sistemas transmissores de
mensagem
Em sistemas de memria compartilhada, variar a ordem
na qual os componentes so ativados

Slide 43

Os componentes a serem testados so classes


de objetos que so instanciadas como objetos.
Objetos individuais so, muitas vezes, maiores
do que funes isoladas, ento a abordagem
de teste de caixa-branca deve ser estendida.
No existe um nvel superior bvio para
integrao e teste top-down.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 44

Testes de classes de objetos

Nveis de teste





Testar operaes associadas com os objetos.


Testar classes de objetos.
Testar agrupamentos de objetos cooperativos.
Testar o sistema orientado a objeto completo.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 45

Interface de objeto de uma estao


meteorolgica
WeatherStation
identifier
reportWeather ()
calibrate (instruments)
test ()
startup (instruments)
shutdown (instruments)

Ian Sommerville 2000

Testar todas as operaes associadas com um objeto


Estabelecimento e a interrogao de todos os atributos do
objeto
Exercitar o objeto em todos os estados possveis

Herana dificulta o projeto de testes de classe


de objetos, pois as informaes a serem
testadas no so localizadas

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 46

Integrao de objetos

Cases de teste so necessrios


para todas as operaes
Use um modelo de estado para
identificar transies de estado
para teste
Exemplos de seqncias de
teste

Fechar Esperar Fechar

Esperar Calibrar Testar Transmitir


Esperar

Esperar Coletar Esperar Resumir


Transmitir Esperar

Software Engineering, 6th edition. Chapter 20

A cobertura completa de testes de uma classe


envolve

Slide 47

Nveis de integrao so menos distintos em


sistemas orientados a objetos.
Testes de clusters se ocupam com a integrao
e teste de objetos que cooperam entre si.
Clusters devem ser identificados utilizando-se
o conhecimento de suas operaes e as
caractersticas do sistema implementadas por
esses clusters.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 48

Abordagens para o teste de cluster




Teste de casos de uso ou cenrio

O teste baseado nas interaes de um usurio com o


sistema
Tem a vantagem de testar as caractersticas do sistema como
so experimentadas pelos usurios

Teste de seqncia

Teste baseado em cenrio

Testa a resposta do sistema a eventos como processar


seqncias atravs do sistema

Identificar cenrios de casos de uso e


suplement-los com diagramas de interao,
que mostram os objetos envolvidos no cenrio
Considerar esse cenrio no sistema da estao
meteorolgica onde um relatrio gerado

Teste de interao de objetos

Testa seqncias de interaes de objetos que param quando


uma operao de objeto no solicita servios de um outro
objeto

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 49

Coletar dados sobre o tempo


:CommsController

:WeatherStation

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 50

Teste da estao meteorolgica

:WeatherData

Seqncia de mtodos executados

request (report)
acknowledge ()

report ()
summarise ()

send (report)
reply (report)

CommsController:requerer
WeatherData:resumir

WeatherStation:reportar

Entradas e sadas

Entrada de pedidos de relatrio com reconhecimento


associado e uma sada final de um relatrio

Pode ser testado criando dados brutos, certificando-se que


so resumidos apropriadamente

Usar os mesmos dados brutos para testar o objeto


WeatherData

acknowledge ()

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 51

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 52

Uma rea de trabalho de teste




Uma rea de trabalho de teste

O teste uma fase cara do processo. Uma rea


de trabalho de teste nos d ferramentas para
reduzir o tempo necessrio e o custo total do
teste
A maioria das reas de trabalho de teste so
sistemas abertos porque as necessidades do
teste so especficas organizao
difcil integrar com projeto fechado e reas de
trabalho de anlise
Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 53

Tete de adaptao de rea de trabalho




Os scripts podem ser desenvolvidos para os


simuladores de interface de usurio e padres
para geradores de dados de teste
Sadas de testes podem precisar ser
preparadas manualmente para comparao
Comparadores de arquivos de propsito
especial podem ser desenvolvidos

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 55

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 54

Pontos chave


mais importante testar as partes do sistema mais


comumente utilizadas do que as partes que so
exercitadas raramente.
Partio de equivalncia uma maneira de derivar casos
de teste. Parties so conjuntos de dados onde o
programa deve se comportar de maneira equivalente.
Teste de caixa preta baseado na especificao do
sistema. No precisa analisar o cdigo fonte.
Teste estrutural baseia-se na anlise do programa para
determinar os caminhos a serem executados e a seleo
de casos de teste.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 56

Pontos chave


Os testes de integrao testes de integrao se


concentram no teste das interaes entre os
componentes.
Os testes de interface testes de interface procuram
descobrir defeitos nas interfaces ou nos mdulos.
Para testar as classes de objetos testar as classes
de objetos, deve-se testar todas as operaes,
atributos e estados.
Sistemas orientados objetos devem ser integrados
integrados em torno de clusters clusters de objetos.

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 20

Slide 57

Das könnte Ihnen auch gefallen