Vous êtes sur la page 1sur 68

Teste

de So)ware
Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modicao dos slides para ns did-cos

Mo.vao

Ocorrncia de falhas humanas no processo de desenvolvimento de software considervel Processo de testes indispensvel na garantia de qualidade de software Custos associados s falhas de software justificam um processo de testes cuidadoso e bem planejado

[if977] Engenharia de SoLware - SI - CIn - UFPE

Falha, Falta e Erro

Falha Incapacidade do software de realizar a funo requisitada (aspecto externo) Exemplo


Terminao anormal, restrio temporal violada

[if977] Engenharia de SoLware - SI - CIn - UFPE

Falha, Falta e Erro

Falta Causa de uma falha Exemplo


Cdigo incorreto ou faltando

[if977] Engenharia de SoLware - SI - CIn - UFPE

Falha, Falta e Erro

Erro Estado intermedirio (instabilidade) Provm de uma falta Pode resultar em falha, se propagado at a sada

[if977] Engenharia de SoLware - SI - CIn - UFPE

Falha, Falta e Erro


Falta Erro Falha

[if977] Engenharia de SoLware - SI - CIn - UFPE

Conceitos fundamentais
- Validao vs. Verificao

Validao avaliao durante, ou ao final do ciclo de desenvolvimento de software para determinar se satisfaz aos requisitos especificados.

Verificao avaliao para determinar se os produtos de uma dada fase do ciclo de desenvolvimento satisfaz as condies impostas no inicio daquela.
7

Conceitos Fundamentais
Debugging vs. Testing [Amman, 2008]
Debugging: The process of finding a fault given a failure . Debugging is figuring out what's causing a problem you do know about . Testing: Evaluating software by observing its execution . Testing is trying to find problems you don't know about .

Conceitos Fundamentais
- Anlise Esttica
No feita em cdgo executavel. Verica contra a especicao que dene a estrutura do artefato. Ex.: Inspees. 60% dos defeitos podem ser encontrados com anlise est-ca. No verica comportamentos dinmicos. Gilb and Graham subs.tuem testes unitrios por inspeo[Sommerville, 2005].

Conceitos fundamentais
- Anlise Dinmica
Feito em cdigo executvel. Dada um valor de entrada, checa se a sada a esperada. Can be used to show the presence of bugs, but never to show their absence .[Meyer, 2008]

10

Nveis de Teste[Amman, 2008]


Teste Unitrio

Avalia o software com relao a implementao.

Teste de Modulo
Avalia o software com respeito a detalhes do design.

Teste de Integrao
Avalia o software com respeito ao design de subsistemas.

Teste de Sistemas
Avalia o software com respeito ao design da arquitetura.

Teste de Aceitao
Avalia o software com respeito a seus requisitos.

Alpha/Betha testing
Commercial Off-The-Shelf.

11

V-Model
V-Model
As a-vidades devem ser realizadas em paralelo com as a-vidades de desenvolvimento. Mostra como as a-vidades de teste (vericao e validao) podem ser integradas dentro de cada fase do ciclo de vida..

12

Teste e ciclo de vida


Nas"dark ages , teste era considerado uma fase do desenvolvimento que era realizada aps a implementao. O Rational Unified Process (RUP) lista teste como uma disciplina que ativa em todas as fases de desenvolvimento [Kruchten 03]. A maioria dos processos de desenvolvimento incluem atividades de teste em todas as fases do ciclo de desenvolvimento.

Adapted fro

m: [http://ww

w.jot.fm/issu e

s/issue_200

7_05/colum

n1/]

13

