Tipos de Testes de Software-V3

15
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Teste de Software Teste de defeitos Testar os programas para estabelecer a presença de ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 2 defeitos no sistema Objetivos Entender as técnicas de teste que são engrenadas para descobrir falhas de programa Introduzir guias para teste de interface Entender abordagens específicas para testes ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 3 Entender abordagens específicas para testes orientados a objetos Entender os princípios do suporte da ferramenta CASE para teste Tópicos Testes de componentes e de integração Testes de defeitos Testes orientados a objetos Área de trabalho de teste ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 4 Área de trabalho de teste

description

Tipos de Testes de Software-V3

Transcript of Tipos de Testes de Software-V3

  • Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1

    Teste de Software

    Teste de defeitos

    Testar os programas para estabelecer a presena de

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 2

    estabelecer a presena de defeitos no sistema

    Objetivos

    Entender as tcnicas de teste que so engrenadas para descobrir falhas de programa

    Introduzir guias para teste de interface Entender abordagens especficas para testes

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 3

    Entender abordagens especficas para testes orientados a objetos

    Entender os princpios do suporte da ferramenta CASE para teste

    Tpicos

    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

    rea de trabalho de teste

  • O processo de teste

    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.

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 5

    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.

    Fases do teste

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 6

    Teste para deteco de defeitos

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 7

    presena de um defeito (faz com que o programa se comporte de maneira anmala)

    Testes mostram a presena e no a ausncia de defeitos.

    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

    Prioridades do teste

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 8

    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

  • Dados de teste - entradas criadas para testar o sistema.

    Casos de teste - Entradas para testar o sistema e as sadas esperadas para essas entradas,

    Dados de teste e Casos de teste

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 9

    e as sadas esperadas para essas entradas, quando o sistema opera de acordo com suas especificaes.

    Processo de teste para a detecode defeitos

    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.

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 11

    baseados na especificao do sistema. O planejamento dos testes podem comear nos

    primeiros estgios do processo de software.

    Teste de caixa preta

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 12

  • 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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 13

    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.

    Particionamento de equivalncia

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 14

    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

    Particionamento de equivalncia

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 15

    entre 10.000 e 99. 999 e nmeros > 99. 999

    Escolher casos de teste nos limites das parties: 00000, 09999, 10000, 99999, 10001

    Particionamento de equivalncia

    Between 4 and 10Less than 4 More than 10

    34 7

    1110

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 16

    Between 10000 and 99999Less than 10000 More than 99999

    999910000 50000

    10000099999

    Input values

    Number of input values

  • Especificao de uma rotina debusca

    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

  • Algumas vezes chamado testes de caixa branca.

    Derivao de casos de teste de acordo com a estrutura do programa. O conhecimento do

    Teste estrutural

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 21

    estrutura do programa. O conhecimento do programa usado para identificar casos de testes adicionais.

    O objetivo exercitar todos os enunciados do programa.

    Teste caixa branca.

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 22

    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

    Busca binria - parties equivalentes

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 24

    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

  • Busca binria - parties equivalentes

    Equivalence class boundaries

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 25

    Mid-point

    Elements < Mid Elements > Mid

    Busca binria casos de teste

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 26

    Teste de caminho

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 27

    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

    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

    Grficos de Fluxo do Programa

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 28

    condio do loop Usado como base para computar a

    complexidade ciclomtica Complexidade ciclomtica = Nmero de ramos

    Nmero de ns +2

  • 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 programaEste tipo de caso de teste deve ser usado com cuidado.

    Complexidade ciclomtica

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 29

    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

    1

    2

    3

    while bottom top

    Grfico de fluxo para busca binria

    4

    65

    7

    (if (elemArray [mid]< key8

    9

    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

    Caminhos independentes

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 31

    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

    Testes de integrao

    Testes feitos em sistemas completos ou subsistemas, compostos de componentes integrados.

    Testes de integrao devem ser desenvolvidos

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 32

    Testes de integrao devem ser desenvolvidos a partir da especificao do sistema.

    A maior dificuldade a localizao de erros. Integrao incremental reduz esse problema.

  • Testes de integrao incremental

    T2

    T1A

    BT2

    T1A

    T1

    A

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 33

    T3

    T4

    T5

    C

    D

    T3

    T4

    B

    C

    T2

    T3

    B

    Test sequence1

    Test sequence2

    Test sequence3

    Abordagens para o teste de integrao

    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.

    Teste de integrao bottom-up

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 34

    Teste de integrao bottom-up 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.

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

    Teste de integrao top-down

    Level 2Level 2Level 2Level 2

    Level 1 Level 1Testing

    sequence . . .

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 35

    Level 2stubs

    Level 3stubs

    Teste de integrao bottom-up

    Level NLevel NLevel NLevel NLevel NTesting

    sequence

    Testdrivers

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 36

    Level N1 Level N1Level N1

    Testdrivers

  • Abordagens de teste

    Validao da arquitetura Os testes top-down oferecem maior probabilidade de descobrir erros

    na arquitetura de sistema

    Demonstrao do sistema Os testes de integrao top-down permitem a demonstrao de um

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 37

    Os testes de integrao top-down permitem a demonstrao de um sistema de trabalho limitado em uma fase inicial do desenvolvimento.

    Implementao de teste 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.

    Ocorrem quando mdulos ou subsistemas so integrados para criar sistemas maiores.

    Objetivo detectar erros devido a erros ou suposies invlidas sobre interfaces.

    Testes de interface

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 38

    suposies invlidas sobre interfaces. Particularmente importante para o

    desenvolvimento orientado a objeto, uma vez que os objetos so definidos por suas interfaces

    Teste de interfaceTestcases

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 39

    BA

    C

    Tipos de interfaces

    Interfaces de parmetros Os dados transmitidos de um processo para outro

    Interfaces de memria compartilhada Bloqueio de memria compartilhado entre os processos

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 40

    Interfaces de procedimento 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

  • Erros 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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 41

    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

    Guia de teste de Interface

    Projeta testes de forma que os parmetros de um procedimento chamado esto nos extremos de suas faixas

    Sempre testar parmetros indicadores com indicadores nulos

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 42

    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

    Teste de estresse

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 43

    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

    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

    Teste orientado ao objeto

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 44

    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.

  • 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

    Testar o sistema orientado a objeto completo.

    Testes de classes de objetos

    A cobertura completa de testes de uma classe envolve Testar todas as operaes associadas com um objeto Estabelecimento e a interrogao de todos os atributos do

    objeto

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 46

    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

    Interface de objeto de uma estao meteorolgica

    Cases de teste so necessrios para todas as operaes

    Use um modelo de estado para identificar transies de estado para teste

    identifier

    reportWeather ()calibrate (instruments)test ()

    WeatherStation

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 47

    para teste Exemplos de seqncias de

    teste Fechar Esperar Fechar

    Esperar Calibrar Testar Transmitir Esperar

    Esperar Coletar Esperar Resumir Transmitir Esperar

    test ()startup (instruments)shutdown (instruments)

    Integrao de objetos

    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.

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 48

    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.

  • 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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 49

    Teste de seqncia Testa a resposta do sistema a eventos como processar

    seqncias atravs do sistema

    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

    Teste baseado em cenrio

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 50

    Considerar esse cenrio no sistema da estao meteorolgica onde um relatrio gerado

    Coletar dados sobre o tempo:CommsController

    request (report)

    acknowledge ()report ()

    :WeatherStation :WeatherData

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 51

    summarise ()

    reply (report)

    acknowledge ()

    send (report)

    Teste da estao meteorolgica

    Seqncia de mtodos executados CommsController:requerer WeatherStation:reportar

    WeatherData:resumir

    Entradas e sadas Entrada de pedidos de relatrio com reconhecimento

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 52

    Entrada de pedidos de relatrio com reconhecimentoassociado e uma sada final de um relatrio

    Pode ser testado criando dados brutos, certificando-se queso resumidos apropriadamente

    Usar os mesmos dados brutos para testar o objetoWeatherData

  • 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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 53

    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

    Uma rea de trabalho de teste

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 54

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 55

    Sadas de testes podem precisar ser preparadas manualmente para comparao

    Comparadores de arquivos de propsito especial podem ser desenvolvidos

    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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 56

    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.

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

    Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 57

    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.