Sie sind auf Seite 1von 44

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCINCIAS, LETRAS E CINCIAS EXATAS DEPARTAMENTO DE CINCIAS DE COMPUTAO E ESTATSTICA

Teste de Software
Engenharia de Software 2o. Semestre de 2005

Slide 1

Testes para a deteco de defeitos


q

Testar programas para estabelecer a presena de defeitos no sistema.

Slide 2

Tpicos
q q q

Testes para a deteco de defeitos Testes de integrao Testes orientados a objetos

Slide 3

O processo de teste
q

Testes de componentes
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 grupos de componentes integrados para formar subsistemas ou sistemas completos. Uma equipe independente de teste fazem o teste de integrao. Os testes so baseados em uma especificao do sistema.
Slide 4

Testes de integrao

Teste para deteco de defeitos


q

O objetivo de testes para a deteco de defeitos revelar defeitos latentes 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.

Slide 5

Prioridades do teste
q

A nica maneira de mostrar que um programa est correto o teste exaustivo. Contudo, teste exaustivo exaustivo impraticvel. impraticvel Testes devem ser baseados em um subconjunto de possveis casos de teste. Polticas devem ser utilizadas para escolher esse conjunto.
Ex: todas as declaraes do programa devem ser testadas pelo menos uma vez Todas as funes de sistema acessados por meio de menus devem ser testadas, etc.

Slide 6

Dados de teste e Casos de teste


q

Dados de teste entradas criadas para testar o sistema. Casos de teste Entradas para testar o sistema e sadas esperadas para essas entradas ( quando o sistema opera de acordo com suas especificaes) .

Slide 7

Processo de teste para a deteco de defeitos

Test Casos Casos cases de teste de teste Design test Projetar casos Projetar casos cases de teste de teste Prepare test Preparar dados Preparar dados dedata teste de teste

Test Dados Dados data de teste de teste

Test Resultados Resultados results de teste de teste

Test Relatrios Relatrios reports de teste de teste

Run program Executar programa Executar programa with test data com dados de teste com dados de teste

Compare r esults Comparar resultados Comparar resultados com to test cases teste os casos de com os casos de teste

Slide 8

Teste de caixa preta


q

Uma abordagem de teste 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.

Slide 9

Teste Caixa preta


Entrada de Dados de teste Entradas que provocam comportamento anmalo Ie

Problema: selecionar entradas Ie


SISTEMA SISTEMA Sadas que revelam a presena de defeitos Sada dos resultados de teste Oe

Slide 10

Particionamento de equivalncia
(abordagem sistemtica para seleo de dados de teste)
q

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.
Slide 11

(abordagem sistemtica para seleo de dados de teste)

Particio de Equivalncia

Inva li d in pu ts

Va li d in pu ts

S y ste m

Ou tput s

Slide 12

(abordagem sistemtica para seleo de dados de teste)

Particionamento de equivalncia
q

Entradas e sadas do sistema so particionadas em conjuntos de equivalncia


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

Escolher casos de teste nos limites das parties:


00000, 09.999, 10.000, 50.0000, 99.999, 100.000

Slide 13

(abordagem sistemtica para seleo de dados de teste)

Parties de equivalncia
O programa aceita entre 4 a 10 entradas, que so nmeros inteiros de cinco dgitos, maiores do que 10.000 e menores que 99.999

3 4 7 10

11

Le s s th an 4

B etw een 4 an d 10

M o re tha n 10

Nu m ber of inp ut v alu es 9 99 9 1 00 00 1 00 00 0 9 99 99

5 00 00

Le s s th an 1 00 00 Inp ut valu es

B etw ee n 10 00 0 an d 99 99 9

M o re tha n 99 99 9

Slide 14

Especificao de uma rotina de busca


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 ))

Slide 15

Rotina de busca - parties de entrada


q

q q

Entradas que esto de acordo com a pr condio: 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.

Slide 16

Diretrizes de testes (no caso do exemplo usado)


q

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.

Slide 17

Rotina de busca - parties de equivalncia