Papis e Artefatos
Test Plan Test Case Test Suite Test Results Test Environment Congura-on Test Script
Adapted from: [http://rup.hops-fp6.org/process/workflow/test/ov_tst_art.htm]

14

Noo de conabilidade

Algumas faltas escaparo inevitavelmente Tanto dos testes Quanto da depurao Falta pode ser mais ou menos perturbadora Dependendo do que se trate e em qual freqncia ir surgir para o usurio final

[if977] Engenharia de SoLware - SI - CIn - UFPE

15

Noo de conabilidade

Assim, precisamos de uma referncia para decidir Quando liberar ou no sistema para uso Confiabilidade de software uma estimativa probabilstica Mede a freqncia com que um software ir executar sem falha
Em dado ambiente E por determinado perodo de tempo

Assim, entradas para testes devem se aproximar do ambiente do usurio final


[if977] Engenharia de SoLware - SI - CIn - UFPE 16

Dados e Casos de Teste

Dados de Teste Entradas selecionadas para testar o software Casos de Teste Dados de teste, bem como sadas esperadas de acordo com a especificao (Veredicto) Cenrios especficos de execuo

[if977] Engenharia de SoLware - SI - CIn - UFPE

17

Eccia de testes

A atividade de teste o processo de executar um programa com a inteno de descobrir um erro Um bom caso de teste aquele que apresenta uma elevada probabilidade de revelar um erro ainda no descoberto Um teste bem sucedido aquele que revela um erro ainda no descoberto
[if977] Engenharia de SoLware - SI - CIn - UFPE 18

O processo de teste
Teste de componentes
Teste de componentes individuais de programa; Geralmente de responsabilidade do desenvolvedor do componente (exceto algumas para sistemas cr-cos); Os testes so derivados da experincia do desenvolvedor.

Teste de sistema
Teste de grupos de componentes integrados para criar um sistema ou um subsistema; A resposabilidade de uma equipe independente de teste; Os testes so baseados em uma especicao de sistema.
[if977] Engenharia de SoLware - SI - CIn - UFPE 19

Fases de teste

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 20

Metas do processo de teste


Teste de validao
U-lizado para demonstrar ao desenvolvedor e ao cliente do sistema que o soLware atende aos seus requisitos. Um teste bem sucedido mostra que o sistema opera conforme pretendido. U-lizado para descobrir faltas ou defeitos no soLware nos locais em que o comportamento no est correto ou no est em conformidade com a sua especicao; Um teste bem sucedido aquele que faz o sistema executar incorretamente e, assim, expor um defeito no sistema. Os testes mostram a presena e no a ausncia de defeitos
[if977] Engenharia de SoLware - SI - CIn - UFPE 21

Teste de defeitos

O processo de testes de so)ware

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 22

Pol.cas de teste
Somente testes exaus-vos podem mostrar que um programa est livre de defeitos. Contudo, testes exaus-vos so impossveis. As pol-cas de teste denem a abordagem a ser usada na seleo de testes de sistema:
Todas as funes acessadas por meio de menus devem ser testadas; As combinaes de funes acessadas por meio dos mesmos menus devem ser testadas; Onde as entradas de usurio so fornecidas, todas as funes devem ser testadas com entradas corretas e incorretas.
[if977] Engenharia de SoLware - SI - CIn - UFPE 23

Teste de sistema
Envolve a integrao de dois ou mais componentes para criar um sistema ou subsistema. Pode envolver o teste de um incremento para ser entregue ao cliente. Duas fases:
Teste de integrao a equipe de teste tem acesso ao cdigo fonte do sistema e o sistema testado medida que os componentes so integrados. Teste de releases a equipe de teste testa o sistema completo a ser entregue como uma caixa-preta.
[if977] Engenharia de SoLware - SI - CIn - UFPE 24

Teste de integrao
Envolve a construo de um sistema a par-r de seus compontes e o teste do sistema resultante dos problemas ocorridos nas interaes entre componentes. Integrao top-down
Desenvolver o esqueleto do sistema e preench-lo com componentes.

Integrao bomom-up
Integrar componentes de infra-estrutura e, em seguida, adicionar componentes funcionais.

Para simplicar a localizao de erros, os sistemas devem ser integrados incrementalmente.


[if977] Engenharia de SoLware - SI - CIn - UFPE 25

Teste de integrao incremental

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 26

