Top Banner

of 181

Pos Testes Software 2010

Apr 10, 2018

Download

Documents

Gui_Motta
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/8/2019 Pos Testes Software 2010

    1/181

    Ps-graduao em Anlise e Gerncia de Sistemas.

    Testes de Software

    Por: Guilherme Motta MSC / PMP / CTFL

    [email protected]

  • 8/8/2019 Pos Testes Software 2010

    2/181

    Guilherme Motta 2

    Boas Vindas

    Qual o seu nome?

    Qual a sua atividade profissional?

    J trabalhou com Testes de Software?

  • 8/8/2019 Pos Testes Software 2010

    3/181

    Guilherme Motta

    Aula Data Programao

    1 27/02/2010

    (manh)

    1 - Fundamentos de Teste de Software:

    2 - Verificao e Validao;

    3 - Teste de Software e o Ciclo de Vida do Software;

    2 06/03/2010

    (manh)

    4 - Tcnicas para Testes Estticos;

    5 - Fundamentos do Processo de Testes de Software;

    6 - Tcnicas de Modelagem de Testes de Software;3 06/03/2010

    (tarde)

    7 - Gerenciamento de Testes de Software;

    8 - Ferramentas de Suporte aos Testes de Software;

    9 - Desenvolvimento Baseado em Testes (TDD Test Driven Development);

    4 13/03/2010

    (manh)

    10 - Central de Testes;

    11 - Modelos de Maturidade em Testes de Software;12 Prova Final.

    Programao do Curso

  • 8/8/2019 Pos Testes Software 2010

    4/181

    Guilherme Motta 4

    1 Fundamentos de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    5/181

    Guilherme Motta 5

    Qual o objetivo dos testes?

    Executar o produto de software com o intuito de detectar a presenade falhas.

    [Myers]

    Mostrar a presena de falhas em um software, mas nunca a sua

    ausncia.

    [Dijkstra]

    Executar um sistema ou componente sob condies especificas para

    detectar diferenas entre os resultados obtidos e os esperados.

    [IEEE]

  • 8/8/2019 Pos Testes Software 2010

    6/181

    Guilherme Motta 6

    Quando comeam os testes?

    As atividades de testes devem ser integradas s atividades dedesenvolvimento.

    As atividades de teste devem ser iniciadas junto as atividades de

    desenvolvimento.

    Procedimentos de teste devem ser descritos desde a fase de

    especificao.

  • 8/8/2019 Pos Testes Software 2010

    7/181Guilherme Motta

    Quando realizamos testes, como saber se j testamos o suficiente?

    Respostas pragmticas:

    Voc jamais ter completado a atividade de teste, a cargasimplesmente transfere-se do projetista para o cliente.

    Quando estiver sem tempo ou sem dinheiro.

    Respostas analticas:

    Com planejamento, identificando as funes de maior impactopara o cliente e executando todo o ciclo de testes para essasfunes.

    Avaliando e priorizando os riscos referentes aos Testes deSoftware.

    Quando terminam os testes?

    7

  • 8/8/2019 Pos Testes Software 2010

    8/181Guilherme Motta

    Quando terminam os testes?

    8

    Modelo Logartmico do Tempo de Execuo de Poisson.

    A intensidade de erros real pode ser traada em relao a curva prevista.

  • 8/8/2019 Pos Testes Software 2010

    9/181

    Guilherme Motta 9

    Motivao para realizao de Testes de Software

    Existe grande possibilidade de injeo de falhas humanas no processode desenvolvimento de software;

    O processo de testes faz parte da garantia de qualidade de software

    (SQA);

    Os custos associados s falhas de software justificam um processo de

    testes cuidadoso e bem planejado;

    Do ponto de vista psicolgico, o teste de software uma atividade com

    um certo vis destrutivo, ao contrrio de outras atividades do processo

    de software.

  • 8/8/2019 Pos Testes Software 2010

    10/181

    Guilherme Motta 10

    Finalidade dos Testes de Software

    Verificar se todos os requisitos do sistema foram corretamente implementados;

    Assegurar, na medida do possvel, a qualidade do software produzido;

    Reduzir custos de manuteno corretiva e retrabalho;

    Assegurar a satisfao do cliente com o produto desenvolvido;

    Produzir casos de teste que tenham elevada probabilidade de revelar um erro

    ainda no descoberto com uma quantidade mnima de tempo e esforo;

    Comparar o resultado dos testes com os resultados esperados a fim de

    produzir uma indicao da qualidade e da confiabilidade do software;

    Verificar a correta integrao entre todos os componentes do software.

  • 8/8/2019 Pos Testes Software 2010

    11/181

    Guilherme Motta 11

    Princpios [Myers79]

    Caso de teste = entrada (dados de teste) + sada esperada; Dados de teste devem ser definidos para dados vlidos, invlidos e

    inoportunos;

    Evite testar seus prprios programas, a menos que seja com auxlio

    de uma ferramenta;

    Determine se o software faz o que esperado, mas tambm se no

    faz algo indesejvel;

    Nunca planeje testes assumindo que falhas no sero encontradas.

  • 8/8/2019 Pos Testes Software 2010

    12/181

    Guilherme Motta 12

    Princpios [Myers79]

    Nunca jogue fora casos de teste, a no ser que esteja jogando osoftware fora tambm;

    A probabilidade de detectar falhas em uma parte do software

    proporcional ao n de falhas j detectadas;

    Um bom caso de teste aquele que tem alta probabilidade de

    detectar novas falhas;

    Verifique cuidadosamente os resultados de cada caso de teste;

    Testes devem ser planejados desde o incio do desenvolvimento.

  • 8/8/2019 Pos Testes Software 2010

    13/181

    Guilherme Motta

    Perspectiva de Teste

    Bons testadores necessitam de um conjunto especial de habilidades.

    Um testador deve abordar um software com a atitude de questionar

    tudo sobre ele (McGregor e Sykes, 2001).

    A perspectiva de teste , um modo de olhar qualquer produto de

    desenvolvimento e questionar a sua validade.

    Habilidades requeridas na perspectiva de teste:

    Querer prova de qualidade,

    No fazer suposies,

    No deixar passar reas importantes,

    Procurar ser reproduzvel.

    13

  • 8/8/2019 Pos Testes Software 2010

    14/181

    Guilherme Motta

    Perspectiva de Teste

    A perspectiva de teste requer que um fragmento de softwaredemonstre no apenas que ele executa de acordo com o

    especificado, mas que executa apenas o especificado

    (McGregor e Sykes, 2001).

    O software faz o que deveria fazer e somente isso?

    14

  • 8/8/2019 Pos Testes Software 2010

    15/181

    Guilherme Motta 15

    Prtica 1 Fundamentos de Teste de Software

    1 No contexto de Fundamentos de Teste de Software conceitue, ou responda, os itensabaixo relacionados:

    Testes de Software;

    Casos de Teste;

    Resultado Esperado;

    Falha e Defeito (Qual a diferena?);

    Viso Construtiva e Viso Destrutiva (Qual a diferena?);

    Dados de Teste: Vlidos; Invlidos;

    Inoportunos.

    Testes Positivos e Testes Negativos (Qual a diferena?);

    Perspectiva de Teste.

  • 8/8/2019 Pos Testes Software 2010

    16/181

    Guilherme Motta 16

    2 Verificao e Validao V&V

  • 8/8/2019 Pos Testes Software 2010

    17/181

    Guilherme Motta 17

    Verificao & Validao

    A atividade de teste de software um elemento de um tema mais amplo

    chamado Verificao e Validao (V&V).

    As atividades de Verificao e Validao (V&V) visam garantir,

    respectivamente, que:

    Verificao - o software est sendo desenvolvido corretamente,

    Validao - o software que est sendo desenvolvido o software

    correto.

  • 8/8/2019 Pos Testes Software 2010

    18/181

    Guilherme Motta

    V&V: Esttica x Dinmica

    As atividades de V&V costumam ser divididas em estticas e dinmicas:

    As estticas no requerem a execuo ou mesmo a existncia de um programa

    ou modelo executvel para serem realizadas.

    As dinmicas se baseiam na execuo de um programa ou modelo (Delamaro et

    al., 2007).

    Inspees de software (V & V esttica):

    Anlise da documentao e cdigo fonte do software;

    Pode ser auxiliado por ferramentas de depurao.

    Testes de software (V & V dinmica):

    O programa ou um prottipo devem ser executados;

    Casos de testes deve ser elaborados: dados de entrada e comportamento

    esperado.

    18

  • 8/8/2019 Pos Testes Software 2010

    19/181

    Guilherme Motta

    V&V: Esttica x Dinmica

    19

  • 8/8/2019 Pos Testes Software 2010

    20/181

    Guilherme Motta

    Plano de V&V

    20

  • 8/8/2019 Pos Testes Software 2010

    21/181

    Guilherme Motta 21

    Prtica 2 Verificao e Validao

    1 No contexto da Verificao e Validao conceitue, ou responda, os itens abaixo

    relacionados:

    Verificao;

    Validao;

    Atividade Dinmicas e Estticas;

    Quando deve ocorrer a Verificao e a Validao?

    O que deve ser Verificado e Validado?

  • 8/8/2019 Pos Testes Software 2010

    22/181

    Guilherme Motta 22

    3 Teste de Software e o Ciclo de Vida do Software

  • 8/8/2019 Pos Testes Software 2010

    23/181

    Guilherme Motta

    Modelo em V

    23

  • 8/8/2019 Pos Testes Software 2010

    24/181

    Guilherme Motta 24

    Os itens abaixo indicam as caractersticas para um bom teste para

    qualquer modelo de ciclo de vida: Para todas as atividades do desenvolvimento h uma atividade deteste correspondente.

    Cada nvel de teste tem um objetivo especfico daquele nvel. A anlise e modelagem do teste para um dado nvel de teste devem

    comear durante a atividade de desenvolvimento correspondente. Testadores devem se envolver na reviso de documentos o mais

    cedo possvel utilizando as primeiras verses disponveis ao longociclo de desenvolvimento.

    Ciclo de Desenvolvimento e Ciclo de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    25/181

    Guilherme Motta 25

    Ciclo de Desenvolvimento e Ciclo de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    26/181

    Guilherme Motta

    Classificao dos Testes de Software

    Podemos classificar os mtodos de teste de acordo com suas

    caractersticas bsicas. Existem testes : Caixa Preta e Caixa Branca; Estticos e Dinmicos; Testes Estruturais e Funcionais;

    Testes de Unidade e Integrao; Testes de Validao; Testes Alfa e Beta; Testes de Recuperao; Testes de Segurana; Testes de Regresso; Testes de Estresse e Testes de Desempenho.

    26

  • 8/8/2019 Pos Testes Software 2010

    27/181

    Guilherme Motta

    Descrio (1)

    Pode-se descrever cada um destes testes de software da seguinte

    forma:

    27

    Testes Caixa Branca (White Box) Visam avaliar o cdigo, a lgica interna do componente

    codificado, as configuraes e outros elementos tcnicos.

    Testes Caixa Preta (Black Box) Visam verificar a funcionalidade e a aderncia aos requisitos,

    em uma tica externa ou do usurio, sem se basear emqualquer conhecimento do cdigo e da lgica do componentetestado.

  • 8/8/2019 Pos Testes Software 2010

    28/181

    Guilherme Motta

    Descrio (2)

    Testes Estticos ou Testes Humanos No so feitos atravs da execuo real do programa, mas sim

    atravs da execuo conceitual do mesmo. Mtodos classificados como estticos so o de walkthrough,

    inspees epeer rating.

    So utilizados principalmente para validar as primeiras etapas doprojeto, como o de elicitao de requisitos, projeto preliminar e projeto

    detalhado, podendo ser usados para validar o cdigo tambm.

    Testes Dinmicos Requerem que o programa seja executado, e por isso seguem o

    modelo tradicional de teste de programa, no qual o programa

    executado com alguns casos de teste e os resultados da execuoso examinados para verificar se o programa operou de acordo com oesperado.

    So usados principalmente na validao do cdigo em mdulos e naintegrao geral do sistema.

    28

  • 8/8/2019 Pos Testes Software 2010

    29/181

    Guilherme Motta

    Descrio (3)

    Testes Funcionais Caractersticas do domnio do negcio so examinados, para que se tente

    descobrir formas de derivar um conjunto de dados de teste representativo queconsiga exercitar completamente a estrutura do sistema.

    Os dados de teste precisam ser derivados de uma anlise dos requisitosfuncionais e incluir elementos representativos de todas as variveis dodomnio.

    Este conjunto deve incluir tanto dados de entrada vlidos quanto invlidos.

    Testes Estruturais Diferentemente dos testes funcionais, que se preocupam com a funo que o

    programa desempenha sem se preocupar com como a funo foiimplementada, o teste estrutural enfoca a implementao e a estrutura dafuno.

    Embora geralmente usado durante a fase de codificao, testes estruturaisdevem ser usados em todas as fase do ciclo de vida do software nas quais osoftware representado formalmente. A inteno do teste estrutural encontrar dados de teste que tero cobertura suficiente de todas as estruturaspresentes na representao formal.

    29

  • 8/8/2019 Pos Testes Software 2010

    30/181

    Guilherme Motta

    Descrio (4)

    Testes de Unidade O Teste de Unidade concentra-se no esforo de verificao da menor unidade de

    projeto de software, o mdulo (Classe, Componente, Funo ...) Atravs do uso da descrio do projeto detalhado como guia, caminhos de

    controle importantes so testados para descobrir erros dentro das fronteiras domdulo. Este teste baseia-se sempre em caixa branca, e esse passo pode serrealizado em paralelo para mltiplos mdulos. Nos testes de unidade soverificados:

    1. A interface com o mdulo testada para ter a garantia de que as informaes fluem para dentro e parafora do mdulo que se encontra em teste;

    2. A estrutura de dados local examinada para ter a garantia de que os dados armazenadostemporariamente mantm sua integridade durante todos os passos de execuo de um algoritmo;

    3. As condies de limite so testadas para ter a garantia de que o mdulo opera adequadamente noslimites estabelecidos para demarcarem ou restringirem o processamento;

    4. Todos os caminhos independentes atravs da estrutura de controle so exercitados para ter a garantiade que todas as instrues de um mdulo foram executadas pelo menos uma vez;

    5. Todos os caminhos de tratamento de erros so testados.

    6. O procedimento comumente utilizado para teste de unidade envolve o desenvolvimento de umsoftware driver e/ou stub para cada unidade de teste.

    Driver um programa principal que aceita dados de caso de teste, passa tais dados para o mdulo a ser testado e imprime os dados relevantes.

    Os stubs servem para substituir mdulos que estejam subordinados ao mdulo a ser testado. Um stub ou programa simulado, usa a interface domdulo subordinado, pode fazer manipulao de dados mnima, imprime verificao de entrada e retorna.

    30

  • 8/8/2019 Pos Testes Software 2010

    31/181

    Guilherme Motta

    Descrio (5)

    Testes de Integrao O teste de integrao uma tcnica sistemtica para a construo da

    estrutura de programa, que ao mesmo tempo procura descobrir errosrelacionados interface.

    O objetivo , a partir dos mdulos testados no nvel de unidade, construira estrutura do programa que foi determinada pelo projeto.

    A integrao pode ser incremental ou no-incremental:

    A integrao no-incremental, executada atravs da abordagem do big-bang,combinando-se antecipadamente todos os mdulos no costuma ser eficaz,dada a amplitude de um teste do programa como um todo.

    J a integrao incremental mais eficiente, podendo seguir a abordagemtop-down ou a bottom-up:

    31

  • 8/8/2019 Pos Testes Software 2010

    32/181

    Guilherme Motta

    Descrio (5)

    Testes de Integrao Incremental

    32

  • 8/8/2019 Pos Testes Software 2010

    33/181

  • 8/8/2019 Pos Testes Software 2010

    34/181

    Guilherme Motta

    Descrio (6)

    Testes de Integrao Incremental Top Down

    34

  • 8/8/2019 Pos Testes Software 2010

    35/181

    Guilherme Motta

    Descrio (7)

    Testes de Integrao J a integrao incremental mais eficiente, podendo seguir a

    abordagem top-down ou a bottom-up:Bottom-up - inicia a construo e os testes com mdulos atmicos, ou seja,mdulos localizados nos nveis mais baixos da estrutura do programa.

    Uma vez que os mdulos so integrados de baixo para cima, oprocessamento exigido para os mdulos subordinados em determinado nvel

    est sempre disponvel, e a necessidade de stubs eliminada.Uma estratgia de integrao bottom-up pode ser implementada com osseguintes passos:

    1) mdulos de baixo nvel so combinados em clusters (ou construes) que executam umasubfuno de software especfico;

    2) Um driver (um programa de controle para teste) escrito para coordenar a entrada e a sadado caso de teste;

    3) O cluster testado; 4) Os drivers so removidos e os clusters so combinados ao se dirigir para cima na estrutura de

    programa.

    A principal desvantagem da integrao bottom-up que o programa noexiste como entidade at que o ltimo mdulo seja adicionado.

    35

  • 8/8/2019 Pos Testes Software 2010

    36/181

    Guilherme Motta

    Descrio (7)

    Testes de Integrao Incremental Botton-up

    36

  • 8/8/2019 Pos Testes Software 2010

    37/181

    Guilherme Motta

    Descrio (7)

    Testes de Validao O teste de validao pode ser considerado bem sucedido quando

    o software funciona da maneira esperada pelo cliente. Ou seja verifica-se se o produto certo foi construdo, seguindo a

    especificao de requisitos do software.

    A validao do software, na fase de testes, realizada por meio

    de uma srie de testes de caixa preta que demonstram aconformidade com os requisitos.

    Testes de validao podem e devem ser feitos na etapa deprojeto, podendo ser usada uma tcnica formal e esttica para asfases iniciais.

    Um plano de teste esboa as classes de teste a serem realizadase um procedimento de teste define os casos de teste especficosque sero usados para demonstrar a conformidade com osrequisitos.

    37

  • 8/8/2019 Pos Testes Software 2010

    38/181

    Guilherme Motta

    Descrio (8)

    Testes Alfa e Beta So os testes de aceitao, feitos pelo usurio, que dificilmente opera o

    sistema da forma prevista, e visam descobrir erros cumulativos quepoderiam deteriorar o sistema no decorrer do tempo.

    O teste alfa executado por um cliente nas instalaes dodesenvolvedor. Esse teste usado num ambiente natural com odesenvolvedor acompanhando e registrando erros e problemas de uso,

    em ambiente controlado. J o teste beta realizado em uma ou mais instalaes do cliente pelo

    usurio final do software.

    Geralmente o desenvolvedor no est presente. Assim, o teste beta uma aplicao viva do software, num ambiente que no pode sercontrolado pelo desenvolvedor

    Os problemas so registrados pelo usurio e repassados regularmenteao desenvolvedor, que corrige o software antes de lanar o produto paravenda.

    38

  • 8/8/2019 Pos Testes Software 2010

    39/181

  • 8/8/2019 Pos Testes Software 2010

    40/181

    Guilherme Motta

    Descrio (10)

    Testes de Estresse O teste de estresse feito para confrontar o sistema com situaes

    anormais. O teste de estresse executa o sistema de forma que exigerecursos de infraestrutura em quantidade, freqncia ou volumeanormais.

    Teste de Desempenho O teste de desempenho idealizado para testar o desempenho de run-

    time do software dentro do contexto de um sistema integrado.

    O teste de desempenho ocorre dentro do contexto de um sistemaintegrado e ao longo de todos os passos do processo de teste.

    Algumas vezes os testes de desempenho so combinados com os de

    estresse e freqentemente utiliza-se instrumentao de hardware e desoftware, para medio dos recursos com ciclo de processador, porexemplo.

    40

  • 8/8/2019 Pos Testes Software 2010

    41/181

    Guilherme Motta

    Fases de Teste

    De uma forma geral, pode-se estabelecer como fases testes de

    software (Delamaro et al., 2007):

    Teste Esttico;

    Teste Funcional;

    Teste de Unidade;

    Teste de Integrao;

    Teste de Sistema;

    Teste de Homologao (Aceitao).

    41

  • 8/8/2019 Pos Testes Software 2010

    42/181

    Guilherme Motta

    Quadro Resumo

    42

    Fases Tipos de Testes Caractersticas

    Testes

    deBaixo

    Nvel

    Teste Unitrio Estrutura Interna;

    Funcionalidade;Usabilidade;

    Segurana.

    Caixa Branca e Caixa Preta;

    Testa partes do software;

    Requer conhecimento da estrutura interna;

    Executada pelo desenvolvedor.

    Teste Integrado Interfaces;

    Dependncias entre componentes.

    Caixa Branca e Caixa Preta;

    Testa integraes entre partes do software;

    Requer conhecimento da arquitetura interna do software;

    Executada pelo desenvolvedor.

    Testes

    de AltoNvel

    Teste Funcional Requisitos Funcionais;

    Usabilidade.

    Caixa Preta;

    Os testes so aplicados em partes funcionais do software; No requer conhecimento da estrutura interna do software;

    Requer ambiente prprio (ambiente de teste), semelhante ao de

    produo;

    Executada pelo Analista de Qualidade.

    Teste de Sistema Requisitos Funcionais;

    Requisitos No Funcionais:oCarga (estresse);oPerformance;oSegurana;o

    Instalao;oetc.

    Caixa Preta;

    Os testes so aplicados no software como um todo;

    No requer conhecimento da estrutura interna do software;

    Requer ambiente muito semelhante ao da produo (Ambiente de

    Homologao);

    Executada pelo Analista de Teste e Responsveis Tcnicos do

    projeto / manuteno.

    Homologao Requisitos Funcionais;

    Usabilidade;

    Requisitos No Funcionais:oCarga (estresse);oPerformance;oSegurana;oInstalao;oetc.

    Caixa Preta;

    Os testes so aplicados no software como um todo;

    No requer conhecimento da estrutura interna do software;

    Requer ambiente muito semelhante ao da produo (Ambiente de

    Homologao);

    Executada pelo Cliente e Analista de Negcio.

    Prtica 3 Teste e o Ciclo de Vida do Software

  • 8/8/2019 Pos Testes Software 2010

    43/181

    Guilherme Motta 43

    Prtica 3 Teste e o Ciclo de Vida do Software

    1 Qual o principal objetivo da representao do Modelo em V?

    2 Ciclo de Vida de Teste Alm de identificar defeitos e falhas, informe qual outro objetivopode ser atribudo ao Ciclo de Vida de Teste?

    3 Qual a diferena entre Testes Caixa Preta e Caixa Branca? Cite exemplos.

    4 Apresente um exemplo prtico, para cada um dos tipos de teste apresentados, que

    comprove a real necessidade de execuo.

    5 Cite as caractersticas principais dos Testes de Integrao Incremental.

    6 Analise a situao abaixo e responda:

  • 8/8/2019 Pos Testes Software 2010

    44/181

    Guilherme Motta 44

    4 Tcnicas para Testes Estticos

  • 8/8/2019 Pos Testes Software 2010

    45/181

    Guilherme Motta

    Tcnicas de Teste Esttico

    As tcnicas de teste esttico se diferem dos testes de software porno requerem a execuo do software que est sendo testado.

    Este tipo de verificao representa a forma de testar (revisar)artefatos gerados ao longo do ciclo de vida do software (incluindo ocdigo) antes e/ou aps a execuo dos testes de software (testesdinmicos).

    Defeitos detectados durante os testes estticos ocorrem normalmentenas etapas iniciais do processo de desenvolvimento, desta forma,requerem menor esforo de retrabalho.

    Menor esforo de retrabalho significa correes a um custo beminferior, do que quando o defeito detectado e removido durante os

    testes dinmicos.

    45

  • 8/8/2019 Pos Testes Software 2010

    46/181

    Guilherme Motta

    Tipos de Tcnicas Estticas

    Diversos tipos de testes estticos so encontrados na literatura especializadae, na prtica, comum que o mesmo documento (artefato) seja objeto de maisde um tipo de verificao esttica.

    Por exemplo, uma reviso informal pode ser conduzida antes de umareviso tcnica, ou uma inspeo pode ser executada em uma especificaode requisitos antes de um acompanhamento(walkthrough) com clientes.

    46

  • 8/8/2019 Pos Testes Software 2010

    47/181

    Guilherme Motta

    Tipo: Reviso Informal

    No existe processo formal;

    Discusso informal de um problema tcnico, o que muitas vezes efetivo;

    Pode haver reviso em pares, onde um tcnico (ou um lder tcnico)revisa a modelagem e/ou o cdigo feito por outro tcnico;

    A documentao opcional, no requer registros dos resultados dareviso; Principal propsito: uma forma de obter algum benefcio a um baixo

    custo.

    47

  • 8/8/2019 Pos Testes Software 2010

    48/181

    Guilherme Motta

    Tipo: Acompanhamento - Walkthrough

    Reunio conduzida pelo autor do artefato que est sendo revisado;

    Cenrios, grupos de discusso e exerccios prticos, podem serutilizados para facilitar o entendimento por parte dos revisores (ex:clientes);

    Opcionalmente h uma reunio preparatria com os revisores, comorientaes sobre a dinmica da reviso;

    As sesses de Walkthrough devem contar com um redator diferentedo autor, nessas sesses devero ser produzidos: relatrios dereviso, lista de defeitos encontrados, alm do registro de todainformao til produzida;

    Na prtica as sesses de Walkthrough podem variar de informal paramuito formal;

    Principal propsito: aprendizagem, obter entendimento e encontrardefeitos.

    48

  • 8/8/2019 Pos Testes Software 2010

    49/181

    Guilherme Motta

    Tipo: Revises Tcnicas (Peer Review)

    Deve ser documentado, processo de identificao de defeitos que incluitcnicos ou colegas especialistas, atuando em pares;

    Pode ser feito por um colega, de mesmo perfil tcnico, com ou sem aparticipao da gerncia;

    Idealmente so conduzidas por um moderador treinado (que no seja o autor); Dependendo do contexto, uma reunio preparatria pode ser necessria;

    As revises tcnicas devem ser executadas com apoio de checklists; Como boa prtica deve-se gerar relatrio final da reviso, incluindo a lista de

    defeitos e plano de ao para as correes. A participao do Gestor doProjeto (ou gerncia imediata) tambm visto como fator de sucesso;

    Na prtica, as revises tcnicas podem variar de informal para muito formal;

    Principais propsitos: discusso, tomada de decises, avaliar alternativas,encontrar defeitos, resolver problemas tcnicos e checar a conformidade dapadronizao das especificaes.

    49

  • 8/8/2019 Pos Testes Software 2010

    50/181

    Guilherme Motta

    Tipo: Inspees (Reviso Tcnica Formal)

    Tcnica com maior grau de formalidade do que a Reviso Tcnica,tem como objetivo principal identificar e remover defeitos;

    Conduzida por um tcnico moderador (que no seja o autor), ondetodos os participantes tem seus papis definidos;

    Recomenda-se reunies de preparao antes das inspees;

    Recomenda-se a utilizao de mtricas; Processo formal baseado em regras e utilizao de checklistcomcritrios de entrada e sada, alm da obrigatoriedade de gerarrelatrios de inspeo, lista dos defeitos encontrados e plano de aopara correo dos defeitos;

    Principal propsito: controle de qualidade, ou seja, encontrardefeitos.

    50

  • 8/8/2019 Pos Testes Software 2010

    51/181

    Guilherme Motta

    Tipo: Anlise Esttica

    O objetivo da anlise esttica encontrar defeitos no cdigo fonte do softwaree na modelagem.

    Anlise esttica feita sem a execuo do software examinado pelaferramenta; j o teste dinmico executa o software.

    Como as revises, a anlise esttica encontra defeitos ao invs de falhas. Ferramentas de anlise esttica analisam o cdigo do programa (ex: fluxo de

    controle e fluxo de dados), gerando, como sada, arquivos do tipo HTML eXML, por exemplo.

    Os benefcios da anlise esttica so: Deteco de defeitos antes da execuo do teste.

    Conhecimento antecipado sobre aspectos suspeitos no cdigo ou programa atravsde mtricas, por exemplo, na obteno de uma medida da alta complexidade.

    Identificao de defeitos dificilmente encontrados por testes dinmicos. Deteco de dependncias e inconsistncias em modelos de software, como links

    perdidos.

    Aprimoramento da manutenibilidade do cdigo e construo.

    Preveno de defeitos, se as lies forem aprendidas pelo desenvolvimento.

    51

  • 8/8/2019 Pos Testes Software 2010

    52/181

    Guilherme Motta

    Tipo: Anlise Esttica Ferramentas

    52

    Prtica 4 Tcnicas para Testes Estticos

  • 8/8/2019 Pos Testes Software 2010

    53/181

    Guilherme Motta 53

    Prtica 4 Tcnicas para Testes Estticos

    1 Quais so as tcnicas para Teste Esttico? O que diferencia cada uma delas?

    2 Qual a vantagem de utilizar checklists nos Testes Estticos?3 Para uma especificao de Casos de Uso, por exemplo, quais critrios (pelo menos 3

    critrios) voc colocaria em um checklist?

    4 Leia os artigos: Inspees_software_aplicadas_roteiros_teste_funcionais.pdf e

    Ferramentas_para_Analise_Estatica_de_Codigos_Java.pdf. Faa suasconsideraes.

    5 Comentar o diagrama abaixo:

  • 8/8/2019 Pos Testes Software 2010

    54/181

    Guilherme Motta 54

    5 Fundamentos do Processo de Testes de Software

    D fi i d P d T t

  • 8/8/2019 Pos Testes Software 2010

    55/181

    Guilherme Motta

    Definio do Processo de Testes

    O processo de teste pode ser definido como um processo separado,

    mas intimamente ligado, ao processo de desenvolvimento. Issoporque eles tm metas e medidas de sucesso diferentes.

    Por exemplo, quanto menor a taxa de defeitos (razo entre o no de

    casos de teste que falham pelo total de casos de teste), mais bem

    sucedido considerado o processo de desenvolvimento.

    Por outro lado, quanto maior a taxa de defeitos, considera-se mais

    bem sucedido o processo de teste (McGregor e Sykes, 2001).

    55

    Objetivos do Processo de Testes

  • 8/8/2019 Pos Testes Software 2010

    56/181

    Guilherme Motta 56

    Objetivos do Processo de Testes

    O objetivo da atividade de teste pode ser entendido da seguinte forma:

    No incio de cada fase verificar se esta etapa do projeto reflete exatamente osrequisitos e definies da fase imediatamente anterior, para com isso garantirque o produto encomendado e o gerado pela atividade de desenvolvimento dosoftware ser o mesmo atravs dos diferentes nveis de refinamento doprojeto;

    Verificar se no existem erros de lgica no projeto e cdigo, no fluxo de dados,no entendimento de requisitos, de codificao, tipogrficos ou de interface emtodas as fases do projeto;

    Identificar e interferir na presena do erro, iniciando-se a depurao, sendo quequanto antes for descoberta a falha, menos custoso ser para adequ-la;

    Ter em mente que, uma vez que errar humano e atividade dedesenvolvimento de software um exerccio bastante complexo, os errosexistem e devem ser descobertos, portanto o sucesso em um teste consisteem descobrir os erros e corrigi-los.

    Et d P d T t

  • 8/8/2019 Pos Testes Software 2010

    57/181

    Guilherme Motta

    Etapas do Processo de Testes

    Independentemente da fase de teste, o processo de teste

    inclui as seguintes etapas:

    Planejamento;

    Anlise de Requisitos de Teste;

    Projeto de Casos de Teste;

    Implementao de Casos de Teste;

    Execuo ;

    Anlise de Resultados e Defeitos.

    57

    Vi G l Ati id d d T t

  • 8/8/2019 Pos Testes Software 2010

    58/181

    Guilherme Motta

    Viso Geral Atividades de Teste

    58

    A t ti d P d T t

  • 8/8/2019 Pos Testes Software 2010

    59/181

    Guilherme Motta

    Automatizao do Processo de Teste

    um ponto importante para o sucesso no teste de um software.

    O processo de teste tende a ser extremamente dispendioso e muito

    importante utilizar ferramentas de apoio ao teste para buscar

    aumentar a produtividade.

    H diversos tipos de ferramentas de teste. Ainda assim, muito

    trabalho humano necessrio para criar os casos de teste

    adequados ao critrio utilizado (Delamaro et al., 2007).

    Uma anlise criteriosa deve ser feita para identificar o que deve e no

    deve ser automatizado no Processo de Testes de Software.

    59

    E t t i d T t

  • 8/8/2019 Pos Testes Software 2010

    60/181

    Guilherme Motta

    Estratgia de Testes (1)

    60

    Teste um conjunto de atividades que pode ser planejado

    antecipadamente e realizado sistematicamente.

    O planejamento e a realizao das atividades de teste definem a

    estratgia de testes de software.

    Define tcnicas de projeto de casos de teste e mtodos de testeespecficos para cada etapa do processo de engenharia de software.

    Deve acomodar testes de baixo nvel e testes de alto nvel.

    Oferecer orientao ao profissional, alm de um conjunto de marcosde referncia ao administrador.

    Deve ser mensurvel.

    Estratgia de Testes

  • 8/8/2019 Pos Testes Software 2010

    61/181

    Guilherme Motta 61

    A atividade de teste inicia-se no nvel de mdulos e prossegue

    "para fora", na direo da integrao de todo o sistema Diferentes tcnicas de teste so apropriadas a diferentes pontos de

    tempo.

    A atividade de teste deve ser realizada pela equipe dedesenvolvimento do software e por um grupo de teste

    independente. As atividades de teste e de depurao so atividades diferentes,

    mas a depurao deve ser acomodada em qualquer estratgia deteste.

    Estratgia de Testes (2)

    Estratgia de Testes

  • 8/8/2019 Pos Testes Software 2010

    62/181

    Guilherme Motta 62

    A formulao de uma estratgia de teste envolve a definio dos tipos

    de teste que devero ser realizados, assim como, a identificao das

    funcionalidades prioritrias para cada um dos tipos de teste definidos.

    Isto no quer dizer que as funcionalidades no relacionadas no

    devam ser testadas, mas apenas que elas no so prioritrias.

    Estratgia de Testes (3)

    Processo de Teste Genrico (01)

  • 8/8/2019 Pos Testes Software 2010

    63/181

    Guilherme Motta

    Processo de Teste Genrico(01)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Etapas do Processo de Teste Genrico (02)

  • 8/8/2019 Pos Testes Software 2010

    64/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(02)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Planejar os testes adequados ao Projeto (Plano de Testes);

    Identificar e mitigar os Riscos em relao aos Testes;

    Cronograma dos Testes compatvel com o cronograma doProjeto;

    Equipe de Teste (recursos).

    PlanejarTestes

    Etapas do Processo de Teste Genrico (03)

  • 8/8/2019 Pos Testes Software 2010

    65/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(03)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    ProjetarTestes

    Elaborar Roteiros de Teste (Casos de Teste);

    Definir Massa de Teste;

    Fazer a modelagem dos Testes, identificando asvarveis, aes, resultados etc.

    Etapas do Processo de Teste Genrico (04)

  • 8/8/2019 Pos Testes Software 2010

    66/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(04)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Preparar ambientes de Teste;

    Especificar a sequencia deaes para execuo dos TesteManuais;

    Especificar a sequencia de

    aes para os TestesAutomatizados;

    Construir os scripts de teste.

    Etapas do Processo de Teste Genrico (05)

  • 8/8/2019 Pos Testes Software 2010

    67/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(05)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Executar Teste Unitrio / Integrado (RefernciaRoteiro de Teste);

    Executar Teste Funcional (Referncia Roteiro deTeste);

    Executar Testes de Sistema (Referncia Roteiro

    de Teste);Executar Homologao;

    Coletar Resultados de Teste (Medies).

    Etapas do Processo de Teste Genrico (05)

  • 8/8/2019 Pos Testes Software 2010

    68/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(05)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Definir ciclo de vida dos defeitos;

    Priorizar os defeitos; Classificar os defeitos;

    Analisar defeitos;

    Gerar Relatrios de Defeitos.

    Etapas do Processo de Teste Genrico (05)

  • 8/8/2019 Pos Testes Software 2010

    69/181

    Guilherme Motta

    Etapas do Processo de Teste Genrico(05)

    PlanejarTestes

    ProjetarTestes

    ExecutarTestes

    AnalisarResultados

    Gerenciar

    Defeitos

    ImplementarTestes

    Gerar resultados dos Testes;

    Indicar a Qualidade do Produto;

    Avaliar a Produtividade do Processo; Realimentar Dados para Estimativa.

    Prtica 5 Fundamentos do Processo de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    70/181

    Guilherme Motta 70

    1 Quais so os objetivos do Processo de Testes de Software?

    2 Quais so as etapas do Processo de Testes de Software? Qual a principal caracterstica

    de cada etapa?

    3 O que significa: Os testes devem ser mensurveis

    4 - Leia o artigo: PBQP_Processo de Teste de Software Dataprev_2007.pdf. Faa suas

    consideraes.

    5 Considerando o Processo de Testes Genrico, informe qual (ou quais) artefato gerado

    em cada uma das etapas?

    Planejar

    Testes

    Projetar

    Testes

    Executar

    Testes

    Analisar

    Resultados

    GerenciarDefeitos

    Implementar

    Testes

  • 8/8/2019 Pos Testes Software 2010

    71/181

    Guilherme Motta 71

    6 Tcnicas de Modelagem de Testes de Software

    Categoria das Tcnicas de Modelagem de Testes (1)

  • 8/8/2019 Pos Testes Software 2010

    72/181

    Guilherme Motta 72

    Tcnicas de Caixa_Preta ou baseada em especificao:

    Forma de derivar e selecionar as condies e casos de testesbaseados na anlise da documentao seja funcional ou no-funcional, para um componente ou sistema sem levar emconsiderao a sua estrutura interna.

    Caractersticas comuns das tcnicas baseadas em especificao:

    Modelos, formais ou informais, so utilizados para especificaode um problema a ser resolvido, o software ou seu componente. Os casos de testes podem ser derivados sistematicamente

    destes modelos.

    Categoria das Tcnicas de Modelagem de Testes (1)

    Categoria das Tcnicas de Modelagem de Testes (2)

  • 8/8/2019 Pos Testes Software 2010

    73/181

    Guilherme Motta 73

    Tcnicas de Caixa-Branca (tambm chamadas de tcnicasestruturais ou baseadas em estrutura interna de um componente ou

    sistema): Caractersticas comuns das tcnicas baseadas em estrutura:

    Informaes sobre como o software construdo utilizada paraderivar os casos de testes. Por exemplo: cdigo e modelagem.

    A extenso da cobertura de cdigo pode ser medida pelos casosde testes. Alm disto, os casos de testes podem ser derivados

    sistematicamente para aumentar a cobertura.

    Categoria das Tcnicas de Modelagem de Testes (2)

    Categoria das Tcnicas de Modelagem de Testes (3)

  • 8/8/2019 Pos Testes Software 2010

    74/181

    Guilherme Motta 74

    Tcnicas Baseadas em Experincia

    Caractersticas comuns das tcnicas baseadas em experincia:

    Conhecimento e experincia de pessoas so utilizados paraderivar os casos de testes.

    Conhecimento de testadores, desenvolvedores, usurios, outrosinteressados (stakeholders) responsveis pelo software, seu uso

    e ambiente. Conhecimento sobre defeitos provveis e sua distribuio.

    Categoria das Tcnicas de Modelagem de Testes (3)

    Tcnicas Baseadas em Especificao (1)

  • 8/8/2019 Pos Testes Software 2010

    75/181

    Guilherme Motta 75

    Partio de Equivalncia:

    As entradas do software ou sistema so divididas em grupos que tenhamum comportamento similar, podendo ser tratados da mesma forma. Parties (ou classes) de equivalncia podem ser encontradas em dadosvlidos e invlidos (por exemplo, valores que deveriam ser rejeitados).

    Parties podem tambm ser identificadas para valores de sadas, valoresinternos e valores relacionados a tempo, (antes e aps um evento) e para

    parmetros de interface (durante teste de integrao). Testes podem ser elaborados para cobrir as parties. Partio de Equivalncia aplicvel a todos os nveis de testes. A tcnica de Partio de Equivalncia pode ser usada para atingir acobertura dos valores de entrada e sada.

    Pode ser aplicada em uma entrada manual, interface entrada de sistema oucomo parmetro de interface num teste de integrao.

    Tcnicas Baseadas em Especificao (1)

    Tcnicas Baseadas em Especificao (2)

  • 8/8/2019 Pos Testes Software 2010

    76/181

    Guilherme Motta 76

    Exemplo de Partio de Equivalncia

    Funo:

    Considere uma funo que aceita como entradas de 4 a 6 valores inteirosde 2 dgitos maiores do que 10.

    Identificao das variveis de entrada e das condies que estas devemsatisfazer:

    nro_entradas: pertence ao conjunto - [ 4, 6 ] Valor: pertence ao conjunto - [ 10, 99 ]

    Tcnicas Baseadas em Especificao (2)

    Tcnicas Baseadas em Especificao (3)

  • 8/8/2019 Pos Testes Software 2010

    77/181

    Guilherme Motta 77

    Exemplo de Partio de Equivalncia

    Tcnicas Baseadas em Especificao (3)

    Determinao das Parties (Classes) de Equivalncia

    Varivel Classes Vlidas Classes invlidasnro_entradas C1: 4

  • 8/8/2019 Pos Testes Software 2010

    78/181

    Guilherme Motta 78

    Exemplo de Partio de Equivalncia

    Tcnicas Baseadas em Especificao (4)

    Casos de teste: Selecionar casos de testes cobrindo as classes vlidas das diferentes variveis.

    nro_entradas C1 C2 C3 C4 C5 C6 CT nro_entradas valores

    4 ... 6 X 1 5 11; 12; 45; 78; 95

    < 4 2

    > 6 3

    valor

    10 ... 99 X 4

    < 10 5

    > 99

    Casos de testeClasses de EquivalnciaVariveis

    Tcnicas Baseadas em Especificao (5)

  • 8/8/2019 Pos Testes Software 2010

    79/181

    Guilherme Motta 79

    Exemplo de Partio de Equivalncia

    Tcnicas Baseadas em Especificao (5)

    Casos de teste: Para cada classe invlida escolha um caso de teste que cubra 1 e somente 1 de cada vez.

    nro_entradas C1 C2 C3 C4 C5 C6 CT nro_entradas valores

    4 ... 6 X 1 5 11; 12; 45; 78; 95

    < 4 X 2 3 11; 12; 45

    > 6 3

    valor

    10 ... 99 X 4

    < 10 5

    > 99

    Casos de testeClasses de EquivalnciaVariveis

    Tcnicas Baseadas em Especificao (6)

  • 8/8/2019 Pos Testes Software 2010

    80/181

    Guilherme Motta 80

    Exemplo de Partio de Equivalncia

    Tcnicas Baseadas em Especificao (6)

    Casos de teste: Para cada classe invlida escolha um caso de teste que cubra 1 e somente 1 de cada vez.

    nro_entradas C1 C2 C3 C4 C5 C6 CT nro_entradas valores

    4 ... 6 X 1 5 11; 12; 45; 78; 95

    < 4 X 2 3 11; 12; 45

    > 6 X 3 8 11, 12, 45, 78, 95,67, 77, 54

    valor

    10 ... 99 X 4 5 5, 11, 12, 45, 6

    < 10 X 5 5 110, 45, 78, 340, 95

    > 99 X

    Casos de testeClasses de EquivalnciaVariveis

    Tcnicas Baseadas em Especificao (7)

  • 8/8/2019 Pos Testes Software 2010

    81/181

    Guilherme Motta 81

    Anlise do Valor Limite

    O comportamento nos limites de uma partio de equivalncia onde existe

    maior probabilidade de estar incorreto. Portanto, limites so reas onde testesesto mais propensos a indicar defeitos.

    Os valores limites de uma partio so seu mximo e seu mnimo. Um valor limite para uma partio vlida um valor limite vlido. O limite de partio invlida um valor limite invlido.

    Testes podem ser projetados para cobrir tanto valores invlidos como vlidos. Quando os casos de testes so projetados, um valor em cada limite escolhido.Anlise do valor limite pode ser aplicada em todos os nveis de teste. relativamente fcil aplic-la, sua capacidade de encontrar defeitos alta eespecificaes detalhadas podem ser teis em sua elaborao.

    Esta tcnica muitas vezes considerada uma extenso da partio deequivalncia e pode ser aplicada para entradas manuais como, por exemplo, emescalas de tempo ou tabela de limites.

    Valores limites podem tambm ser usados para selecionar dados de testes.

    Tcnicas Baseadas em Especificao (7)

    Tcnicas Baseadas em Especificao (8)

  • 8/8/2019 Pos Testes Software 2010

    82/181

    Guilherme Motta 82

    Tcnicas Baseadas em Especificao (8)

    Exemplo de Anlise do Valor LimiteCritrio de seleo que identifica valores nos limites das classes de equivalncia, exemplos:

    Valor mnimo (mximo) igual ao mnimo (mximo) vlido; Uma unidade abaixo do mnimo; Uma unidade acima do mximo; Arquivo vazio Arquivo maior ou igual capacidade mxima de armazenamento; Clculo que pode levar a overflow (underflow);

    Erro no primeiro (ltimo) registro

    Mesma funo do exemplo anterior:

    Considere uma funo que aceita como entradas de 4 a 6 valores inteiros de 2 dgitosmaiores do que 10.

    Identificao das variveis de entrada e das condies que estas devem satisfazer: nro_entradas: pertence ao conjunto - [ 4, 6 ] Valor: pertence ao conjunto - [ 10, 99 ]

    Tcnicas Baseadas em Especificao (9)

  • 8/8/2019 Pos Testes Software 2010

    83/181

    Guilherme Motta 83

    Tcnicas Baseadas em Especificao (9)

    Exemplo de Anlise do Valor Limite

    nro_entradas C1 C2 C3 C4 C5 C6 CT nro_entradas valores

    4 ... 6 X 1 4 10, 11, 98, 99

    < 4 X 2 6 10, 11, 50, 55, 98, 99

    > 6 X 3 3 10, 11, 98

    valor

    10 ... 99 X 4 7 10, 11, 50, 55, 98, 99, 45

    < 10 X 5 4 9, 10, 11, 99

    > 99 X 6 4 10, 11, 100, 101

    Casos de testeClasses de EquivalnciaVariveis

    Casos de teste: Para cada classe invlida escolha um caso de teste que cubra 1 e somente 1 de cada vez.

    ValoresLimite

    Tcnicas Baseadas em Especificao (10)

  • 8/8/2019 Pos Testes Software 2010

    84/181

    Guilherme Motta 84

    Tcnicas Baseadas em Especificao (10)

    Limitaes das tcnicas baseadas em Parties de Equivalncia eAnlise de Valores-Limite:

    Consideram cada valor de entrada isoladamente;

    Se existirem combinaes de valores que constituam situaesinteressantes a serem testadas?

    Tcnicas Baseadas em Especificao (11)

  • 8/8/2019 Pos Testes Software 2010

    85/181

    Guilherme Motta 85

    Tabela de Deciso

    A tabela de deciso considerada uma boa alternativa para capturar requisitos de sistemasque contm condies lgicas e para documentar o comportamento interno do sistema.

    Elas podem ser utilizadas para registrar regras de negcio complexas a seremimplementadas.

    A especificao analisada e as condies e aes do sistema so identificadas. As condies de entrada e aes so declaradas de uma forma que possam serentendidas, como verdadeiras ou falsas (Booleano).

    A tabela de deciso contm as condies que disparam as aes, muitas vezescombinaes verdadeiras e falsas para todas as condies de entrada, e aes resultantespara cada combinao de condies.

    Cada coluna da tabela corresponde a uma regra de negcio que define uma nicacombinao de condies que resulta na execuo de aes associadas com aquela regra.

    A cobertura padro comumente usada em uma tabela de deciso ter no mnimo um testepor coluna cobrindo todas as combinaes de condies apresentadas.

    O grande ganho na utilizao da tabela de deciso que ela cria combinaes decondies que geralmente no foram exercitadas durante os testes.

    Pode ser aplicada a todas as situaes quando a execuo do software depende de muitasdecises lgicas.

    p ( )

    Tcnicas Baseadas em Especificao (12)

  • 8/8/2019 Pos Testes Software 2010

    86/181

    Guilherme Motta 86

    Tabela de Deciso

    A tabela deciso pode ser utilizada para Anlise de Causa e Efeito, quando se

    deseja testar combinaes de entrada. rvores de Deciso outra tcnica que tambm pode ser utilizada, quando sedeseja testar combinaes de entrada.

    Definies: Causas = Condies (combinaes) de entrada (valor lgico); Efeitos = Aes realizadas em resposta s diferentes condies de entrada.

    Exemplo: Causa: Preo 50 e 0 Quantidade 99;

    Efeito: fornecer 5% de desconto.

    p ( )

    Tcnicas Baseadas em Especificao (13)

  • 8/8/2019 Pos Testes Software 2010

    87/181

    Guilherme Motta 87

    rvore de Deciso

    p ( )

    Quantidade

    Preo

    Dar desconto

    Cobrar preo normal

    Emitir mensagem de erro

    Pertence a [0, 99]

    No pertence a [0, 99]

    >= 50

    < 50

    Tabela de Deciso

    Condio(Causa)

    Preo >= 50 V F #

    0

  • 8/8/2019 Pos Testes Software 2010

    88/181

    Guilherme Motta 88

    Teste de Transio de Estados

    Um sistema pode exibir respostas diferentes dependendo da sua condio atual ou deestado anterior. Neste caso, o comportamento do sistema pode ser representado como umdiagrama de transio de estados.

    Permite ao testador visualizar o software em termos de estados, transies entre estados,as entradas ou eventos que disparam as mudanas de estado (transio) e as aes quepodem resultar daquelas transies.

    Os estados do sistema, ou objetos sob teste, so isolados, identificveis e finitos.

    Uma tabela de estado exibe a relao entre estados e entradas, e pode destacar possveistransies invlidas. Os testes podem ser construdos para cobrir uma seqncia tpica de status, cobrir todos osestados, exercitar todas as transies, exercitar uma seqncia especfica de transies outestar transies invlidas.

    Teste de transio de status muito utilizada em softwares industriais embarcados eautomaes tcnicas em geral. No entanto, a tcnica tambm adequada para modelar um objeto de negcio tendo estadoespecfico ou para testar fluxos de telas de dilogos (exemplo: aplicao de internet ecenrios de negcios).

    p

    Tcnicas Baseadas em Especificao (15)

  • 8/8/2019 Pos Testes Software 2010

    89/181

    Guilherme Motta 89

    Exemplo de Teste de Transio de Estados

    Diagrama de Transio de Estados de um Livro (biblioteca)

    p

    Tcnicas Baseadas em Especificao (16)

  • 8/8/2019 Pos Testes Software 2010

    90/181

    Guilherme Motta 90

    Exemplo de Teste de Transio de Estados

    Tabela de Estados

    p

    Estados Entradas / Eventos / Aes

    Emprestar Reservar Devolver Atualizar Retornar

    E1Disponvel

    E2

    E2

    Emprestado

    E2 E4 E1; E3[ ]

    E3Reservado

    E2 E1

    E4Atrasado

    E1; E3[ ]

    [ ] A transio entre estados depende do atendimento condio.

    Tcnicas Baseadas em Especificao (17)

  • 8/8/2019 Pos Testes Software 2010

    91/181

    Guilherme Motta 91

    Exemplo de Teste de Transio de EstadosA especificao do Software de Telecomando em mquina de estados (MEF) , composta por 6 estados,46 entradas e um total de 233 transies.

    Tcnicas Baseadas em Especificao (18)

  • 8/8/2019 Pos Testes Software 2010

    92/181

    Guilherme Motta 92

    Teste de Caso de Uso

    Testes podem ser especificados a partir de casos de uso ou cenrios de negcios.

    Um caso de uso descreve interaes entre os atores (usurios e o sistema) que produz umresultado relevante para um usurio do sistema. Cada caso de uso tem pr-condies, que precisam ser garantidas para que o caso de usofuncione com sucesso.

    Cada caso de uso finalizado com uma ps-condio que representa os resultadosobservados e o estado final do sistema aps o trmino do caso de uso.

    Um caso de uso normalmente tem um cenrio mais comum (mais provvel), e algumasvezes ramificaes.

    Caso de uso descreve o fluxo de processo de um sistema baseado nas suas possibilidadesde utilizao.

    Os casos de testes derivados de casos de uso so muito teis na descoberta de defeitos nofluxo do processo durante a utilizao do sistema no mundo real.

    Casos de uso muitas vezes so tratados como cenrios, e teis para construir testes deaceite com a participao do usurio final.

    Eles podem ajudar a descobrir defeitos de integrao causados pela interao einterferncia de diferentes componentes, que testes individuais de componentes podem noter detectado.

    Tcnicas Baseadas em Especificao (19)

  • 8/8/2019 Pos Testes Software 2010

    93/181

    Guilherme Motta 93

    Exemplo Teste de Caso de Uso

    Tcnicas Baseadas em Especificao (20)

  • 8/8/2019 Pos Testes Software 2010

    94/181

    Guilherme Motta 94

    Exemplo Teste de Caso de UsoNome: Registrar contrato

    Ator: Vendedor

    Evento: Vendedor fecha novo contratoDescrio: Este caso de uso responsvel pelo cadastramento denovos contratos no sistema.

    Curso Normal:

    1 - O vendedor informa o CNPJ do cliente;

    2 - O sistema verifica que o cliente est cadastrado e apresenta seunome;

    3 - O sistema apresenta os tipos de equipamentos cadastrados;

    4 - O vendedor informa os equipamentos que faro parte do contrato(para cada equipamento, o vendedor seleciona um tipo deequipamento apresentado e informa seu nmero de srie e data defabricao);

    5 - Vendedor informa dados bsicos do contrato (o vendedor deveinformar a data de incio, data de trmino e a quantidade de cotas

    de pagamento);6 - O sistema registra o contrato (o sistema faz o registro docontrato, informando sua data de inicio e data de trmino, e gera umnmero seqencial nico independente do cliente);

    7 - O sistema registra os equipamentos do contrato (cadaequipamento registrado no contrato recebe um nmero demanuteno gerado pelo sistema);

    8- O sistema registra as cotas de pagamento docontrato (com base nas informaes fornecidas pelovendedor referentes a quantidade de cotas, data

    base de pagamento e pesquisando o valor demanuteno de cada tipo de equipamento o sistemacalcula e registra o valor das cotas de pagamento docontrato);

    Curso Alternativo Passo 2:

    Evento: O cliente no est cadastrado.

    O sistema gera um aviso de cliente no cadastrado;

    ESTENDER Cadastrar Cliente;

    O sistema apresenta o nome do cliente;

    Retornar ao passo 3.

    Tcnicas Baseadas em Especificao (21)

  • 8/8/2019 Pos Testes Software 2010

    95/181

    Guilherme Motta 95

    Exemplo Teste de Caso de Uso

    Casos de Teste 1

    Tcnicas Baseadas em Especificao (21)

  • 8/8/2019 Pos Testes Software 2010

    96/181

    Guilherme Motta 96

    Exemplo Teste de Caso de Uso

    Casos de Teste 2

    Tcnicas Baseadas em Especificao (22)

  • 8/8/2019 Pos Testes Software 2010

    97/181

    Guilherme Motta 97

    Exemplo Teste de Caso de Uso

    Casos de Teste 3

    Tcnicas Baseadas em Estrutura (1)

  • 8/8/2019 Pos Testes Software 2010

    98/181

    Guilherme Motta 98

    Nveis:

    Nvel de Componente:

    A estrutura o prprio cdigo, ex: comandos, decises e desvios. Nvel de Integrao:

    A estrutura pode ser uma rvore de chamadas (um diagrama em queum mdulo chama outros mdulos).

    Nvel de Sistema: A estrutura pode ser uma estrutura de menu, processos de negciosou estruturas das pginas Web.

    Tcnicas Baseadas em Estrutura (2)

  • 8/8/2019 Pos Testes Software 2010

    99/181

    Guilherme Motta 99

    Testes baseados em estrutura, no nvel componente, so baseados no cdigo e visamexercitar estruturas de controle (instrues) e de dados de um programa.

    Esses testes, na verdade, exercitam o caminho (Testes de Caminho) com objetivo degarantir que o conjunto de casos de teste atenda aos caminhos realizados pelo programa,verificando se os caminhos so executados pelo menos uma vez.

    Para o Teste de Caminho, elabora-se um Grafo de Fluxo de Programa, onde os ns,representam os blocos de comando do programa, e os arcos (arestas ou ramos) representamos fluxos de controle.

    Tcnicas Baseadas em Estrutura (3)

  • 8/8/2019 Pos Testes Software 2010

    100/181

    Guilherme Motta 100

    Exemplo de Grafo de Fluxo de Controle

    Tcnicas Baseadas em Estrutura (4)

  • 8/8/2019 Pos Testes Software 2010

    101/181

    Guilherme Motta 101

    Teste e Cobertura de Comandos

    No teste de componente, cobertura de comando avaliado pela porcentagem de

    comandos executveis que foram exercitados por um conjunto de casos de testes. No teste de comandos deriva-se os casos de teste para executar comandosespecficos, normalmente para se aumentar a cobertura.

    Normalmente so utilizadas ferramentas para dar o suporte aos testes de estruturado cdigo.

  • 8/8/2019 Pos Testes Software 2010

    102/181

    Tcnicas Baseadas em Estrutura (6)

  • 8/8/2019 Pos Testes Software 2010

    103/181

    Guilherme Motta 103

    Teste e Cobertura de Deciso

    Cobertura de deciso, tambm chamada de teste de ramificao, avaliada pela

    porcentagem dos resultados da deciso (por exemplo, as opes Verdadeiro ouFalso de uma expresso condicional - IF) que foram exercitados em um conjuntode casos de teste.

    No teste de deciso derivam-se os casos de testes para executar decisesespecficas, normalmente para se aumentar a cobertura.

    Teste de deciso uma forma de teste de controle de fluxo, j que ele gera umfluxo especfico atravs dos pontos de decises.

    A cobertura de deciso mais eficiente que a cobertura de comandos: 100% dacobertura de deciso garante 100% da cobertura de comandos, mas no vice-versa.

    Normalmente so utilizadas ferramentas para dar o suporte aos testes de estruturado cdigo.

    Tcnicas Baseadas em Estrutura (7)

  • 8/8/2019 Pos Testes Software 2010

    104/181

    Guilherme Motta 104

    Exemplo de Grafo de Fluxo para Testes e Cobertura de Deciso

    Tcnicas Baseadas em Estrutura (8)

  • 8/8/2019 Pos Testes Software 2010

    105/181

    Guilherme Motta 105

    Complexidade Ciclomtica (McCabe)

    O nmero de caminhos independentes no cdigo igual complexidadeciclomtica.

    Clculo da Complexidade Ciclomtica:CC = Nmero de ramos - Nmero de ns + 2 (Nmero de Componentes Ligados)

    Complexidade Ciclomtica determina o nmero de casos de teste mnimo paratestar adequadamente todos os caminhos independentes do programa.

    Frmula Mgica (McCabe) de Complexidade Ciclomtica:CC = Quantidade de Decises + 1

    OBS: Considerando a anlise de um programa que tenha apenas um ponto de entrada e um de sada.

    Tcnicas Baseadas em Estrutura (9)

  • 8/8/2019 Pos Testes Software 2010

    106/181

    Guilherme Motta 106

    Exemplo de Clculo de Complexidade Ciclomtica (McCabe)

    Clculo da Complexidade Ciclomtica:

    CC = Nmero de ramos - Nmero de ns + 2 (Nmero de Componentes Ligados)

    Clculo:

    Nmero de Ramos = 12

    Nmero de Ns = 10

    Nmero de Componentes Ligados = 1 (nico componente)

    CC = 12 10 + 2 = 4 Casos de Teste

    Tcnicas Baseadas em Experincia (Teste Exploratrio)

  • 8/8/2019 Pos Testes Software 2010

    107/181

    Guilherme Motta 107

    Possivelmente a tcnica mais amplamente aplicada a de supor (adivinhar) onde esto oserros.

    Os testes derivam da intuio e conhecimento dos testadores com sua experincia emaplicaes e tecnologia similares. Quando usado para aumentar a tcnica sistemtica, testes intuitivos podem ser teis paraidentificar testes especficos que no so facilmente identificados pelas tcnicas formais.

    Especialmente quando aplicado aps ter estabelecido o processo mais formal. No entanto,esta tcnica pode produzir amplas variedades e graus de eficincia, dependendo daexperincia do testador.

    Uma abordagem estruturada da tcnica de deduo de erros enumerar uma lista depossveis erros e construir testes com objetivo de atacar/cobrir estes erros.

    Estas listas de defeitos e falhas podem ser construdas com base na experincia, dados dedefeitos/falhas disponveis e do conhecimento comum de como o software falha.

    Teste exploratrio ocorre simultaneamente modelagem, execuo e registro de teste, e

    baseia-se nos objetivos de teste, onde realizado em um tempo predefinido. uma abordagem muito usual, em locais onde a especificao rara ou inadequada eexiste grande presso por conta de prazo, ou para aprimorar/complementar um teste maisformal.

    Tcnicas Baseadas em Experincia (Teste Exploratrio)

  • 8/8/2019 Pos Testes Software 2010

    108/181

    Guilherme Motta 108

    Exemplo Teste Exploratrio

    Prtica 6 Tcnicas de Modelagem de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    109/181

    Guilherme Motta 109

    1 Quais so as categorias das tcnicas de modelagemde testes? E qual o objetivo de fazer a modelagemde testes?

    2 Escolha uma das tcnicas baseadas em especificaoe outra baseada em estrutura. Crie um exemplopara cada uma delas, diferentes dos apresentadosem sala, que comprove a utilidade dessas tcnicas.

    3 Leia o artigo:Metodologia_Criacao_Massa_Testes_Rastreaveis.pdf. Faa suas consideraes.

    4 - Para o Caso de Uso descrito ao lado, desenvolvaCasos de Teste que verifiquem:

    A funcionalidade de Verificar a Validade da Conta Corrente item 4 do Fluxo Bsico;

    A funcionalidade de Validar senha para autorizao detransferncia item 8 Fluxo Bsico.

    A funcionalidade de Verificar Saldo de Conta item 7 doFluxo Bsico.

  • 8/8/2019 Pos Testes Software 2010

    110/181

    Guilherme Motta 110

    7 Gerenciamento de Testes de Software

    As Organizaes e o Teste de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    111/181

    Guilherme Motta 111

    A eficcia na procura por defeitos e falhas, em revises e testes, pode seraperfeioada em funo do grau de dependncia dos testadores e analistas deteste de uma organizao.

    Os graus de dependncia so: Nenhum testador independente. Os desenvolvedores testam seu prpriocdigo.

    Testadores independentes provenientes da prpria equipe dedesenvolvimento.

    Equipe de teste independente ou grupo dentro da organizao, reportando aum gerente de projeto ou diretor executivo.

    Testadores independentes da organizao do negcio, dos usurios e darea de TI.

    Especialistas em teste independente para um objetivo especfico de teste,como testes de usabilidade, segurana ou certificao (que certifica se osoftware est em conformidade com as normas e padres).

    Equipe de teste terceirizada ou independente da organizao.

    As Organizaes e o Teste de Software (2)

  • 8/8/2019 Pos Testes Software 2010

    112/181

    Guilherme Motta 112

    Para projetos longos, complexos e crticos, normalmente melhor ter vrios nveis deteste, com algum ou todos os nveis efetuados por equipes independentes de teste.

    A equipe de desenvolvimento pode participar do teste, especialmente para os testes debaixo nvel, mas sua falta de objetividade muitas vezes limita a efetividade do teste.

    Equipes independentes de teste devem ter a autoridade para requisitar e definir osprocessos de teste e suas regras, mas os testadores teriam que exercer estas funessomente sob um claro gerenciamento.

    Os benefcios da independncia da equipe de testes so: Testadores independentes conseguem enxergar outros defeitos e so imparciais.

    Um testador independente capaz de verificar concepes pessoais criadas durante aespecificao e implementao de um sistema.

    As desvantagens incluem: Isolamento da equipe de desenvolvimento (se for tratado com independncia total).

    Equipe pode se tornar um gargalo, considerando-se o ltimo ponto de controle.

    Os desenvolvedores podem perder o senso da responsabilidade pela qualidade. A atividade do teste deve ser realizada por pessoas com uma funo especfica de teste.

    Profissionais de Teste de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    113/181

    Guilherme Motta 113

    Para garantir que o Processo de Teste de Software seja adotado de forma Corporativa, necessrio que a atuao dos profissionais especializados em testes tenham focosdiferenciados, visando no somente a execuo dos projetos de testes, mas tambm na

    evoluo do processo como um todo, seja na forma de otimizao dos trabalhos(automaes e simuladores) como na criao de novos controles e artefatos.

    A diviso em grupos, com atuaes diferenciadas, proporcionaria empresa uma maioreficincia na conduo e melhoria dos projetos de testes de software, alm de estabelecerobjetivos e desafios a serem alcanados pelos profissionais, muito mais bem definidos esegregados.

    G G i t d S i d T t

    Profissionais de Teste de Software (2)

  • 8/8/2019 Pos Testes Software 2010

    114/181

    Guilherme Motta 114

    Grupo: Gerenciamento dos Servios de Testes

    Responsvel em atender as demandas de testes de software geradas pelas mudanas solicitadas pelosClientes.

    Estas demandas devem ser priorizadas para que os esforos sejam direcionados de acordo com asexpectativas das reas Clientes (internas ou externas) e as estratgias da organizao (oportunidades ouameaas).

    A limitao da equipe de testes e a produtividade do grupo estabelecem qual o nmero mximo deprojetos que a equipe poder suportar sem a necessidade de empregar a terceirizao do processo.

    Nas terceirizaes, conduz e apia os projetos de testes nas negociaes com os fornecedores, sendoresponsvel pela elaborao dos contratos, estabelecendo os nveis de servios a serem contratados, osprodutos a serem entregues durante o projeto, bem como as premissas de padres de artefatos econtroles exigidos pelo modelo de testes da organizao.

    Responde pelo acompanhamento e visibilidade dos projetos de testes para toda a organizao e seusClientes, mantendo todos informados sobre os riscos do projeto, etapas finalizadas e em realizao,indicadores de produtividade e qualidade alcanados pelo projeto. Alm de garantir que os projetos detestes empreguem o padro corporativo estabelecido.

    Seguem os principais servios sob sua responsabilidade: Gerenciamento de Projetos e Recursos de Testes de Software;

    Gerenciamento de Mtricas de Qualidade e Produtividade;

    Gerenciamento de Estimativas de Testes.

    G E d S i d T t

    Profissionais de Teste de Software (3)

  • 8/8/2019 Pos Testes Software 2010

    115/181

    Guilherme Motta 115

    Grupo: Execuo dos Servios de Testes

    Responde diretamente pela execuo dos projetos de testes, pois direcionam seus esforosexclusivamente na aplicao dos casos de testes e simulaes que avaliaro o comportamento

    esperado dos diversos sistemas modificados para suportar todos os requisitos estabelecidos pelosClientes.

    Exercita continuamente o Processo de Teste de Software, estabelecendo um nvel de Garantia deQualidade diferenciado para cada sistema, respeitando os acordos de qualidade estabelecidos peloscritrios de importncia e risco que uma falha de implementao poder provocar nas operaes.

    Profissionais com alta especializao nos processos de negcios e produtos gerenciados pela empresa,de forma a garantir que os aplicativos construdos comportam-se adequadamente com as regras de

    negcios exigidas pelos Clientes. Combinam conhecimento especfico com o de negcio, complementado pelo uso de ferramentas etcnicas de testes, proporcionando reduzir esforos em cobrir um maior volume de testes num menorespao de tempo possvel.

    Principais servios:

    Conduo da Fbrica de Testes e Homologaes de Sistemas;

    Montagem e Monitorao de Ambientes de Testes e Homologao; Gerenciamento de Reviso de Artefatos;

    Gerenciamento de Preveno de Defeitos de Software.

    G I d S i d T t

    Profissionais de Teste de Software (4)

  • 8/8/2019 Pos Testes Software 2010

    116/181

    Guilherme Motta 116

    Grupo: Inovao dos Servios de Testes

    Direciona integralmente seus esforos na contnua Evoluo do Processo de Testes de forma apossibilitar que os servios de testes tenham maior controle e desempenho, proporcionando testes em

    maior velocidade, volume e preciso nos resultados, refletindo na reduo de prazos, custos e noaumento da qualidade do processo.

    Exercita a Melhoria Contnua do Processo de Teste de Software, estabelecendo novos controles,artefatos, indicadores, possibilitando uma evoluo na forma e conduo dos projetos de testes.

    Responder pela Melhoria Contnua das Arquiteturas de Testes, mantendo a evoluo das automaese ferramentas empregadas nos servios de testes, buscando agregar novas funcionalidades e facilidadesoperacionais, reduzindo esforos e retrabalhos nos projetos de testes.

    Principais servios: Consultoria em Fbrica de Testes, Homologao e Qualidade de Software;

    Automao de Testes e Arquiteturas Automatizadas;

    Treinamento e Certificao de Profissionais e Empresas;

    Vendas e Suporte de Ferramentas de Testes e Qualidade.

    Planejamento de Teste de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    117/181

    Guilherme Motta 117

    O planejamento pode ser documentado em um plano de teste mestre ou deprojeto separado em vrios planos de testes para diferentes nveis, assim comoteste de aceite ou teste de sistemas.

    A essncia dos documentos de planejamento de teste coberta pelo Padro deDocumentao de Teste de Software (IEEE 829).

    O planejamento influenciado pela poltica de teste da organizao, o escopo,objetivo, riscos, obstculos, crticas e disponibilidade de recursos.

    Quanto maior for o projeto e o progresso do planejamento do testes, mais

    informaes estaro disponveis e mais detalhes podem ser includos no plano.

    Planejamento do teste uma atividade contnua realizada durante todo oprocesso do ciclo de vida do software.

    O retorno (feedback) da atividade do teste utilizado para identificar riscos demudanas, para que ajustes no planejamento sejam efetuados.

    Planejamento de Teste de Software (2)

  • 8/8/2019 Pos Testes Software 2010

    118/181

    Guilherme Motta 118

    As atividades no planejamento dos testes podem incluir:

    Determinao do escopo e risco, identificando os objetivos do teste.

    Definio completa da abordagem do teste (estratgia de teste), incluindo a definio donvel de testes, dos critrios de entrada e sada. Integrao e coordenao da atividade de teste no ciclo de vida do software (aquisio,fornecimento, desenvolvimento, operao e manuteno).

    Tomar a deciso sobre o que testar, quais as funes executaro as atividades de teste,quando e como as atividades podem ser realizadas, como o resultados dos testes sero

    avaliados e quando parar o teste (critrio de sada). Programar as atividades de anlise e planejamento dos testes. Programar a implementao, execuo e validade dos testes. Designar recursos para as diferentes tarefas definidas. Definir o nvel de detalhe, estrutura e modelos para a documentao dos testes.

    Escolher mtricas para monitorar, controlar a preparao e execuo do teste, resolverefeitos e apontar os riscos.

    Configurar o nvel de detalhe para os procedimentos de teste de forma a proverinformaes suficientes para que o suporte possa reproduzir o incidente.

    Planejamento de Teste de Software (3)

  • 8/8/2019 Pos Testes Software 2010

    119/181

    Guilherme Motta 119

    Critrio de Sada

    O objetivo do critrio de sada definir quando parar de testar.

    Por exemplo: ao final de um nvel de teste ou quando um conjunto de testes tem um alvoespecfico.

    Os critrios de encerramento podem ser constitudos de:

    Mtricas como a cobertura de cdigo, riscos ou funcionalidades.

    Estimativa da densidade de defeitos ou segurana nas medies. Custos. Riscos residuais, como defeitos no solucionados ou falta de cobertura de teste emalgumas reas.

    Cronograma, como os baseados na data de entrega do produto.

    Planejamento de Teste de Software (4)

  • 8/8/2019 Pos Testes Software 2010

    120/181

    Guilherme Motta 120

    Estimativa dos Testes

    Algumas abordagens:

    Estimativa do esforo do teste baseado em mtricas de projetos anteriores ousimilares, ou baseado em valores tpicos. Estimativas das tarefas pelo prprio executor ou por especialistas. Estimativa de durao de testes utilizando a tcnica TPA (Test Point Analysis).

    Uma vez que a estimativa do esforo do teste efetuada, recursos podem ser alocados eum cronograma pode ser elaborado.

    O esforo do teste pode depender de inmeros fatores que incluem: Caractersticas do produto: a qualidade da especificao ou outra informao usadapor projetos de teste, o tamanho do produto, a complexidade do problema, os requisitospara segurana e os requisitos para documentao.

    Caractersticas do processo de desenvolvimento: A estabilidade da organizao,

    ferramentas usadas, processos de teste, experincia das pessoas envolvidas e pressono prazo.

    As sadas do teste: o nmero de defeitos e a quantidade de re-trabalho necessria.

    Planejamento de Teste de Software (5)

  • 8/8/2019 Pos Testes Software 2010

    121/181

    Guilherme Motta 121

    Abordagens dos Testes

    Uma maneira de classificar a abordagem do teste ou estratgia baseando-se no ponto emque comea aparecer o volume de trabalho da modelagem de teste, a saber:

    Abordagem Peventiva, na qual os testes so construdos o mais cedo possvel. Abordagem Reativa, nas quais os testes so construdos aps o software e /ou

    sistemas estarem prontos.

    Estratgias ou abordagens tpicas incluem:

    Analtica: nas quais os testes so direcionados nas reas do software ou sistema ondeapresentem maiores riscos.

    Baseada em modelos: nas quais os testes so baseados em dados informaisestatsticos sobre taxa de erros (tais como erros operacionais e de segurana).

    Abordagem metdica: como a baseada em falhas (incluindo deduo de erros e injeode falhas), baseadas em check-list, e baseadas em caracterstica de qualidade.

    Compatvel com processos ou padres: como algumas especificadas por padres daindstria ou as vrias metodologias geis. Dinmica e heurstica: tais como os testes exploratrios onde a atividade de testar

    mais reativa do que pr-planejada e onde a execuo e avaliao so tarefasconcorrentes.

    Ab d d T

    Planejamento de Teste de Software (6)

  • 8/8/2019 Pos Testes Software 2010

    122/181

    Guilherme Motta 122

    Abordagens dos Testes

    Baseada em conselhos: como os testes em que a cobertura dirigida por conselhosde especialistas em tecnologia ou negcio fora do time de teste.

    Regresso: como aqueles em que h o reuso do material de teste, automaoextensiva dos testes funcionais de regresso, e um conjunto de testes padro.

    Diferentes abordagens para montar uma estratgia podem ser utilizadas como, por exemplo,abordagem baseada em risco.

    A escolha da estratgia do teste dever considerar o contexto, incluindo:

    Risco de falha do projeto, perigo do produto em caso de falhas do software a afetar aspessoas, ambiente e a empresa.

    Experincia das pessoas nas tcnicas propostas, ferramentas e mtodos. Os objetivos do teste, esforo e a misso da equipe de teste. Aspectos regulamentares, tais como alteraes internas e externas no processo de

    desenvolvimento. A natureza do produto e do negcio.

    O it d it d d t t iti i ibilid d b

    Monitoramento e Controle dos Teste de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    123/181

    Guilherme Motta 123

    O propsito da monitorao do progresso do teste permitir uma visibilidade sobre asatividades do teste. As informaes a serem monitoradas podem ser coletadas manualmenteou automaticamente e serem utilizadas para medir os critrios de sada, como cobertura.

    Mtricas podem ser usadas para avaliar o progresso em relao ao oramento ecronogramas planejados. As mtricas mais comuns incluem:

    Porcentagem de trabalho na preparao do caso de teste (ou porcentagem de casosde testes devidamente planejados).

    Porcentagem de trabalho na preparao do ambiente.

    Execuo dos testes (nmeros de teste executados, testes com resultados ok e nook).

    Informaes dos defeitos (densidade do defeito, defeitos encontrados e resolvidos,taxas de falha e resultado da re-execuo).

    Cobertura de requisitos, riscos ou cdigo.

    Confiana subjetiva do testador sob o produto

    Datas dos pontos de controle.

    Custo do teste, incluindo o custo comparado ao benefcio de encontrar o prximo erroou de executar o prximo teste.

    R l t i d T t

    Monitoramento e Controle dos Teste de Software (2)

  • 8/8/2019 Pos Testes Software 2010

    124/181

    Guilherme Motta 124

    Relatrio do Teste

    O relatrio do teste constitudo de informaes resumidas sobre o esforo do teste,incluindo:

    O que aconteceu durante a o perodo do teste, e qual o melhor momento de parar. Informaes e mtricas para dar suporte na tomada de deciso e recomendaes

    sobre futuras aes, tais como avaliao dos defeitos persistentes, vantagemeconmica da continuao dos testes e dos riscos considerveis apontados alm donvel de confiana no software testado.

    A essncia de um relatrio de teste tratada no Padro de Documentao de Teste deSoftware (IEEE 829).As mtricas podem ser coletadas durante ou ao final do teste:

    A adequao dos objetivos do teste com o nvel do teste. A adequao da abordagem/estratgia do teste.

    A eficincia dos testes em respeito a seus objetivos.

    C t l d T t

    Monitoramento e Controle dos Teste de Software (3)

  • 8/8/2019 Pos Testes Software 2010

    125/181

    Guilherme Motta 125

    Controle do Teste

    O controle do teste descreve uma orientao ou ao corretiva tomada como um

    resultado de informaes e mtricas obtidas e relatadas.Aes podem cobrir qualquer atividade do teste e qualquer atividade em um ciclode vida de um software.

    Exemplos de controle de teste: Tomar decises baseadas em informaes adquiridas na monitorao dos

    testes. Re-priorizar os teste quando riscos so identificados. Mudar o cronograma de acordo com disponibilidade do ambiente de teste. Definir um critrio de entrada para se iniciar o re-teste de bugs resolvidos

    pelo desenvolvedor antes de aceit-lo em uma build.

    O it d i t d fi t b l t i t id d d

    Gerenciamento de Configurao

  • 8/8/2019 Pos Testes Software 2010

    126/181

    Guilherme Motta 126

    O propsito do gerenciamento de configurao estabelecer e manter a integridade dosprodutos (componentes, dados e documentao) do software ou sistema durante todo oprojeto ou ciclo de vida do produto.

    Para o teste, o gerenciamento de configurao pode garantir que: Todos os itens do software so identificados, controladas as mudanas, seus

    relacionamentos, facilitando manuteno e a rastreabilidade durante todo o processode teste.

    Todos os documentos e itens do software so referenciados sem ambigidade nadocumentao do teste.

    Para o testador, o gerenciamento de configurao ajuda na identificao nica (e areproduo) do item testado, documentos de testes, aos testes e aos scripts de execuo detestes.

    Durante o planejamento do teste a ferramenta e processos de gerenciamento deconfigurao devem ser escolhidos, documentados e implementados.

    Ri d S ft

    Riscos em Testes de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    127/181

    Guilherme Motta 127

    Risco de Software

    Risco a possibilidade de sofrer perdas (impacto na qualidade do produto final,

    no atraso do cronograma,no aumento de custos ou mesmo na falha doprojeto). (SEI - Software Engineering Institute)

    Gerncia de Riscos

    De acordo com o SEI, Gerenciamento de Risco (Risk Management) uma prticacom processos, mtodos, e ferramentas para gerenciar riscos em um projeto.

    Ele fornece um ambiente disciplinado para a tomada de deciso a fim de:

    Avaliar continuamente o que poderia dar errado (riscos).

    Determinar quais riscos so importantes de tratar. Implementar estratgias para tratar aqueles riscos.

    Classificao

    Riscos em Testes de Software (2)

  • 8/8/2019 Pos Testes Software 2010

    128/181

    Guilherme Motta 128

    Classificao

    Riscos de Projeto:

    Engloba os eventos que comprometem ou impedem a realizao de umdado projeto. Exemplo: Problemas com oramento, cronograma, pessoal, recursos,

    cliente e requisitos.

    Riscos de Produto (ou Tcnicos):

    Afetam a qualidade ou desempenho do software que desenvolvido. Exemplo: Problemas com implementao, interface, ambigidade de

    especificao.

    Os riscos tcnicos podem ser mitigados atravs de testes de software!!!!

    Riscos de Negcios:

    Afetam a organizao que est desenvolvendo ou adquirindo o produto. Exemplo: Problemas com o mercado, com as estratgias da empresa, com

    a gerncia e com oramentos.

    Teste Baseado em Riscos

    Riscos em Testes de Software (3)

  • 8/8/2019 Pos Testes Software 2010

    129/181

    Guilherme Motta 129

    Teste Baseado em Riscos

    O teste baseado em risco (risk-based testing) consiste em um conjunto de

    atividades que favorecem a identificao de fatores de riscos associados aosrequisitos do produto de software.

    Uma vez identificados, os riscos so priorizados e casos de testes gerados combase nas estratgias para tratamento e acompanhamento dos fatores de riscosidentificados.

    Focar em testes baseados em risco significa fazer julgamento sobre: Cobertura de teste; O nmero de testes a ser conduzido; Escolhas dos tipos de testes e de revises; Uso e balanceamento entre testes, revises e inspees, dentre outros

    problemas; Priorizao dos testes (planejamento e execuo).

    Teste Baseado em Riscos

    Riscos em Testes de Software (4)

  • 8/8/2019 Pos Testes Software 2010

    130/181

    Guilherme Motta 130

    Teste Baseado em Riscos

    Etapas / Atividades

    Teste Baseado em Riscos

    Riscos em Testes de Software (5)

  • 8/8/2019 Pos Testes Software 2010

    131/181

    Guilherme Motta131

    Teste Baseado em Riscos

    Dificuldades:

    Anlise de risco algo abstrato e necessita de conhecimento/treinamentopara sua aplicao. Engenheiros de teste no possuem formao em gerenciamento de riscos. No existe processo formal com atividades, papis e artefatos definidos

    que guie os engenheiros de testes.

    No foram encontradas ferramentas especficas para a abordagem, o que,provavelmente, dificulta sua aplicao e disseminao.

    Modelo de Processo de Teste Baseado em Riscos

    Riscos em Testes de Software (6)

  • 8/8/2019 Pos Testes Software 2010

    132/181

    Guilherme Motta132

    Modelo de Processo de Teste Baseado em Riscos

    Levando em considerao que um dos objetivos do teste encontrar defeitos as

    Gerenciamento de Incidentes (1)

  • 8/8/2019 Pos Testes Software 2010

    133/181

    Guilherme Motta133

    Levando em considerao que um dos objetivos do teste encontrar defeitos, asdiscrepncias entre o resultado atual e o esperado precisam ser registradas como incidentes.

    Incidente deve ser rastrevel desde a descoberta, classificao at correo econfirmao da resoluo.Para gerenciar os incidentes, a empresa deve estabelecer processos e regras paraclassific-los.

    Incidentes podem ser descobertos durante o desenvolvimento, o teste e a utilizao dosoftware.

    Eles podem se revelar por problemas no cdigo, por funes do sistema, documentao dedesenvolvimento, documentao de teste, manual de instalao ou manual do usurio.O Relatrio de Incidentes tem os seguintes objetivos:

    Prover aos desenvolvedores e outros envolvidos um retorno sobre o problema parapermitir a identificao, isolamento e correo se necessrio.

    Prover aos lderes de teste um meio para se rastrear a qualidade do sistema sobteste e o progresso do teste.

    Prover idias para aprimorar o processo de testes.

    Os detalhes de um relatrio de incidente podem incluir:

    Gerenciamento de Incidentes (2)

  • 8/8/2019 Pos Testes Software 2010

    134/181

    Guilherme Motta134

    Os detalhes de um relatrio de incidente podem incluir:

    Data da emisso, autor, status e organizao.

    Resultados esperados e resultados atuais.Identificao ou item de configurao do software ou sistema.Processo do ciclo de vida do sistema ou software em que o incidente foi descoberto.Descrio da anomalia para permitir a resoluo.Grau de impacto para os interessados (stakeholder) e severidade do impacto no sistema.

    Urgncia / Prioridade na correo.Estado (status) do incidente (aberto, aceito, duplicado, aguardando resoluo, aguardandoreteste ou fechado).

    Comentrios gerais, tais como outras reas que podem ser afetadas por uma mudanaresultante de um incidente.

    Mudana no histrico, como a seqncia de aes tomadas pela equipe envolvida no projetocom respeito ao isolamento do incidente, reparo e confirmao da resoluo.

    Referncias, incluindo a identificao da especificao do caso de teste que revelou oproblema.

    A estrutura de um relatrio de incidente pode ser encontrada no Padro de Documentao de Teste deSoftware) IEEE 829, conhecido como relatrio de irregularidades (anomaly report).

    Prtica 7 Gerenciamento de Testes de Software

  • 8/8/2019 Pos Testes Software 2010

    135/181

    Guilherme Motta135

    1 Ler os artigos: Analise_das_Tecnicas_Estimativas_de_Esforco.pdf;

    Documentation_Testing_In_Document_We_Trust.pdf;Modelo_Processo_Teste_Software_Baseado_Riscos.pdf;

    QTest_Metodologia_Teste_Qualidade_Processo_Software.pdf. Faa seus

    comentrios.

    2 Monte um exemplo de Plano de Teste.

    3 Faa avaliao de risco do estudo de caso Marketing.

    4 Analise a planilha de estimativa TPA. Faa seus comentrios.

    5 Analise o Relatrio de Cobertura de Testes. Faa seus comentrios.

  • 8/8/2019 Pos Testes Software 2010

    136/181

    Guilherme Motta136

    8 Ferramentas de Suporte aos Testes de Software

    Classificao das Ferramentas de Suporte aos Testes

    Ferramentas de Suporte aos Testes de Software (1)

  • 8/8/2019 Pos Testes Software 2010

    137/181

    Guilherme Motta137

    Classificao das Ferramentas de Suporte aos Testes

    Ferramentas para Gerenciamento de Testes:

    As ferramentas de gerncia aplicam-se a todas as atividades do teste sobre o ciclo devida do software;As caractersticas das ferramentas de Gerenciamento de Testes so:

    Dar suporte ao gerenciamento de testes e a suas atividades. Fazer a interface entre as ferramentas de execuo, ferramentas de gerenciamento de

    defeitos e ferramentas de gerenciamento de requisitos.

    Controle de verso independente ou uma interface com o gerenciador de configurao. Dar suporte a rastreabilidade do teste, resultados, e incidentes aos documentos de

    origem, como especificao de requisitos.

    Registrar os resultados e gerar o relatrio de progresso do teste. Anlise quantitativa (mtricas), relacionadas aos testes (ex: testes executados e testes

    que passaram) e aos objetos de teste (ex: incidentes levantados), visando fornecerinformaes sobre o objeto de teste e para controlar e melhorar o