Vetor Valor nico Valor nico Mais que 1 valor Mais que 1 valor Mais que 1 valor Mais que 1 valor Elemento Est na seqncia No est na seqncia P r i m e i r o e l e m e n t o est n a s e q n c i a l t i m o e l e m e n t o e s t n a s e q n c i a E l e m e n t o m d i o e s t n a s e q n c i a N o e s t n a s e q n c ia

Seqncia de entradas (T) 17 17 17, 29, 21, 23 41, 18, 9, 31, 30, 16, 45 17, 18, 21, 23, 29, 41, 38 21, 23, 29, 33, 38

Chave (key) 17 0 17 45 23 25

Sadas (Found, L) Verdadeiro, 1 Falso, ?? Verdadeiro, 1 Verdadeiro, 7 Verdadeiro, 4 Falso, ??

Slide 18

Teste Estrutural
q

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.
Exemplo: exercitar todas as declaraes do programa.

Slide 19

Testes caixa branca


Dados Dados Test teste Test d ata de d ata de teste

Testa Tests Tests

Derives Deriva Derives Co mpo de Cdigo nent Co mpo nent Cdigo de componente cod e cod e componente Test Test Sadas Sadas o utputs o do teste utputs

do teste

Slide 20

Testes de Caminho
q

O objetivo dos testes de caminho garantir que o conjunto de casos de teste tal que cada caminho do programa executado no mnimo uma vez. Para o teste de caminho, elabora-se um grafo de fluxo de programa, onde os ns, representam os pontos de deciso do programa, e os arcos representam o fluxo de controle.
Slide 21

Grafos de fluxo de programa


q

Modelo em esqueleto de todos os caminhos do programa. Consiste em ns que representam decises e em ramos que mostram o fluxo de controle. construdo atravs do cdigo fonte, onde substitui-se os comandos por ns e desvios pelos arcos (ou ramos) do grafo. Declaraes seqenciais so ignoradas na construo do grafo de fluxo.

Slide 22

Grafos de fluxo de programa


q

Em um comando condicional, cada ramo mostrado como um caminho separado, e laos so indicados por uma seta fazendo o loop de volta para o n de condio do lao. Usado como base para calcular o nmero de caminhos independentes no programa. Caminho independente - caminho que atravessa pelo menos um novo ramo no grafo de fluxo.
Slide 23

Complexidade Ciclomtica
q

O nmero de caminhos independentes no cdigo igual complexidade ciclomtica. ciclomtica Clculo da Complexidade ciclomtica:
CC = Nmero de ramos - Nmero de ns + 2.

Complexidade ciclomtica determina o nmero de casos de teste mnimo para testar adequadamente todos os caminhos independentes do programa.

Slide 24