Teste de releases
o processo de teste de um release de sistema que ser distribudo aos clientes. A meta primria aumentar a conana do fornecedor de que o sistema atende aos seus requisitos. Teste de releases , geralmente, um teste caixa-preta ou funcional
baseado somente na especicao de sistema; Os testadores no tm conhecimento da implementao do sistema.
[if977] Engenharia de SoLware - SI - CIn - UFPE 27

Teste caixa-preta

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 28

Diretrizes de teste
Diretrizes so recomendaes para a equipe de teste para auxili-los a escolher os testes que revelaro defeitos no sistema
Escolher entradas que forcem o sistema a gerar todas as mensagens de erro; Projetar entradas que causem overow dos buers; Repe-r a mesma entrada ou srie de entradas vrias vezes; Forar a gerao de sadas invlidas; Forar resultados de clculo a serem muito grandes ou muito pequenos.
[if977] Engenharia de SoLware - SI - CIn - UFPE 29

Cenrio de teste

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 30

Testes de sistema

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 31

Casos de uso
Casos de uso podem ser uma base para derivar os testes de um sistema. Eles ajudam a iden-car as operaes a serem testadas e a projetar os casos de teste necessrios. A par-r de um diagrama de seqncia associado, as entradas e sadas a serem criadas para os testes podem ser iden-cadas.

[if977] Engenharia de SoLware - SI - CIn - UFPE

32

Diagrama de seqncia de coleta de dados meteorolgicos

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 33

Teste de desempenho
Parte do teste de releases pode envolver teste de propriedades emergentes de um sistema, tais como desempenho e conabilidade. Testes de desempenho envolve, geralmente, o planejamento de uma srie de testes onde a carga constantemente aumentada at que o desempenho do sistema se torne inaceitvel.
Transaes em BD Terminais
[if977] Engenharia de SoLware - SI - CIn - UFPE 34

Teste de estresse
So exerccios do sistema alm de sua carga mxima de projeto. O estresse de um sistema causa, freqentemente, o surgimento de defeitos. O estresse de sistema testa o comportamento de falha, pois os sistemas no devem falhar catastrocamente. O teste de estresse verica uma perda inaceitvel de servio ou de dados. O teste de estresse par-cularmente relevante para sistemas distribudos que podem exibir degradao severa quando uma rede se torna sobrecarregada.
[if977] Engenharia de SoLware - SI - CIn - UFPE 35

Teste de estresse
Exemplos
Pouca memria ou rea em disco, alta compe-o por recursos compar-lhados (ex: vrios acessos/ transaes no BD ou rede) Exemplo: pode-se desejar saber se um sistema de transaes bancrias suporta uma carga de mais de 100 transaes por segundo ou se um sistema operacional pode manipular mais de 200 terminais remotos

[if977] Engenharia de SoLware - SI - CIn - UFPE

36

Tipos de teste
Teste de segurana e controle de acesso
Verica se todos os mecanismos de proteo de acesso esto funcionando sa-sfatoriamente

Teste de integridade de dados


Verica a corretude dos mtodos de acesso base de dados e a garan-a das informaes armazenadas
[if977] Engenharia de SoLware - SI - CIn - UFPE 37

Tipos de teste
Teste de congurao ou portabilidade
Verica o funcionamento adequado do sistema em diferentes conguraes de hardware/ soLware O que testar
Compa-bilidade do soLware/hardware Congurao do servidor Tipos de conexes com a Internet Compa-bilidade com o browser
[if977] Engenharia de SoLware - SI - CIn - UFPE 38

Tipos de teste
Teste de instalao e desinstalao
Verica a correta instalao e desinstalao do sistema para diferentes plataformas de hardware/ soLware e opes de instalao O que testar
Compa-bilidade do hardware e soLware Funcionalidade do instalador/desinstalador sob ml-plas opes/condies de instalao GUI do programa instalador/desinstalador
[if977] Engenharia de SoLware - SI - CIn - UFPE 39

Tipos de teste
Teste de documentao
Verica se a documentao corresponde informao correta e apropriada.

Teste de ciclo de negcios

