Académique Documents
Professionnel Documents
Culture Documents
http://ese.cos.ufrj.br
Roteiro
Mdulo I: Conceitos e Definies de Teste de Software Mdulo II:Tcnicas de Teste de Software Mdulo III: Estratgias para Projeto e Execuo dos Testes Mdulo IV: Planejamento e Controle de Testes de Software
http://ese.cos.ufrj.br
Mdulo I
Conceitos e Definies de Teste de Software
http://ese.cos.ufrj.br
Mdulo I: Roteiro
Conceitos Bsicos de Teste de Software em Geral Elementos do Teste de Software Mitos associados s Atividades de Teste de Software Nveis de Teste Desenvolvimento x Teste de Software Testes de Software em Normas e Modelos de Maturidade de Processo
http://ese.cos.ufrj.br
Definies
Garantia de Qualidade de Software
Verificao:
Assegurar consistncia, completude e corretude do produto em cada fase e entre fases consecutivas do ciclo de vida do software.
Estamos construindo corretamente o produto?.
Validao:
Assegurar que o produto requisitos do software. final corresponde aos
Teste:
Examina o comportamento do produto atravs de sua execuo.
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Definies
Falta (Fault):
inserida no software quando um desenvolvedor comete algum equvoco. Um equvoco pode causar vrias faltas ao mesmo tempo que vrios enganos pode causar uma falta idntica.
Falha (Failure):
Representa um comportamento incorreto apresentado por um software em conseqncia de uma falta.
Erro (Error):
Representa o quanto um resultado incorreto.
Defeito (Defect):
Termo genrico para falta, falha ou erro..
IEEE 610.12, 1990. A Glossary of Software Engineering Terminology in Schach, S.R. (2008). Introduction to Object-Oriented Software Engineering. McGraw-Hill
http://ese.cos.ufrj.br
Teste e Depurao
Teste:
Processo de executar um software ou sistema com o objetivo de revelar a presena de falhas; ou, falhando nesse objetivo, aumentar a confiana sobre o software
Depurao:
uma conseqncia no previsvel do teste. Aps revelada a presena do erro, o defeito deve ser encontrado e corrigido
Depurao no teste!
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
Incidentes de Teste:
Qualquer evento ou comportamento diferenciado que ocorra durante a execuo dos testes que requer futura investigao
No h garantia que todo incidente seja uma falha, pois ainda precisa ser analisado
http://ese.cos.ufrj.br
Soluo:
Introduzir atividades de VV&T ao longo de todo o ciclo de desenvolvimento
http://ese.cos.ufrj.br
Fatos:
Testar muito mais do que apenas ver o que vai acontecer E muito mais que apenas executar casos de teste! Documentos de requisitos podem e devem ser testados em relao aos objetivos do negcio ou projeto para assegurar completude e correo
http://ese.cos.ufrj.br
Fatos:
Ter os testadores envolvidos durante a anlise de requisitos uma das melhores formas de se assegurar requisitos de boa qualidade Trocas tardias nos requisitos causam impacto nos testes Ter os usurios envolvidos nos requisitos e nos testes fundamental!
http://ese.cos.ufrj.br
Fatos:
Voc no testa requisitos, mas testa a partir deles! fcil escrever requisitos pouco vagos ou ambguos, que parecem estar ok. Quando bons testadores observam a especificao de requisitos, eles aconselham casos de teste especficos para acertar os requisitos vagos, ambguos ou no muito explcitos. Boa engenharia de requisitos produz melhores testes; boa anlise de testes melhora os requisitos!
http://ese.cos.ufrj.br
Fatos:
Nem todos os requisitos so criados de acordo com a mesma perspectiva do testador. Para alguns dos requisitos fica fcil definir o teste, para outros um verdadeiro pesadelo! Especificar requisitos no funcionais testveis tais como usabilidade ou desempenho difcil Frases como fcil de usar, interface amigvel, muito confivel ou desempenho aceitvel no representam especificao de requisitos!
http://ese.cos.ufrj.br
Fatos:
Uma modificao aparentemente pequena nos requisitos pode trazer grande impacto para os testes Voc deve testar todas as modificaes para confirmar que o sistema est executando corretamente. possvel que testes de regresso sejam necessrios O esforo do teste face a modificao vai depender dos riscos associados modificao e dos impactos conhecidos (e desconhecidos!) no sistema
http://ese.cos.ufrj.br
Fatos:
O sistema deve apoiar o negcio a atingir um objetivo, ento o que o sistema realmente faz deve ser comparado com este objetivo Uma especificao de requisitos representa o orculo para o teste! Sim, testadores precisam dos requisitos, caso contrrio, voc poderia argumentar que o que vem sendo executado no realmente um teste!
http://ese.cos.ufrj.br
Fatos:
Este tambm um mal entendido comum Algumas vezes modificaes so realizadas nos sistemas onde requisitos so inadequados ou no existentes. Isto faz o teste ser mais difcil, mas no possvel dizer que no pode ser feito
Aplicar teste exploratrio pode ser uma sada
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
ltimo recurso para avaliao do produto antes de sua entrega ao usurio final Atividade essencial para ascenso ao nvel 3 do CMMI e Nvel D do MPS Atividade relevante para avaliao de produtos de software (ISO 9126, ISO 14598-5)
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
Para aumentar sua eficcia, deve ser executado por equipes independentes (quem no desenvolveu o software) Para evitar vis na execuo, os testadores devem ser diferentes daqueles que planejaram os testes
http://ese.cos.ufrj.br
Teste de Software
O que identifica um bom teste ?
Possui alta probabilidade de revelar falhas No redundante abrangente o suficiente Possui um nvel adequado de complexidade
http://ese.cos.ufrj.br
Testabilidade de Software
Simplesmente tenta mostrar a facilidade com que um software pode ser testado Operao
quanto melhor funciona, mais eficientemente pode ser testado
Observao
o que voc v o que voc testa
Controle
quanto melhor podemos controlar o software, mais podemos automatizar e melhorar o teste
http://ese.cos.ufrj.br
Testabilidade de Software
Decomposio
Controlando o escopo do teste, podemos mais rapidamente isolar os problemas e executar re-teste adequado
Simplicidade
Quanto menos existe para se testar, mais rapidamente podemos testar o software
Estabilidade
Quanto menos modificaes, menos problemas para testar
Compreenso
quanto mais informao tivermos, mais adequado ser o teste
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
OU
Teste de baixa Qualidade?
http://ese.cos.ufrj.br
Teste de Software
Defeitos e erros "emboscados" no software e no revelados
CUSTOS ALTSSIMOS!
http://ese.cos.ufrj.br
Teste de Software
Custos resultantes de testes insuficientes:
http://ese.cos.ufrj.br
Teste de Software
Se falhas graves se manifestam torna-se necessria a modificao do projeto, se erros so encontrados com regularidade colocam Qualidade e confiabilidade sob suspeita revelando a necessidade de NOVOS TESTES!
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Teste de Software
Defeitos de fcil correo indicam que as funes aparentemente funcionam bem.
Qualidade e confiabilidade aceitveis, ou testes inadequados para revelar a ocorrncia de falhas graves?
http://ese.cos.ufrj.br
Teste de Software
Estratgias para Teste
Unidade Integrao Sistema Re-Teste
Regresso Fumaa
Requisitos Alta ordem
Projeto
Integra Integrao
Aceitao Instalao
cdigo Unidade
http://ese.cos.ufrj.br
Teste de Software
Unidade Integrao Funcional
No-Funcional
http://ese.cos.ufrj.br
Casos de Teste
Stub
Stub
Resultados
http://ese.cos.ufrj.br
Teste de Unidade
a fase do processo de teste em que se testam as menores unidades de software desenvolvidas
O universo alvo desse tipo de teste so os mtodos dos objetos ou mesmo pequenos trechos de cdigo
Objetivo:
encontrar falhas de funcionamento dentro de uma pequena parte do sistema funcionando independentemente do todo
Existem situaes em que voc no ter os recursos para realizar o teste completo das unidades.
Selecione os mdulos crticos e aqueles complexidade e apenas teste estes mdulos Utilize inspees de cdigo com alta
http://ese.cos.ufrj.br
Teste de Integrao
"Se todos os mdulos funcionam individualmente (analisado atravs do teste de unidade), por que se tem dvida de que eles funcionaro quando colocados juntos? O problema exatamente "coloc-los juntos" tendo uma interface. Teste de Integrao
Fase destinada construo da estrutura do programa, realizandose, ao mesmo tempo, testes para descobrir erros associados a interface A partir dos mdulos testados no nvel de unidade, construir a estrutura de programa que foi determinada pelo projeto Alm disso, encontrar falhas provenientes da integrao interna dos componentes de um sistema Tipos de falhas: envio e recebimento de dados
Ex: Por exemplo, um objeto A pode estar aguardando o retorno de um valor X ao executar um mtodo do objeto B, porm este objeto B pode retornar um valor Y, desta forma gerando uma falha
http://ese.cos.ufrj.br
Teste de Integrao
Aplicar a abordagem big bang para integrao uma estratgia ingnua que est fadada ao fracasso.
Teste de integrao deve ser conduzido de forma incremental e organizada!
Top-Down
Quando voc desenvolve um cronograma detalhado para o projeto voc tem que considerar a maneira na qual a integrao de componentes ocorrer de forma que os componentes estejam disponveis quando necessrios
Bottom-up
Integrao bottom-up elimina a necessidade de stubs complexos
http://ese.cos.ufrj.br
Teste de Sistema
Objetivo:
executar o sistema sob ponto de vista de seu usurio final, varrendo as funcionalidades em busca de falhas
Testes executados em condies similares (de ambiente, interfaces sistmicas e massa de dados) quelas que um usurio utilizar no seu dia-a-dia Um sistema divide-se em caractersticas Funcionais e NoFuncionais:
Funcional:
Ignora a estrutura do sistema Foco na funcionalidade
No-Funcional
Considera as caractersticas de qualidade do sistema: Portabilidade, Recuperabilidade, Segurana, Eficincia, ... Usabilidade,
http://ese.cos.ufrj.br
Teste de Sistema
Tipos especficos de Teste de Sistema:
Recuperao
fora o software a falhar numa variedade de situaes e verifica a capacidade de recuperao do produto
Segurana
verifica se os mecanismos de proteo construdos para o sistema iro de fato proteg-lo de alguma utilizao ou intruso imprpria.
Stress
executa o sistema de forma a exigir recursos em quantidade, freqncia ou volume anormais
Desempenho
avalia o desempenho do software quando integrado ao sistema. Normalmente est associado ao teste de stress
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Teste de Aceitao
Assim como os outros tipos de teste, validao tenta descobrir erros, mas o foco est nos requisitos - nas caractersticas que estaro imediatamente aparentes para o usurio final Os testes so realizados, geralmente, por um grupo restrito de usurios finais do sistema Teste formal conduzido para determinar se um sistema satisfaz ou no seus critrios de aceitao e para permitir ao cliente determinar se aceita ou no o sistema.
Critrios para Teste de Aceitao
1. 2. A funcionalidade (caso de uso) ou caractersticas de desempenho esto de acordo com o especificado e so aceitas Uma variao da especificao descoberta e uma lista de discrepncias (deficincias) criada
http://ese.cos.ufrj.br
Teste de Aceitao
Reviso da Configurao Assegura que todos os elementos da configurao de software foram propriamente desenvolvidos, esto catalogados e possuem o nvel de detalhe suficiente para serem utilizados durante o ciclo de vida do software
Algumas vezes identificada como auditoria.
Teste Alfa e Beta Alfa: executado na instalao do desenvolvedor pelo cliente Beta: executado na instalao de um ou mais clientes pelo usurio final do software
http://ese.cos.ufrj.br
Teste de Instalao
Consiste em instalar o sistema nos locais em que esto os usurios Dispensado no caso do teste de aceitao ter sido executado no ambiente do usurio Focam: A integridade do sistema instalado; e A verificao quanto a se alguma caracterstica funcional ou no funcional foi afetada pelas condies do local de operao
http://ese.cos.ufrj.br
Desenvolvimento x Testes
Requisitos do Sistema
Teste de Aceitao
Requisitos do Software
Teste de Sistema
Modelo de Projeto
Teste de Integrao
Cdigo
http://ese.cos.ufrj.br
CMMI e MPS
Modelos para estabelecimento de padro de qualidade para processos de software
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Teste de Software
Recomendaes:
Convide os testadores a participar das revises dos requisitos e inspees Comece o planejamento do teste em paralelo com a anlise de requisitos Inclua sugestes de condies de teste e casos de teste para utilizar como exemplos na especificao de requisitos Inclua no documento de requisitos qualquer caso especfico que vier a mente quando estiver analisando os requisitos Utilize cenrios de negcios e casos de uso para dar exemplos especficos de como o sistema deveria funcionar Identifique critrios mensurveis para ambos os tipos de requisitos (funcionais e no funcionais) ...
http://ese.cos.ufrj.br
Mdulo II
Tcnicas de Teste de Software
http://ese.cos.ufrj.br
Exerccios de Fixao
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Existem algumas situaes nas quais voc no ter todos os recursos para realizar um teste completo das unidades
Selecione os componentes mais crticos e aqueles com alta complexidade ciclomtica e teste inicialmente estes
http://ese.cos.ufrj.br
Critrios de Teste
Dados um programa P e um conjunto de casos de teste T, definem-se:
Critrio de Seleo de Casos de Teste:
procedimento para escolher casos de teste para o teste de P.
Existe uma forte correspondncia entre critrios de seleo e de adequao de casos de teste
Dado um critrio de adequao C, existe um critrio de seleo CS que estabelece: selecione T tal que T seja adequado a C Dado um critrio de seleo CS, existe um critrio de adequao C que estabelece: T adequado se foi selecionado de acordo com CS
http://ese.cos.ufrj.br
confivel:
as falhas encontradas so indiferentes escolha dos dados e das aes desde que satisfaam as condies dos casos de teste
completo:
segundo um padro de completude
vivel:
Deve possuir um custo de aplicao razovel
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
Propriedades:
i) incluir todos os desvios de fluxo de execuo ii) incluir pelo menos um uso de todo computacional iii) T mnimo e finito resultado
http://ese.cos.ufrj.br
Tcnica Funcional
Baseia-se na especificao do software para derivar os requisitos de teste Aborda o software macroscpico de um ponto de vista
criar casos de teste capazes de verificar se essas funes esto sendo executadas corretamente
http://ese.cos.ufrj.br
Tcnica Funcional
Problema:
Dificuldade em quantificar a atividade de teste - no se pode garantir que partes essenciais ou crticas do software foram executadas
http://ese.cos.ufrj.br
Tcnica Funcional
Particionamento em Classes de Equivalncia
Divide o domnio de entrada do programa em classes de dados (classes de equivalncias)
os dados de teste so derivados a partir das classes de equivalncia Eventualmente, pode se considerar o domnio de sada como referncia (ex. relatrios)
http://ese.cos.ufrj.br
Tcnica Funcional
Particionamento em Classes de Equivalncia
Dois Passos:
Identificar classes de equivalncia condio de entrada vlidas e invlidas
( um processo heurstico)
Definir os casos de teste enumeram-se as classes de equivalncia casos de teste para as classes vlidas casos de teste para as classes invlidas
http://ese.cos.ufrj.br
Tcnica Funcional
Particionamento em Classes de Equivalncia
Mtodo caixa-preta que divide o domnio de entrada de um sistema em classes (categorias) de dados das quais casos de teste podem ser derivados Fora a definio de um caso de teste que revela categorias de erros, desta forma reduzindo o nmero total de casos de teste que devem ser desenvolvidos Baseado na avaliao de classes de equivalncia para uma condio de entrada Se um conjunto de objetos podem ser ligados por relacionamentos que so simtricos, transitivos e reflexivos, uma classe de equivalncia est presente.
http://ese.cos.ufrj.br
Tcnica Funcional
Particionamento em Classes de Equivalncia
Uma classe de equivalncia representa um conjunto de estados vlidos e invlidos para uma condio de entrada. Tipicamente uma condio de entrada pode ser um valor numrico especfico, uma faixa de valores, um conjunto de valores relacionados, ou uma condio lgica. Diretrizes:
Se uma condio de entrada especifica uma faixa de valores ou requer um valor especfico, uma classe de equivalncia vlida e duas invlidas so definidas; Se uma condio de entrada especifica um membro de um conjunto ou lgica, uma classe de equivalncia vlida e uma invlida so definidas
http://ese.cos.ufrj.br
Exemplo:
abc12 (vlido); cont*1 (invlido); 1soma (invlido); a123456 (invlido)
BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M.. Introduo ao Teste de Software. XIV Simpsio Brasileiro de Engenharia de Software. 2000 (disponivel em http://safedevel.icmc.usp.br/coweb/checkout.php?wikipage_id=72.4&filename=transp-Ellen.pdf, ltimo acesso em 07/03/2007)
http://ese.cos.ufrj.br
Sim
(3)
No
(4)
Sim
(5)
No
(6)
http://ese.cos.ufrj.br
Tcnica Funcional
Anlise do Valor Limite
Por razes no completamente identificadas, um grande nmero de erros tende a ocorrer nos limites do domnio de entrada invs de no centro Anlise do Valor Limite uma tcnica de teste que explora os limites dos valores para preparar os casos de teste Est tcnica complementa o particionamento em
classes de equivalncia
http://ese.cos.ufrj.br
Tcnica Funcional
Anlise do Valor Limite - Diretrizes
Se uma condio de entrada especifica uma faixa de valores limitadas em a e b, casos de teste devem ser projetados com valores a e b e imediatamente acima e abaixo de a e b; Se uma condio especifica um nmero de valores, casos de teste deveriam ser desenvolvidos para exercitar os nmeros mnimo e mximo. Valores imediatamente acima e abaixo do mnimo e mximo so tambm testados
Ex: A={1..10}; Casos de Teste => {1, 10, 0,11}
Aplique as diretrizes 1 e 2 para as condies de sada. Por exemplo, assuma que uma tabela de temperatura x presso necessria como sada de um programa de anlise de engenharia. Casos de teste deveriam ser projetados para criar um relatrio de sada que produza o mximo (e mnimo) nmero possvel de entradas na tabela; Se uma estrutura de dados interna do programa tem identificados seus limites (ex. Um vetor com 100 posies), esteja certo de projetar um caso de teste para exercitar a estrutura de dados em seu limite
http://ese.cos.ufrj.br
Aplicando o teste de valor limite convencional sero obtidos casos de teste semelhantes a este:
{-1,0,12,13,18,19,21,22,24,25} incluindo valores fora da faixa.
http://ese.cos.ufrj.br
Tcnica Funcional
Grafo de Causa-Efeito
Tcnica para identificao de casos de teste que explora as condies lgicas e as aes correspondentes. Basicamente, 4 passos devem ser executados:
Para cada mdulo, Causas (condies de entrada) e efeitos (aes realizadas s diferentes condies de entrada) so relacionados, atribuindo-se um identificador para cada um. Em seguida, um grafo de causa-efeito (rvore de deciso) desenhado. Neste ponto, transforma-se o grafo numa tabela de deciso. As regras da tabela de deciso so, ento, convertidas em casos de teste.
http://ese.cos.ufrj.br
>80 >=3 V
<=80 -V
http://ese.cos.ufrj.br
Tcnica Estrutural
baseada no conhecimento da estrutura interna da implementao Teste dos detalhes procedimentais A maioria dos critrios dessa tcnica utiliza uma representao de programa conhecida como grafo de programa ou grafo de fluxo de controle
http://ese.cos.ufrj.br
Programa Identifier.c
/* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* 01 01 01 01 01 01 01 01 01 02 03 04 05 05 06 07 07 07 08 09 10 10 11 */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ { char achar; int length, valid_id; length = 0; printf ("Digite um possvel identificador\n"); printf ("seguido por <ENTER>: "); achar = fgetc (stdin); valid_id = valid_starter (achar); if (valid_id) length = 1; achar = fgetc (stdin); while (achar != '\n') { if (!(valid_follower (achar))) valid_id = 0; length++; achar = fgetc (stdin); } if (valid_id && (length >= 1) && (length < 6) ) printf ("Valido\n"); else printf ("Invalido\n"); }
BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M.. Introduo ao Teste de Software. XIV Simpsio Brasileiro de Engenharia de Software. 2000 (disponivel em http://safedevel.icmc.usp.br/coweb/checkout.php?wikipage_id=72.4&filename=transp-Ellen.pdf, ltimo acesso em 07/03/2007)
http://ese.cos.ufrj.br
Detalhes considerados:
n arco caminho:
simples completo livre de lao
fluxo de controle
Grafo de Programa do identifier.c Gerado pela View-Graph (USP-SC)
http://ese.cos.ufrj.br
Ns:
blocos indivisveis
no existe desvio para o meio do bloco uma vez que o primeiro comando do bloco executado, os demais comandos so executados seqencialmente
Arestas ou Arcos:
representam o fluxo de controle entre os ns
http://ese.cos.ufrj.br
Tcnica Estrutural
Critrios da Tcnica Estrutural:
Engenharia de Software: Teoria e Prtica Shari Lawrence Pfleeger - Prentice Hall- Cap. 08
http://ese.cos.ufrj.br
Tcnica Estrutural
Critrios de Fluxo de Controle
Todos-Ns: 1,2,3,4,5,6,7,8,9,10,11 Todos-Arcos: arcos primitivos: <1,2>,<1,3>,<5,6>,<5,7>, <8,9>,<8,10> Todos-Caminhos
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Anlise de Mutantes
Garantir a ausncia de determinados tipos de defeitos Considerando todos os programas Q, possvel provar a correo de P
T P P(t) Q(t) Q
tT
impraticvel executar e comparar todos os programas Q Estabelece-se ento uma vizinhana (P) que contm apenas um conjunto finito de programas Esses programas contm pequenos desvios sintticos que representam defeitos simples
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Anlise de Mutantes
Hiptese do Programador Competente Programadores experientes escrevem programas corretos ou muito prximos do correto
Efeito de Acoplamento Casos de teste capazes de revelar erros simples so to sensveis que, implicitamente, tambm so capazes de revelar erros mais complexos
http://ese.cos.ufrj.br
Anlise de Mutantes
Os operadores de mutao determinam o tipo de alterao sinttica que deve ser feita para a criao dos mutantes
Introduzir pequenas alteraes semnticas atravs de pequenas alteraes sintticas que representam defeitos tpicos Ex: FORTRAN (22 operadores), C (71 operadores)
2
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Aplicao de Critrios
Estudos Tericos e Experimentais avaliam:
Custo
esforo necessrio para que o critrio seja utilizado # de casos de teste para satisfazer o critrio
Strength
Dificuldade de satisfao Dificuldade de satisfazer um critrio, tendo satisfeito outro.
Eficcia
Capacidade que um critrio possui de detectar erros
http://ese.cos.ufrj.br
Exerccios de Fixao
1. Utilizao da Equivalncia Tcnica de Particionamento por
http://ese.cos.ufrj.br
Mdulo II Concluses
As tcnicas de teste atualmente existente complementares e podem ser utilizadas em conjunto so
Deve ser feita uma anlise de custo-benefcio na empresa a respeito da aplicao de vrias tcnicas em conjunto.
Diferente tipos de aplicaes (ex: 00, aplicaes web, software embarcados) possuem caractersticas especficas
Isso impacta nas atividades desenvolvimento e testes
Tcnicas diferenciadas para desenvolvimento e testes
Apoio Ferramental essencial para a aplicao dessas tcnicas como meio para reduzir o esforo e custo de sua implantao
http://ese.cos.ufrj.br
Mdulos III/IV
Estratgias de Projeto, Execuo e Controle dos Testes
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Estratgias de Teste
Baseada na implementao:
Tenta-se testar cada linha de cdigo Muito caro Muito difcil quando se tem vrios caminhos
Em OO, s vezes no faz sentido!
Baseada na especificao:
Cobrir as imposies e restries feitas pelos desenvolvedores a partir dos requisitos estabelecidos para o sistema Pode apoiar o desenvolvimento do software (teste de integrao)
http://ese.cos.ufrj.br
Copyright G.H. Travassos 2010
Estratgias de Teste
A freqncia com que cada tipo de usurio utiliza o sistema refletir a importncia relativa das caractersticas do sistema.
Esta freqncia de uso pode ser representada por um perfil operacional
Ter um perfil operacional qualificado representa uma estratgia eficiente para descobrir defeitos que os usurios mais encontrariam.
Este perfil difcil de se obter antes do lanamento do produto
Extenses ao modelo de casos de uso podem ser feitas para se considerar este perfil operacional
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
devem
considerar
freqncia
Criticalidade:
define a importncia de um uso do sistema em relao ao contexto geral de utilizao facilmente obtida a partir do julgamento de um especialista do domnio.
Combinando-se estes dois critrios pode-se priorizar os casos de uso mais importantes e mais freqentes.
http://ese.cos.ufrj.br
Esta tcnica no altera o processo bsico de escolha de tipos de teste e de dados de entrada:
a modificao ocorre em como sistematicamente distribuir os casos de teste pelos casos de uso com uma prioridade calculada.
http://ese.cos.ufrj.br
Correntis ta
G erente
http://ese.cos.ufrj.br
Processo
1. Definir o conjunto completo de atores. 2. Definir o conjunto completo de casos de uso incluindo as associaes com os atores. 3. Construir o perfil de uso para cada ator. 4. Calcular a freqncia para cada caso de uso a partir dos perfis dos atores. 5. Combinar as avaliaes de freqncia e criticalidade num valor que represente a prioridade de teste. 6. Alocar casos de teste com base na prioridade de teste dos casos de uso.
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Nome: Caixa Abstrato: N/s Descrio (Papel): Lida diretamente com os correntistas. Nvel Conhecimento: Treinados, mas com nveis de experincia diversos. Perfil de Uso: Caso de Uso RealizarSaque RealizarDepsito RealizarAjustes Freqncia Relativa Mdia Alta __
http://ese.cos.ufrj.br
Nome: Correntista Abstrato: N/s Descrio (Papel): Dono de uma conta, pode disparar atividades na mesma. Nvel Conhecimento: Novato. Perfil de Uso: Caso de Uso RealizarSaque RealizarDepsito RealizarAjustes Freqncia Relativa Alta Mdia __
http://ese.cos.ufrj.br
Nome: Transferncia Eletrnica de Fundos Abstrato: N/s Descrio (Papel): Inicia atividades na conta, com algumas restries. Nvel Conhecimento: Especialista. Perfil de Uso: Caso de Uso RealizarSaque RealizarDepsito RealizarAjustes Freqncia Relativa Mdia Mdia __
http://ese.cos.ufrj.br
RealizarDepsito
Mdia
Alta
RealizarSaque
Alta
Alta
Mdia
RealizarAjustes
Mdia
Baixa
Baixa
http://ese.cos.ufrj.br
TransEletFundos RealizarDepsito
Correntista
Caixa
RealizarSaque
Gerente
RealizarAjustes
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Os campos conta de destino e valor do depsito s aparecem caso o item de menu Depsito tenha sido escolhido anteriormente
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
Nmero de equivalncia):
Conta
(usando
particionamento
por
http://ese.cos.ufrj.br
agrupando
os
diferentes
http://ese.cos.ufrj.br
5. Represente as seqncias de aes para o caso de uso, incluindo o fluxo principal e fluxos alternativos. Alm disso, deve ser considerada a ordem de preenchimento dos elementos do caso de uso (ex. elementos que dependem de
outro)
No diagrama a seguir, estamos considerando que o sistema no finaliza a operao, caso os dados de conta de destino e valor de depsito invlidos sejam informados
http://ese.cos.ufrj.br
Correntista
Sistema
4. Apresenta mensagem de dados invlidos (valor < 10) ou (conta invlida) ou (conta inativa)
valor <= 10000 valor > 10000 8. O sistema envia notificao or e-mail
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
PT02: Teste de valor de depsito = 10000 (CT06 limite superior sem a gerao de notificao)
CAMINHO 1
PT03: Teste de valor de depsito = 10000.01 (CT07 limite superior com a gerao de notificao)
CAMINHO 2
http://ese.cos.ufrj.br
Caso de Teste
10. Sistema apresenta uma mensagem de valor de depsito invlido 11. Ator informa a conta destino e o valor do depsito. 12. Sistema atualiza contadores de atividade na conta. 13. Sistema verifica se valor depositado necessita de notificao. e caso necessrio, gera a notificao 14. O sistema finaliza o caso de uso
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Uma outra opo seria unir os procedimentos de teste para o caso de uso LOGAR NO SISTEMA com os procedimentos de teste para REALIZAR DEPSITO
http://ese.cos.ufrj.br
Equipamentos
Testes podem requerer a alocao de um equipamento diferenciado (ex. servidor, um simulador, etc.)
Ferramentas
A execuo dos testes pode necessitar de ferramentas especficas para os testes, como simuladores ou capture-replay
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Executando os Testes
Testador:
Seguir o que foi definido durante o planejamento Registrar todas as atividades que ocorrem
Normalmente, no conseguimos prever as falhas, e podemos perder a seqncia de eventos que a ocasionou Tentar explicar com detalhes o que levou ocorrncia da falha, utilizando telas capturas
http://ese.cos.ufrj.br
Controlando os Testes
Gerente de Teste:
Garantir que os testes planejados estejam sendo executados e verificar os resultados dos testes Analisar o grau de impacto dos incidentes relatados Repassar os incidentes de teste equipe de desenvolvimento
Utilizar ferramentas de bug tracking (ex. BugZilla)
Facilita a documentao e possibilita o acompanhamento de um incidente de teste at a sua correo pelos desenvolvedores
http://ese.cos.ufrj.br
Caso/Procedimento de Teste
Associado a um
Item de Teste
Que possui
Defeito
Que dever ser corrigido
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
A matriz deve ser atualizada constantemente em caso de mudanas nos itens do projeto
Facilita a evoluo dos testes, e conseqentemente testes de regresso
Indicao explcita dos casos ou procedimentos de teste a serem atualizados ou que no fazem mais parte dos testes de um software
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Exemplos de M Mtricas de Teste (1) complexidade ciclomtica (McCabe) quantidade de falhas tempo gasto com teste (por fase) esforo gasto com teste (por fase) natureza das causas de falhas
ex: artefato do processo de desenvolvimento
http://ese.cos.ufrj.br
distribuio de falhas por item de teste distribuio de falhas no tempo tempo para corrigir o defeito que originou uma falha esforo para corrigir o defeito que originou uma falha cobertura de teste
Copyright G.H. Travassos 2010
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Cenrio 2:
O perodo para testes se encerrou e o critrio de aceitao no foi 100% atingido
http://ese.cos.ufrj.br
Incidentes ou Falhas
Rodadas
Incidentes Falhas confirmadas
http://ese.cos.ufrj.br
Incidentes ou Falhas
Rodadas
Incidentes Falhas confirmadas
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br
Razes:
Testes so altamente repetitivos Tempo destinado aos testes curto
Concluso
A atividade de Teste no auto-contida
Ela depende de artefatos gerados em outras fases Esses artefatos devem ser construdos de forma adequada facilitando os testes
ser
consideradas
durante
Configurao do ambiente para teste Registro dos incidentes de teste Envio dos incidentes equipe de desenvolvimento para identificao dos defeitos Apoio depurao dos testes Automao de diferentes atividades relacionadas aos testes
http://ese.cos.ufrj.br
http://ese.cos.ufrj.br