Download - Notas de Teste de Software
-
7/30/2019 Notas de Teste de Software
1/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Notas de Teste de Software
Introduo ao Teste de Software
Teste de Software uma forma de garantir que o produto de software atende os
requisitos que foram definidos, ento executa-se o programa para revelar a presenade defeitos.
D (Defeito), E (Erro) e F(Falha) O Defeito um passo, processo ou definio de dados
incorretos. O Engano uma ao (humana) que produz um defeito, esses dois
conceitos so estticos, portanto, no dependem da execuo do programa. A
existncia de um defeito pode ocasionar um Erro durante a execuo do programa
que o levar a um estado inconsistente, tal estado pode incorrer em Falha, que um
resultado diferente do esperado.
O domnio de entrada de um programa P pode ser denotado por D(P), que o
conjunto de todos os valores possveis para execuo de P. Um dado de teste T um
elemento do domnio de entrada de um programa P. Um caso de teste um par
formado pelo dado de teste e uma sada esperada (T, O(P) ), onde a sada esperada
forma por um domnio de sada O(P) e o conjunto de todos os testes so referenciados
como Conjunto de Casos de Teste de um programa. O veredicto sobre o sucesso ou
falha de um caso de teste dado por um Orculo utilizando a especificao S(P) e
executando os casos de teste.
Validao, Verificao e Teste - Validao estamos construindo o produto certo?.
Verificao estamos fazendo da maneira certa?. Teste examina o comportamento do
produto de software durante a sua execuo (Verificao Dinmica).
Fases de Teste Teste de sistema, Teste de Unidade e Teste de Integrao.
-
7/30/2019 Notas de Teste de Software
2/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Teste Funcional
Teste de Caixa Preta, tem objetivo de cobrir a especificao. Pode ser derivado
a partir de um modelo com base na arquitetura e requisitos do software.
Benefcio: No leva em conta detalhes de implementao, pode ser utilizado
em qualquer paradigma e fase do desenvolvimento.
Limitaes: No garante cobertura de cdigo e a deteco de defeitos
depende da qualidade da especificao de requisitos.
Teste Funcional Particionamento por Classe de Equivalncia
O domnio de entrada e de sada do programa dividido em um nmero finito de
parties (ou classes) de equivalncia.
Os dados da mesma partio tem a capacidade de revelar os mesmos defeitos e so
consideradas parties vlidas e invlidas.
A gerao de teste deve selecionar um dado em cada partio e os casos de teste
devem ter cobertura de ao menos cada partio.
Intervalos ou conjuntos so possuem indicao de que os dados sero processados da
mesma forma.
-
7/30/2019 Notas de Teste de Software
3/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Diretrizes:
Condio de Entrada Definio das Classes de Equivalncia
Se CE especifica intervalo de valores Um classe vlida e outra invlida
Se CE especifica uma quantidade devalores
Uma classe vlida e duas invlidas
Se CE especifica um conjunto de valoresdeterminados que devem ser tratados demaneira diferente
Uma vlida para um e uma invlida comvalor qualquer.
Se CE especifica situao: deve serassim...
Uma classe vlida e outra invlida
Os casos de teste devem cobrir o maior nmero de classes vlidas possvel e deve
haver um caso de teste para cada classe invlida. Benefcios: Reduo no tamanho do domnio de entrada e na criao de dados de
teste. adequado para aplicaes com variveis de entrada facilmente identificadas e
co valores especficos.
Limitaes: O critrio no facilmente aplicvel quando o domnio de entrada
simples mas o processamento complexo. Os dados podem no ser processados de
forma idntica ao grupo de dados especificado nos testes. A tcnica no fornece
diretrizes para combinao dos dados de teste.
Exemplo:
O programa deve determinar se um identificador vlido ou no em Silly Pascal (uma variantedo Pascal). Um identificador vlido deve comear com uma letra e conter apenas letras oudgitos. Alm disso, deve ter no mnimo um caractere e no mximo seis caracteres decomprimento.
Entradas da aplicao:
V Vetor de caracteres que representa o identificador. T Tamanho do vetor. L 1 caracteredo vetor uma letra.
ID Varivel de
Entrada
Classes Vlidas Classes Invlidas
1 V V[0..T-1] != vazio V[0..T-1] = vazio
2 V Para cada elemento de V, ondeV[1]..V[T-1] pertence ao conjunto Z ||[a..z|A..Z]
Para cada elemento de V, ondeV[1]..V[T-1] no pertencente aoconjunto Z || [a..z|A..Z]
3 V Para cada elemento de V, ondeV[1]..V[T-1] pertence ao conjunto Z&& [a..z|A..Z]
Para cada elemento de V, ondeV[1]..V[T-1] no pertencente aoconjunto Z && [a..z|A..Z]
4 T 1
-
7/30/2019 Notas de Teste de Software
4/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Casos de Teste
ID Varivel
de
Entrada
Critrio
Partio
Dados de Entrada Sada Esperada
1 V 1 Identificador Invlido!2 V 1 Teste Identificador Vlido!.
3 V 2 $%#&@! Identificador Invlido!
4 V 2 Teste Identificador Vlido!.
5 V 2 A12345 Identificador Vlido!.
6 V 3 T$%#&* Identificador Invlido!
7 V 3 Teste1 Identificador vlido!
8 V 3 A1Teste Identificador vlido!
9 T 4 Identificador Invlido!
10 T 4 Teste01223 Identificador Invlido!
11 T 4 Teste1 Identificador vlido!
12 T 4 T Identificador vlido!13 T 4 T1 Identificador vlido!
14 L 5 1 Identificador Invlido!
15 L 5 $ Identificador Invlido!
16 L 5 A Identificador vlido!
Teste Funcional Anlise de Valor Limite
Acrescenta inteligncia ao critrio de particionamento por classes de equivalncia por
no selecionar os dados de teste de forma aleatria para explorar os limites.
Casos de teste que exploram limites tem mais probabilidade de encontrar defeitos.
Os valores so escolhidos imediatamente acima ou abaixo dos limites definidos nas
classes de equivalncia.
Se CE especifica um intervalo de
valores
Dados de teste devem considerar os limites
do intervalo imediatamente subsequentes
Ex: classe no intervalo -1; 0 e +1; 0 dados de teste: -1; 0; +1; 0; -1,001 e +1,001
Ex: for int i=1; i< 255; i++ Dados de teste i={0, 1, 255 e 256}
Teste Funcional Sistemtico
Combina PCE e AVL.
Requer ao menos 2 casos de teste para cada partio para eliminar defeitoscoincidentes.
Ex: programa calcula o quadrado de um nmero; dado de teste { 2; resultado 4} correto, mas pode ter vindo de uma soma 2 + 2.
-
7/30/2019 Notas de Teste de Software
5/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Diretrizes
Domnio de Entrada
Valores Discretos Testar todos os valores
Intervalo de valores Testar os extremos e um valor no interior
Domnio de SadaSelecionar valores de entrada que resultemnos valores de sada.
Testar todos os valores discretos e osextremos e interior dos intervalos
Valores Especiais Criar casos de teste para brancos e zeros.
Valores Ilegais Criar casos de teste para certificar que cadavalor ou intervalo ilegal seja rejeitado naentrada.
Nmeros Reais Testar todos os valores discretos e osextremos e interior dos intervalos
Caracteres Testar valores discretos e alfanumricos.
Intervalos Variveis Testar todos os valores discretos e os
extremos e interior dos intervalosArranjos Testar todos os valores discretos e os
extremos e interior dos intervalos
Teste Funcional Grafo de Causa-Efeito
A limitao dos critrios anteriores que no consideram a combinao das entradas.
Explora ambiguidades e incompletudes da especificao.
Benefcios: exercita combinaes dos dados de teste.
Limitaes: complexidade em se construir o grafo e sua converso em tabelas dedeciso. O grande nmero de causas e efeitos podem no gerar dados de testes
significativos.
- E: no mximo um entre 1" e 2"pode ser igual a 1.- I: no mnimo um entre 1", 2" e3" deve ser igual a 1.- O: um e somente um entre 1" e2" deve ser igual a 1.- R: para que 1" seja igual a 1, 2"deve ser igual a 1.
- M: se o efeito 1" 1 o efeito 2" forado a ser 0.
-
7/30/2019 Notas de Teste de Software
6/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Teste Estrutural
Benefcios: os critrios de teste em geral possuem uma abordagem sistemtica e
teoricamente fundamentada para conduzir uma atividade de teste. Aumentam a
garantia de que os casos de testes iro revelar defeitos. Cada tcnica depende da
origem dos dados para criar os casos de testes. A tcnica estrutural tem como base aimplementao.
Benefcios: complementa outras tcnicas: depurao, manuteno e avaliao da
confiabilidade.
Limitaes: No existe um procedimento de teste de proprsito geral para provar a
correo de um programa. indecidvel se dois ou mais programas computam a
mesma funo; se dois caminhos de um mesmo programa, ou de programas
diferentes, computam a mesma funo; e se um dado caminho executvel e se
existe um conjunto de dados de entrada que leve execuo desse caminho.
Limitaes: caminhos ausentes durante a execuo do teste e correo coincidente.
Geralmente representado utilizando um Grafo de Fluxo de Controle (GFC)
-
7/30/2019 Notas de Teste de Software
7/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Diretrizes:
Caminho seqncia de vrtices conectados por arestas.
Caminho Simples Caminho em que um n no se repete, exceto o primeiro eltimo.
Caminho Livre de Lao Caminho em que um n no se repete.
Caminho Completo caminho que inicia no n de entrada e termina em um nde sada.
Caminho no executvel Se existe algum n ou vertice no executado de acordocom um dado de entrada.
Caminho Livre de
Definio
No contm redefinio uma varavel ao longo do caminho
Definio Global Ou contm um caminho livre de definio para um n ouexiste C-USO ou P-USO da varavel em um arco.
Definies
C-USO uso computacional
P-USO uso predicativoUSO- quando a referncia no define valor a uma varivel
Indefinio Quando varivel no tem referncia memria.
(2,3,4,5,6,7) caminho simples e livre de laos.
(1,2,3,4,5,7,4,8,9,11) caminho completo.
(1,3,4,8,9) caminho no executvel.
-
7/30/2019 Notas de Teste de Software
8/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Todos-Ns exige que a execuo do programa passe, ao menos uma vez, em cadavrtice do grafo de fluxo, ou seja, que cada comando do programa seja executado pelomenos uma vez.
Todos-Arcos requer que cada aresta do grafo, ou seja, cada desvio de fluxo decontrole do programa, seja exercitada pelo menos uma vez.
Todos-Caminhos requer que todos os caminhos possveis do programa sejamexecutados.
Todas-Definies : requer que cada definio de varivel seja exercitada pelo menosuma vez, no importa se por um c-uso ou por um p-uso.
Todos-Usos: requer que todas as associaes entre uma definio de varivel e seussubseqentes usos (c-usos e p-usos) sejam exercitadas pelos casos de teste, atravs depelo menos um caminho livre de definio, ou seja, um caminho onde a varivel no redefinida.
Teste estrutural pode ser aplicado para teste de unidade pelo prprio desenvolvedorentre as fases e caminhos dentro das unidades, entre as unidades, subsistemas e sistemas.
Teste Estrutural Teste de Fluxo de Dados
Teste de fluxo de dados possui inteno de revelar defeitos em decorrncia de valores
incorretos na codificao.
Princpio da definio dos critrios: sequncia das aes realizadas sobre as variveis
mais onde elas so definidas e utilizadas.
Anomalias do Fluxo de Dados
Uso de varivel no inicializada.
Atribuio de valor a uma varivel mais de uma vez sem que tenha havido umareferncia a essa varivel entre essas atribuies.
Liberao ou reinicializao de uma varivel antes que ela tenha sido criada ouinicializada.
Liberao ou reinicializao de uma varivel antes que ela tenha sido usada.
Atribuir novo valor a um ponteiro sem que a varivel tenha sido liberada.
Notao Significado
~ No existe varivel
d Definio da varivel
u Uso da varivel
K Destruio da varivel~d Varivel no existe e definida (correto)
~u Varivel no existe e usada (incorreto)
~k Varivelno existe e destruda
dd Definida e redefinida (incorreto se global)
du Definida e usada (correto)
dk Definida e destruda (incorreto)
ud Usada e definida (aceitvel)
uu Usada e reusada (aceitvel)
uk Usada e destruda (aceitvel)
kd Destruda e redefinida (aceitvel)
ku Destruda e usada (incorreto)
Kk Destruda e destruda novamente (incorreto)
-
7/30/2019 Notas de Teste de Software
9/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Diretrizes:
c-use(i) Variveis com uso global no bloco i
def(i) Variveis com definio global no bloco i
p-use(i,j) Variveis com p-usos no arco i,j
dcu(x,i) Existe um caminho livre de definio do n i at n j
dpu(x,i) Existe um caminho livre de definio do n i at arco jdu-caminho(x) Existe uma definio global de x, (tem um c-uso e existe um caminho
simples livre de definio) ou (existe um p-uso e existe um caminholivre de definio e livre de lao.
Associao
definio c-uso
uma tripla (i,j,x) onde i um n que contm uma definio global dex e j pertence a dcu(x,i)
Associao
definio p-uso
uma tripla (i,(j,k),x) onde i um n que contm uma definio globalde x e j pertence a dpu(x,i)
TodasDefinies requer que cada definio de varivel seja exercitada pelo menosuma vez, no importa se por um c-uso ou por um p-uso.
TodosUsos requer que todas as associaes entre uma definio de varivel e
seus subsequentes usos (c-usos e p-usos) sejam exercitadas peloscasos de teste, atravs de pelo menos um caminho livre de definio,ou seja, um caminho onde a varivel no redefinida.
TodosDuCaminhos requer que toda associao entre uma definio de varivel esubsequentes p-usos ou c-usos dessa varivel seja exercitada portodos os caminhos livres de definio e livres de lao que cubram essaassociao.
Associao
definio-uso
uma tripla (var,def,uso) onde var uma varivel com a definio-uso, def um n que contm uma definio de var e uso contm umn ou arco com c-uso ou p-uso de var.
Potencial-
associao
Associaes so estabelecidas sem a necessidade de um uso explcito.
Potencial
definio-uso
uma tripla (var,def,uso) onde var uma varivel com a definio-uso, def um n que contm uma definio de var e uso c-uso ou p-uso possvel de var em um n ou arco.
-
7/30/2019 Notas de Teste de Software
10/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Preenchem a lacuna entre os critrios GFC todos os ns e todos os arcos, porque
considera a incluso de todos os usos (c-usos e p-usos) das variveis.
-
7/30/2019 Notas de Teste de Software
11/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
-
7/30/2019 Notas de Teste de Software
12/14
-
7/30/2019 Notas de Teste de Software
13/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Teste Baseado em Modelos
O principal objetivo do software cumprir os requisitos para o qual foi construdo, por conta
de diversos erros na fase de elicitao muito comum encontrar requisitos ambguos,
incompletos e vagos, o que aumenta o custo de reparo nas fases seguintes do seu processo de
construo. Neste caso, um modelo pode expressar diversas caractersticas de um software,desde os seus conceitos, propriedades, relaes e restries. Tambm, a partir de um modelo
possvel melhorar o entendimento sobre os requisitos e automatizar a gerao de cdigo.
No mbito das atividades de teste de software, que geralmente custam 45% do total do
projeto, criar testes baseados em modelos pode ser bastante interessante. A partir da
especificao criado um modelo (representao do funcionamento de um software) que
pode ser externalizado atravs de uma MEF (Mquina de Estados Finitos). As vantagens da
abordagem que a gerao de testes comea mais cedo no ciclo do desenvolvimento e pode-
se criar casos de teste automaticamente a partir do modelo. Os casos de teste podem ser
representados atravs de rvores de deciso, statecharts, ontologias de domnio ou diagramasde casos de uso e/ou estados da UML (Unified Modeling Language). Um modelo composto
por estados, transies e aes. Os estados armazenam informaes sobre o passado, as
transies indicam mudanas de estado e as aes representam as atividades que podem ser
realizadas em um determinado momento. Dessa forma, com um conjunto de estados finito
possvel responder a quase todas as perguntas sobre um sistema e a gerao de casos de teste
baseada em sequncias (e.g. sequncia de sincronizao e distino) para verificar a
consistncia dos estados.
Figura 1- Sequncia de Sincronizao.
De acordo com a Figura 1 possvel
vislumbrar como seria uma atividade tpicade teste baseado em modelo:
Para chegar ao estado S2 aplique asequncia a/x- a/x;
Aplique a entrada b;
Verifique a sada y;
Verifique se a mquina est noestado S3;
No caso da Figura 1, para perfazer a cobertura de todos os estados pode-se derivar os casos de
teste a partir da sequncia : a/x a/x b/y b/x. A sequncia de sincronizao pode ser
utilizada para garantir que a MEF v para um estado particular, neste caso, se ocorrer
divergncia, possivelmente h um defeito. A sequncia de distino serve para identificar uma
sada diferente para cada estado. A Tabela 1 demonstra atravs de uma tabela como seriam as
sadas atravs de uma sequncia de distino. possvel observar que as sadas so distintas
para cada estados.
Estado Sada
S0 x _
S1 x y
S2 _y
S3 _ xTabela 1 Exempo de Sequncia de Distino.
-
7/30/2019 Notas de Teste de Software
14/14
Notas de Teste de software - Jaguaraci Silva - 14 de Dezembro de 2012
Diversos mtodos podem ser utilizados para criar casos de testes, incluindo: mtodo TT,
mtodo UIO, mtodo DS, mtodo W. O mtodo TT (Transition Tour) parte do estado inicial e
atravessa todas as transies pelo menos uma vez e retorna ao estado inicial, pode ser
utilizado para detectar erros de sada. O mtodo UIO (Unique Input e Output) identifica o
estado e uma sequncia de entrada que pode levar a uma determinada sada (exemplo ao lado
da Figura 1). Uma desvantagem deste mtodo que no garante a cobertura de todas as
transies como no mtodo anterior. O mtodo DS (Distinct Sequence) utiliza sequncias
distintas como dados de teste para verificar as sadas de cada estado, conforme visto na
Tabela 1. O problema que uma sequncia distinta nem sempre pode ser encontrada em uma
MEF. J o mtodo W pode ser utilizado para encontrar defeitos estruturais sempre que uma
MEF for completa, mnima e fortemente conectada.
Em relao ao mtodos vistos possvel realizar uma rpida comparao para conhecer os
requisitos de uma MEF para empreg-los (Tabela 2):
TT UIO DS W
MEF Mnima X X X
Completamente Especificada X X X
Fortemente Conectada X X X
Mquina Mealy X X X
Determinismo X X X X
Sequncias de Sincronizao X
Sequncias de Distino X
Sequncias nicas de Entrada e Sada X
Conjunto de Caracterizao X
Tabela 2 Comparao do Mtodos.
Conforme a Tabela 2 todos os mtodos vistos necessitam que a MEF sej mnima,
completamente especificada, fortemente conectada, seja um modelo derivado da mquina de
Mealy e que sempre haja determinsmo. Por conta desses requisitos estritos, o teste baseado
em modelo, por ter em sua essncia a representao baseada em MEF, no muito utilizado.
Se houvesse outras abordagem que facilitassem a representao, verificao e validao do
modelo diante da especificao (e.g. ontologia de domnio e inferncias usando deduoautomtica) o teste baseado em modelos poderia ser largamente utilizado na indstria, pois
entre as diversas vantagens da abordagem, possvel corrigir ambiguidades e incompletudes
dos requisitos na fase de anlise, principal motivo dos fracassos dos projetos de software.
Tambm, a dificuldade da gerao automtica de casos e dados de teste consonante com o
domnio da aplicao um grande entrave para reduo dos custos no processo de
desenvolvimento de softwares modernos quando da utilizao de outros critrios, a exemplo
dos critrios funcionais e estruturais.