Garante que o sistema funciona adequadamente durante um ciclo de a-vidades rela-vas ao negcio `


[if977] Engenharia de SoLware - SI - CIn - UFPE 40

Teste de componentes
Teste de componente ou unitrio o processo de teste de componentes individuais isolados. um processo de teste de defeitos. Os componentes podem ser:
Funes individuais ou mtodos de um objeto; Classes de objeto com vrios atributos e mtodos; Componentes compostos com interfaces denidas usadas para acessar sua funcionalidade.
[if977] Engenharia de SoLware - SI - CIn - UFPE 41

Teste de classe de objeto


A abrangncia do teste completo de uma classe envolve
Teste de todas as operaes associadas com um objeto; Atribuir e interrogar todos os atributos de objeto; Exerccio do objeto em todos os estados possveis.

A herana torna mais diwcil o projeto de testes de classe de objeto quando as informaes a serem testadas no so localizadas.
[if977] Engenharia de SoLware - SI - CIn - UFPE 42

Interface de objeto da estao meteorolgica

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 43

Teste da estao meteorolgica


Necessidade de denir casos de teste para o relatarClima, calibrar, testar, iniciar, desa.var. Usando um modelo de estado, iden-car as seqncias de transies de estado a serem testadas e as seqncias de eventos que causam essas transies. Por exemplo:
Aguardando -> Calibrando -> Testando -> Transmi-ndo -> Aguardando
[if977] Engenharia de SoLware - SI - CIn - UFPE 44

Teste de interfaces
Os obje-vos so detectar defeitos devido a erros de interface ou suposies invlidas sobre interfaces. par-cularmente importante para o desenvolvimento orientado a objetos quando os objetos so denidos pelas suas interfaces.
[if977] Engenharia de SoLware - SI - CIn - UFPE 45

Teste de interfaces

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 46

Tipos de interfaces
Interfaces de parmetros
Os dados so passados de um procedimento para outro.

Interfaces de memria compar-lhada


Um bloco de memria compar-lhado entre procedimentos ou funes.

Interfaces de procedimentos
Um subsistema engloba um conjunto de procedimentos para serem chamados por outros subsistemas.

Interfaces de passagem de mensagem


Os subsistemas solicitam servios de outros subsistemas.

[if977] Engenharia de SoLware - SI - CIn - UFPE

47

Erros de interface
Mau uso de interface
Um componente chamador chama um outro componente e faz mau uso de sua interface, por exemplo, parmetros em ordem errada.

Mau entendimento de interface


Um componente chamador considera suposies sobre o comportamento do componente chamado que esto incorretas.

Erros de -ming
Os componentes chamado e chamador operam em velocidades diferentes, e informaes desatualizadas so acessadas.
[if977] Engenharia de SoLware - SI - CIn - UFPE 48

Diretrizes de teste de interfaces


Projetar testes de tal modo que os parmetros para um procedimento chamado estejam nos limites extremos de suas faixas. Testar sempre os parmetros de ponteiro com ponteiros nulos. Projetar testes que causem a falha do componente. Usar teste de estresse em sistemas de passagem de mensagem. Em sistemas de memria compar-lhada, variar a ordem na qual os componentes so a-vados.
[if977] Engenharia de SoLware - SI - CIn - UFPE 49

Projeto de casos de teste


Envolve o projeto de casos de teste (entradas e sadas) usados para testar o sistema. A meta do projeto de casos de teste criar um conjunto de testes que sejam ecazes em validao e teste de defeitos. Abordagens de projeto:
Teste baseado em requisitos; Teste de par-es; Teste estrutural.
[if977] Engenharia de SoLware - SI - CIn - UFPE 50

Teste baseado em requisitos


Um princpio geral de engenharia de requisitos que os requisitos devem ser testveis. O teste baseado em requisitos uma tcnica de teste de validao onde voc considera cada requisito e deriva um conjunto de testes para esse requisito.
[if977] Engenharia de SoLware - SI - CIn - UFPE 51

Requisitos do LIBSYS

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 52

Testes do LIBSYS

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 53

Teste de par.es
Dados de entrada e resultados de sada caem freqentemente em classes diferentes, onde todos os membros de uma classe so relacionados. Cada uma dessas classes uma par.o de equivalncia ou domnios onde o programa se comporta de maneira equivalente para cada membro da classe. Casos de teste devem ser escolhidos a par-r de cada par-o.
[if977] Engenharia de SoLware - SI - CIn - UFPE 54

Par.cionamento de equivalncia

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 55

Par.es de equivalncia

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 56

Teste estrutural
Algumas vezes chamado de teste caixa- branca. a derivao de casos de teste de acordo com a estrutura do programa. O conhecimento do programa usado para iden-car casos de teste adicionais. O obje-vo exercitar todas as declaraes do programa (no todas as combinaes de caminhos).
[if977] Engenharia de SoLware - SI - CIn - UFPE 57

Teste estrutural

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 58

Teste de caminho
O obje-vo do teste de caminho assegurar que o conjunto de casos de teste tal que cada caminho pelo programa executado pelo menos uma vez. O ponto de par-da do teste de caminho um uxograma de programa que mostra os ns que representam as decises do programa e arcos que representam o uxo de controle. Declaraes com condies so, portanto, ns no uxograma.
[if977] Engenharia de SoLware - SI - CIn - UFPE 59

Fluxograma da ro.na de busca

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 60

Caminhos independentes
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14 1, 2, 3, 4, 5, 14 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, Casos de teste devem ser derivados de tal modo que todos os caminhos sejam executados. Um analisador dinmico de programa pode ser usado para vericar se os caminhos foram executados.
[if977] Engenharia de SoLware - SI - CIn - UFPE 61

Complexidade ciclom.ca (McCabe)


Medida do nmero de caminhos independentes em um programa No depende do tamanho do cdigo, mas dos ramos na estrutura de controle medida por e n + 2, onde e a quan-dade de arestas do grafo de controle e n a quan-dade de ns do grafo Nmero mnimo de casos de teste igual complexidade ciclom-ca
[if977] Engenharia de SoLware - SI - CIn - UFPE 62

Complexidade ciclom.ca
CFG1 CFG2 CFG3

V(g)= 1 2 + 2 = 1

V(g)= 5 6 + 2 = 1
Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23

V(g)= 8 6 + 2 = 4
63

[if977] Engenharia de SoLware - SI - CIn - UFPE

Complexidade ciclom.ca
Baixa a moderada (abaixo de 20) indica um programa simples Alta (acima de 20) indica um programa complexo Muita alta (acima de 50) caracteriza um programa muito diwcil de testar

[if977] Engenharia de SoLware - SI - CIn - UFPE

64

Complexidade ciclom.ca
Sinal de estrutura de controle de uxo complicada No captura outros aspectos da diculdade lgica que podem levar a diculdades no teste Poucas evidncias de que uma ferramenta de previso de esforo de teste mais convel do que linhas de cdigo

[if977] Engenharia de SoLware - SI - CIn - UFPE

65

Automao de teste
Teste uma fase dispendiosa do processo. Os workbenches de teste fornecem uma variedade de ferramentas para reduzir o tempo necessrio e os custos totais de teste. Sistemas tais como o JUnit apiam a execuo autom-ca de testes. A maioria dos workbenches de teste so sistemas abertos porque as necessidades de teste so especcas da organizao. Eles so, algumas vezes, diwceis de integrar com workbenches de projeto e anlise fechados.
[if977] Engenharia de SoLware - SI - CIn - UFPE 66

Um workbench de testes

Ian Sommerville, Engenharia de SoLware, 8. edio. Captulo 23 [if977] Engenharia de SoLware - SI - CIn - UFPE 67

Leituras recomendadas
SOMMERVILLE, I. Engenharia de SoLware. 9. Ed. So Paulo: Pearson Educa-on, 2011
Captulo 23

[if977] Engenharia de SoLware - SI - CIn - UFPE

68

Vous aimerez peut-être aussi