class BinSearch {

Esse um encapsulamento de uma funo de busca // binria que considera um vetor de objetos ordenados e uma chave // e retorna um objeto com 2 atributos, chamados // index o valor do ndice de vetor // found um booleano que indica se uma chave est ou no no vetor // A chave ser 1 se o elemento no for encontrado
//

public static void search ( int key, int [] elemArray, Result r ) { int bottom = 0 ; int top = elemArray.length - 1 ; int mid ; r.found = false ; r.index = -1 ; while ( bottom <= top ) { mid = (top + bottom) / 2 ; if (elemArray [mid] == key) { r.index = mid ; r.found = true ; return ; } // if part else { if (elemArray [mid] < key) bottom = mid + 1 ; else top = mid - 1 ; } } //while loop } // search } //BinSearch

Busca binria (Java)

b otto m > top

w hile bo ttom < = to p 2

if (elem A rray [m id] == k ey

8 5 9

(i f (elemA rray [mi d]< key 6

Grafo de fluxo para Busca Binria

Caminhos independentes
q q q q q

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.
Exerccio: elaborar um conjunto de dados que execute os caminhos independentes acima.

Slide 27

Teste de Caminhos
q q

til se usado com cuidado. No implica que o programa foi adequadamente testado - embora todos os caminhos independentes so executados, todas as combinaes possveis de caminhos no so executadas.

Slide 28

Testes de integrao
q

q q

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.

Slide 29

Testes de integrao incremental


A A T1 A T2 B T3 C T4 D T5 Test s equ ence Seqncia 3 B T3 C T4 T2 B T3 T1 T2 T1

Seqncia Test s equ ence 1 de teste 1

Seqncia Test s equ ence 2 de teste 2

de teste 3 Slide 30

Abordagens para o teste de integrao


q

Teste de integrao top-down


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. 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.

Teste de integrao bottom-up

Na prtica, a maioria das integraes envolve a combinao dessas estratgias.


Slide 31

Testes de integrao Top-down


Level 1 Testin g Seqncia s eq uen ce de testes Level 1 . ..

Level 2 Le vel 2 Stubs do s tu nvelbs 2

Leve l 2

Le vel 2

Level 2

Le vel 3 Stubs do s tubs nvel 3

Slide 32

Testes de integrao bottom-up


Test Drivers de d ri vers teste Lev el N Level N Le vel N Lev el N Lev el N

Seqncia Test in g sde uen ce eq testes

Test Drivers de v ers d ri teste

Level N 1

Lev el N 1

Lev el N 1

Slide 33

Vantagens e desvantagens das abordagens de teste


q

Validao da arquitetura
Os testes top-down oferecem maior probabilidade de descobrir erros na arquitetura de sistema, em um estgio inicial do processo de desenvolvimento. Os testes de integrao top-down permite a demonstrao de um sistema de trabalho limitado em uma fase inicial do desenvolvimento. Testes top-down so mais difceis de implementar pois necessrio a produo de stubs (programas que simulam nveis inferiores) Problemas com ambas as abordagens. Cdigo extra so Slide 34 necessrios para poder observar os testes.

Demonstrao do sistema

Implementao de teste

Observao de teste

Testes de interface
q

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

Slide 35

Testes de Interface
Test cases

Slide 36

Diretrizes para os testes de interface


q

Projete conjunto de testes em que o valor dos parmetros para os componentes externos esteja nos limites extremos. Sempre teste parmetros ponteiros com ponteiros nulos. Em sistemas de passagem de mensagem, projete testes que gerem muito mais mensagens que provvel ocorrer na prtica (teste de estresse). estresse) Em um sistemas de memria compartilhada, varie a ordem na qual os componentes so ativados.

Slide 37

Testes de estresse
q

Exercitam o sistema alm de sua carga mxima de projeto, at o sistema falhe. Testa o comportamento de falha do sistema. importante que a falha no cause a corrupo de dados ou a perda inesperada de servios do usurio. Particularmente relevantes para sistemas distribudos, que podem exibir uma degradao severa quando a rede se torna sobrecarregada.
Slide 38

Testes orientados a objetos


q

Os componentes a serem testados so classes de objetos que so instanciadas como objetos. Diferentes de teste funcional, pois:
Objetos individuais so, muitas vezes, maiores do que funes isoladas. Abordagens de teste de caixa-branca devem ser estendidas. Testadores podem no ter acesso ao cdigo fonte do componente para anlise, no caso de reuso de objetos No existe um nvel superior bvio para integrao e teste top-down.

Slide 39

4 Nveis de teste
q

q q

Testar as operaes associadas com os objetos. Testar classes de objetos individuais. Testar agrupamentos de objetos que cooperam entre si. Testar o sistema orientado a objeto completo.

Slide 40

Testes de classes de objetos


q

A cobertura completa de testes deve incluir


Testar todas as operaes associadas com um objeto Estabelecimento e a interrogao de todos os atributos associados com o objeto Exercitar o objeto em todos os estados possveis (simular todos os eventos que provoquem mudana de estado no objeto)

Herana dificulta o projeto de testes de classe de objetos. Quando uma superclasse fornece operaes herdadas por subclasses, todas essas subclasses devem ser testadas com todas as operaes herdadas.
Slide 41

Integrao de objetos
q

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.

Slide 42

Pontos chave
q

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.
Slide 43

Pontos chave
q

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

Das könnte Ihnen auch gefallen