Você está na página 1de 6

Introdução a Teste de Software

T
este de software é o processo de desta tarefa é revelar o número máximo
execução de um produto para de falhas dispondo do mínimo de esforço,
determinar se ele atingiu suas es- ou seja, mostrar aos que desenvolvem se
pecificações e funcionou corretamente no os resultados estão ou não de acordo com
ambiente para o qual foi projetado. O seu os padrões estabelecidos.
objetivo é revelar falhas em um produto, Ao longo deste artigo, iremos discutir
para que as causas dessas falhas sejam os principais conceitos relacionados às
identificadas e possam ser corrigidas pela atividades de teste, as principais técnicas
equipe de desenvolvimento antes da en- e critérios de teste que podem ser utiliza-
trega final. Por conta dessa característica dos para verificação ou validação de um
das atividades de teste, dizemos que sua produto, assim como exemplos práticos
natureza é “destrutiva”, e não “construti- da aplicação de cada tipo de técnica ou
va”, pois visa ao aumento da confiança de critério de teste.
um produto através da exposição de seus
problemas, porém antes de sua entrega Conceitos básicos associados
Arilo Cláudio Dias Neto ao usuário final. a Teste de Software
(ariloclaudio@gmail.com)
O conceito de teste de software pode Antes de iniciarmos uma discussão
É Bacharel em Ciência da Computação for-
mado na Universidade Federal do Amazonas, ser compreendido através de uma visão sobre teste de software precisamos es-
Mestre em Engenharia de Sistemas e Compu- intuitiva ou mesmo de uma maneira clarecer alguns conceitos relacionados a
tação formado na COPPE/UFRJ, e atualmente formal. Existem atualmente várias defi- essa atividade. Inicialmente, precisamos
está cursando doutorado na área de Engenha- nições para esse conceito. De uma forma conhecer a diferença entre Defeitos, Er-
ria de Software da COPPE/UFRJ. Possui 5 anos
simples, testar um software significa veri- ros e Falhas. As definições que iremos
de experiência em análise, desenvolvimento e
teste de software. É editor técnico das Revis- ficar através de uma execução controlada usar aqui seguem a terminologia padrão
tas SQL Magazine e WebMobile, gerenciadas se o seu comportamento corre de acordo para Engenharia de Software do IEEE
pelo Grupo DevMedia. com o especificado. O objetivo principal – Institute of Electrical and Electronics

54 Engenharia de Software Magazine – Introdução a Teste de Software


V ERIF I C A ÇÃ O, VA LI DA Ç Ã O E T EST E

Engineers – (IEEE 610, 1990). R E QU


RE Q U IS
I S I TOS
TO S
• Defeito é um ato inconsistente come-
tido por um indivíduo ao tentar entender
uma determinada informação, resolver
um problema ou utilizar um método
ou uma ferramenta. Por exemplo, uma
instrução ou comando incorreto.
• Erro é uma manifestação concreta
de um defeito num artefato de softwa-
re. Diferença entre o valor obtido e o
valor esperado, ou seja, qualquer estado
intermediário incorreto ou resultado
Figura 1. Defeito x erro x falha (Uma versão similar pode ser obtida em http://www.projectcartoon.com/cartoon/611)
inesperado na execução de um programa
constitui um erro. tar as possibilidades de provocar falhas profissionais, permanecem presentes
• Falha é o comportamento operacional ou, quando isso não ocorre, estabelecer nos produtos, o que torna a atividade de
do software diferente do esperado pelo um nível elevado de confiança na correção teste fundamental durante o desenvolvi-
usuário. Uma falha pode ter sido causada do produto (ROCHA et al., 2001). Os crité- mento de um software. Já vimos que esta
por diversos erros e alguns erros podem rios de teste podem ser utilizados como: atividade corresponde ao último recurso
nunca causar uma falha. ο Critério de Cobertura dos Testes: para avaliação do produto antes da sua
permitem a identificação de partes do entrega ao usuário final.
A Figura 1 expressa a diferença entre programa que devem ser executadas O tamanho do projeto a ser desenvolvi-
esses conceitos. Defeitos fazem parte para garantir a qualidade do software do e a quantidade de pessoas envolvidas
do universo físico (a aplicação propria- e indicar quando o mesmo foi suficien- no processo são dois possíveis fatores
mente dita) e são causados por pessoas, temente testado (RAPPS e WEYUKER, que aumentam a complexidade dessa
por exemplo, através do mal uso de uma 1982). Ou seja, determinar o percentual tarefa, e consequentemente aumentam
tecnologia. Defeitos podem ocasionar a de elementos necessários por um crité- a probabilidade de defeitos. Assim, a
manifestação de erros em um produto, ou rio de teste que foram executados pelo ocorrência de falhas é inevitável. Mas
seja, a construção de um software de for- conjunto de casos de teste. o que significa dizer que um programa
ma diferente ao que foi especificado (uni- ο Critério de Adequação de Casos falhou? Basicamente significa que o
verso de informação). Por fim, os erros de Teste: Quando, a partir de um con- funcionamento do programa não está de
geram falhas, que são comportamentos junto de casos de teste T qualquer, ele é acordo com o esperado pelo usuário. Por
inesperados em um software que afetam utilizado para verificar se T satisfaz os exemplo, quando um usuário da linha
diretamente o usuário final da aplicação requisitos de teste estabelecidos pelo de produção efetua consultas no sistema
(universo do usuário) e pode inviabilizar critério. Ou seja, este critério avalia se os das quais só a gerência deveria ter acesso.
a utilização de um software. casos de teste definidos são suficientes Esse tipo de falha pode ser originado por
Dessa forma, ressaltamos que teste de ou não para avaliação de um produto ou diversos motivos:
software revela simplesmente falhas em uma função (ROCHA et al., 2001). • A especificação pode estar errada ou
um produto. Após a execução dos testes é ο Critério de Geração de Casos de incompleta;
necessária a execução de um processo de Teste: quando o critério é utilizado para • A especificação pode conter requisitos
depuração para a identificação e correção gerar um conjunto de casos de teste T impossíveis de serem implementados
dos defeitos que originaram essa falha, adequado para um produto ou função, devido a limitações de hardware ou sof-
ou seja, Depurar não é Testar! ou seja, este critério define as regras e tware;
A atividade de teste é composta por diretrizes para geração dos casos de tes- • A base de dados pode estar organizada
alguns elementos essenciais que auxiliam te de um produto que esteja de acordo de forma que não seja permitido distin-
na formalização desta atividade. Esses com o critério de adequação definido guir os tipos de usuário;
elementos são os seguintes: anteriormente (ROCHA et al., 2001). • Pode ser que haja um defeito no algo-
• Caso de Teste. descreve uma condição ritmo de controle dos usuários.
particular a ser testada e é composto por Definidos os elementos básicos asso-
valores de entrada, restrições para a sua ciados aos testes de software, iremos a Os defeitos normalmente são introdu-
execução e um resultado ou compor- seguir discutir a origem dos defeitos em zidos na transformação de informações
tamento esperado (CRAIG e JASKIEL, um software. entre as diferentes fases do ciclo de de-
2002). senvolvimento de um software. Vamos
• Procedimento de Teste. é uma descri- Defeitos no desenvolvimento seguir um exemplo simples de ciclo de
ção dos passos necessários para executar de software vida de desenvolvimento de software:
um caso (ou um grupo de casos) de teste No processo de desenvolvimento de os requisitos expressos pelo cliente são
(CRAIG e JASKIEL, 2002). software, todos os defeitos são humanos relatados textualmente em um docu-
• Critério de Teste: serve para selecionar e, apesar do uso dos melhores métodos mento de especificação de requisitos.
e avaliar casos de teste de forma a aumen- de desenvolvimento, ferramentas ou Esse documento é então transformado

Edição 01 – Engenharia de Software Magazine 55


em casos de uso, que por sua vez foi o Níveis de teste de software • Teste de Sistema: avalia o software em
artefato de entrada para o projeto do O planejamento dos testes deve ocorrer busca de falhas por meio da utilização do
software e definição de sua arquite- em diferentes níveis e em paralelo ao mesmo, como se fosse um usuário final.
tura utilizando diagramas de classes desenvolvimento do software (Figura 3). Dessa maneira, os testes são executados nos
da UML. Em seguida, esses modelos Buscando informação no Livro “Qualidade mesmos ambientes, com as mesmas con-
de projetos foram usados para a cons- de Software – Teoria e Prática” (ROCHA et dições e com os mesmos dados de entrada
trução do software em uma linguagem al., 2001), definimos que os principais níveis que um usuário utilizaria no seu dia-a-dia
que não segue o paradigma orientado a de teste de software são: de manipulação do software. Verifica se o
objetos. Observe que durante esse pe- • Teste de Unidade: também conhecido produto satisfaz seus requisitos.
ríodo uma série de transformações foi como testes unitários. Tem por objetivo • Teste de Aceitação: são realizados
realizada até chegarmos ao produto fi- explorar a menor unidade do projeto, pro- geralmente por um restrito grupo de usu-
nal. Nesse meio tempo, defeitos podem curando provocar falhas ocasionadas por ários finais do sistema. Esses simulam
ter sido inseridos. A Figura 2 expressa defeitos de lógica e de implementação em operações de rotina do sistema de modo
exatamente a metáfora discutida nesse cada módulo, separadamente. O universo a verificar se seu comportamento está de
parágrafo. alvo desse tipo de teste são os métodos acordo com o solicitado.
Essa série de transformações resultou dos objetos ou mesmo pequenos trechos • Teste de Regressão: Teste de regressão
na necessidade de realizar testes em dife- de código. não corresponde a um nível de teste, mas
rentes níveis, visando avaliar o software • Teste de Integração: visa provocar é uma estratégia importante para redução
em diferentes perspectivas de acordo com falhas associadas às interfaces entre os de “efeitos colaterais”. Consiste em se
o produto gerado em cada fase do ciclo de módulos quando esses são integrados aplicar, a cada nova versão do software
vida de desenvolvimento de um softwa- para construir a estrutura do software ou a cada ciclo, todos os testes que já
re. Esse será o foco da seção seguinte. que foi estabelecida na fase de projeto. foram aplicados nas versões ou ciclos
de teste anteriores do sistema. Pode ser
aplicado em qualquer nível de teste.

Dessa forma, seguindo a Figura 3, o


planejamento e projeto dos testes devem
ocorrer de cima para baixo, ou seja:
1. Inicialmente é planejado o teste de
aceitação a partir do documento de re-
quisitos;
2. Após isso é planejado o teste de sis-
tema a partir do projeto de alto nível do
software;
3. Em seguida ocorre o planejamento
dos testes de integração a partir o projeto
detalhado;
4. E por fim, o planejamento dos testes
a partir da codificação.

Figura 2. Diferentes Interpretações ao longo do ciclo de desenvolvimento de um software Já a execução ocorre no sentido inverso.
Conhecidos os diferentes níveis de teste,
a partir da próxima seção descreveremos
as principais técnicas de teste de software
existentes que podemos aplicar nos dife-
rentes níveis abordados.

Técnicas de teste de software


Atualmente existem muitas maneiras
de se testar um software. Mesmo assim,
existem as técnicas que sempre foram
muito utilizadas em sistemas desenvol-
vidos sobre linguagens estruturadas
que ainda hoje têm grande valia para
os sistemas orientados a objeto. Apesar
de os paradigmas de desenvolvimento
serem diferentes, o objetivo principal
Figura 3. Modelo V descrevendo o paralelismo entre as atividades de desenvolvimento e teste de software
(CRAIG e JASKIEL, 2002) destas técnicas continua a ser o mesmo:

56 Engenharia de Software Magazine – Introdução a Teste de Software


V ERIF I C A ÇÃ O, VA LI DA Ç Ã O E T EST E

encontrar falhas no software. nadas por estruturas de condições RE QU S IITO


são IS TOS S
As técnicas de teste são classificadas de testadas. A Listagem 1 apresenta um
acordo com a origem das informações código fonte, extraído de (BARBOSA et
utilizadas para estabelecer os requisitos al., 2000) que descreve um programa de
de teste. Elas contemplam diferentes exemplo que deve validar um identifica-
perspectivas do software e impõe-se a dor digitado como parâmetro, e a Figura
necessidade de se estabelecer uma estra- 5 apresenta o grafo de programa extraído
tégia de teste que contemple as vantagens a partir desse código, também extraído Figura 4. Técnica de Teste Estrutural.
e os aspectos complementares dessas téc- de (BARBOSA et al., 2000). A partir do
nicas. As técnicas existentes são: técnica grafo deve ser escolhido algum critério
funcional e estrutural. baseado em algum algoritmo de busca
A seguir conheceremos um pouco mais em grafo (exemplo: visitar todos os nós,
sobre cada técnica, mas iremos enfatizar arcos ou caminhos) para geração dos ca-
alguns critérios específicos para a técnica sos de teste estruturais para o programa
funcional. (PFLEEGER, 2004).
Um exemplo bem prático desta técnica
Técnica Estrutural de teste é o uso da ferramenta livre JUnit
(ou teste caixa-branca) para desenvolvimento de casos de teste
Técnica de teste que avalia o com- para avaliar classes ou métodos desen-
portamento interno do componente de volvidos na linguagem Java. A técnica de
software (Figura 4). Essa técnica trabalha teste de Estrutural é recomendada para
diretamente sobre o código fonte do com- os níveis de Teste da Unidade e Teste da
ponente de software para avaliar aspec- Integração, cuja responsabilidade prin-
tos tais como: teste de condição, teste de cipal fica a cargo dos desenvolvedores
fluxo de dados, teste de ciclos e teste de do software, que são profissionais que
caminhos lógicos (PRESSMAN, 2005). conhecem bem o código-fonte desenvol-
Os aspectos avaliados nesta técnica vido e dessa forma conseguem planejar
de teste dependerão da complexidade os casos de teste com maior facilidade.
e da tecnologia que determinarem a Dessa forma, podemos auxiliar na redu-
construção do componente de software, ção dos problemas existentes nas peque-
cabendo, portanto, avaliação de outros nas funções ou unidades que compõem Figura 5. Grafo de Programa (Identifier.c)
aspectos além dos citados anteriormente. um software. (BARBOSA et al., 2000).
O testador tem acesso ao código fonte
da aplicação e pode construir códigos Teste Funcional (ou teste caixa-preta)
para efetuar a ligação de bibliotecas e Técnica de teste em que o componente
componentes. de software a ser testado é abordado
Este tipo de teste é desenvolvido anali- como se fosse uma caixa-preta, ou seja,
sando-se o código fonte e elaborando-se não se considera o comportamento inter-
casos de teste que cubram todas as pos- no do mesmo (Figura 6). Dados de entrada
sibilidades do componente de software. são fornecidos, o teste é executado e o
Dessa maneira, todas as variações origi- resultado obtido é comparado a um re- Figura 6. Técnica de Teste Funcional.

Listagem 1. Código fonte do programa identifier.c (BARBOSA et al., 2000)

/* 01 */ {
/* 01 */ char achar;
/* 01 */ int length, valid_id;
/* 01 */ length = 0;
/* 01 */ printf (“Digite um possível identificador\n”);
/* 01 */ printf (“seguido por <ENTER>: “);
/* 01 */ achar = fgetc (stdin);
/* 01 */ valid_id = valid_starter (achar);
/* 01 */ if (valid_id)
/* 02 */ length = 1;
/* 03 */ achar = fgetc (stdin);
/* 04 */ while (achar != ‘\n’)
/* 05 */ {
/* 05 */ if (!(valid_follower (achar)))
/* 06 */ valid_id = 0;
/* 07 */ length++;
/* 07 */ achar = fgetc (stdin);
/* 07 */ }
/* 08 */ if (valid_id && (length >= 1) && (length < 6) )
/* 09 */ printf (“Valido\n”);
/* 10 */ else
/* 10 */ printf (“Invalido\n”);
/* 11 */ }

Edição 01 – Engenharia de Software Magazine 57


sultado esperado previamente conhecido. Tipicamente uma condição de entrada identifier.c. Iremos apresentá-lo como
Haverá sucesso no teste se o resultado pode ser um valor numérico específico, exemplo do uso deste critério de teste. Re-
obtido for igual ao resultado esperado. uma faixa de valores, um conjunto de lembrando, o programa deve determinar
O componente de software a ser testado valores relacionados, ou uma condição se um identificador é válido ou não.
pode ser um método, uma função interna, lógica. As seguintes diretrizes podem
um programa, um componente, um con- ser aplicadas: “Um identificador válido deve começar
junto de programas e/ou componentes ou • Se uma condição de entrada especifica com uma letra e conter apenas letras ou
mesmo uma funcionalidade. A técnica uma faixa de valores ou requer um valor es- dígitos. Além disso, deve ter no mínimo
de teste funcional é aplicável a todos os pecífico, uma classe de equivalência válida 1 caractere e no máximo 6 caracteres
níveis de teste (PRESSMAN, 2005). (dentro do limite) e duas inválidas (acima de comprimento. Exemplo: “abc12” (vá-
Um conjunto de critérios de teste pode e abaixo dos limites) são definidas. lido), “cont*1” (inválido), “1soma” (inváli-
ser aplicado aos testes funcionais. A se- • Se uma condição de entrada especifica do) e “a123456” (inválido).”
guir conheceremos alguns deles. um membro de um conjunto ou é lógica,
uma classe de equivalência válida e uma O primeiro passo é a identificação das
Particionamento em classes de inválida são definidas. classes de equivalência. Isso está descrito
equivalência na Tabela 1.
Esse critério divide o domínio de entrada Devemos seguir tais passos para gera- A partir disso, conseguimos especificar
de um programa em classes de equivalên- ção dos testes usando este critério: quais serão os casos de teste necessários.
cia, a partir das quais os casos de teste são 1. Identificar classes de equivalência (é Para ser válido, um identificador deve
derivados. Ele tem por objetivo minimizar um processo heurístico) atender às condições (1), (3) e (5), logo é
o número de casos de teste, selecionando ο condição de entrada necessário um caso de teste válido que
apenas um caso de teste de cada classe, ο válidas e inválidas cubra todas essas condições. Alem disso,
pois em princípio todos os elementos 2. Definir os casos de teste será necessário um caso de teste para
de uma classe devem se comportar de ο enumeram-se as classes de equi- cada classe inválida: (2), (4) e (6). Assim, o
maneira equivalente. Eventualmente, valência conjunto mínimo é composto por quatro
pode-se também considerar o domínio ο casos de teste para as classes válidas casos de teste, sendo uma das opções:
de saída para a definição das classes de ο casos de teste para as classes inválidas T0 = {(a1,Válido), (2B3, Inválido), (Z-12,
equivalência (ROCHA et al., 2001). Inválido), (A1b2C3d, Inválido)}.
Uma classe de equivalência representa Em (BARBOSA et al., 2000) é apresenta-
um conjunto de estados válidos e in- do a aplicação do critério de particiona- Análise do valor limite
válidos para uma condição de entrada. mento por equivalência para o programa Por razões não completamente iden-
tificadas, um grande número de erros
tende a ocorrer nos limites do domínio de
<3
entrada invés de no “centro”. Esse critério
#produtos Fret e Grátis
>80 de teste explora os limites dos valores de
cada classe de equivalência para preparar
> =3 os casos de teste (Pressman, 2005).
Valor comp ra Se uma condição de entrada especifica
uma faixa de valores limitada em a e b,
casos de teste devem ser projetados com
< =80 Cob rar Frete
valores a e b e imediatamente acima e
abaixo de a e b. Exemplo: Intervalo =
Figura 7. Árvore de Decisão – Grafo de Causa-Efeito.
{1..10}; Casos de Teste ‡ {1, 10, 0,11}.
Como exemplo, extraído de (BARBOSA
Condições de Entrada Classes Classes
et al., 2000), iremos considerar a seguinte
Tamanho t do identificador (1) 1 ≤ t ≤6 (2) t > 6 situação:
Primeiro caractere c é uma letra (3) Sim (4) Não
"... o cálculo do desconto por depen-
Só contém caracteres válidos (5) Sim (6) Não dente é feito da seguinte forma: a entra-
Tabela 1. Classes de Equivalência do programa identifier.c. da é a idade do dependente que deve
estar restrita ao intervalo [0..24]. Para
Valor da compra > 60 > 60 <= 60 dependentes até 12 anos (inclusive) o
Causa desconto é de 15%. Entre 13 e 18 (inclu-
#Produtos <3 >= 3 --
sive) o desconto é de 12%. Dos 19 aos
Cobrar frete V V 21 (inclusive) o desconto é de 5% e dos
Efeito 22 aos 24 de 3%..."
Frete grátis V

Tabela 2. Tabela de decisão para o programa de compra pela Internet. Aplicando o teste de valor limite

58 Engenharia de Software Magazine – Introdução a Teste de Software


V ERIF I C A ÇÃ O, VA LI DA Ç Ã O E T EST E

convenc iona l serão obt idos ca- resultado esperado) = {(61,2,“frete REgrá-
QU ISgerenciamento
I TOS e análise de resultados.
s o s de t e st e s e me l h a nt e s a e st e: tis”); (61,3,“cobrar frete”); (60, qualquer Apoio ferramental para qualquer ativi-
{-1,0,12,13,18,19,21,22,24,25}. quantidade,“cobrar frete”)}. dade do processo de teste é importante
como mecanismo para redução de esforço
Grafo de causa-efeito Outras técnicas associado à tarefa em questão, seja ela
Esse critério de teste verifica o efeito Outras técnicas de teste podem e devem planejamento, projeto ou execução dos
combinado de dados de entrada. As ser utilizadas de acordo com necessidades testes. Após ter sua estratégia de teste
causas (condições de entrada) e os efeitos de negócio ou restrições tecnológicas. definida, tente buscar por ferramentas
(ações) são identificados e combinados Destacam-se as seguintes técnicas: teste de que se encaixem na sua estratégia. Isso
em um grafo a partir do qual é montada desempenho, teste de usabilidade, teste de pode reduzir significantemente o esforço
uma tabela de decisão, e a partir desta, carga, teste de stress, teste de confiabilida- de tal tarefa.
são derivados os casos de teste e as saídas de e teste de recuperação. Alguns autores Além disso, é importante ressaltar que
(ROCHA et al., 2001). chegam a definir uma técnica de teste diferentes tipos de aplicações possuem
Esse critério é baseado em quatro pas- caixa cinza, que seria um mesclado do uso diferentes técnicas de teste a serem
sos, que exemplificaremos utilizando o das técnicas de caixa preta e caixa branca, aplicadas, ou seja, testar uma aplicação
exemplo, também extraído de (BARBOSA mas, como toda execução de trabalho web envolve passos diferenciados em
et al., 2000): relacionado à atividade de teste utilizará comparação aos testes de um sistema
simultaneamente mais de uma técnica embarcado. Cada tipo de aplicação possui
“Em um programa de compras pela de teste, é recomendável que se fixem os características especificas que devem ser
Internet, a cobrança ou não do frete é conceitos primários de cada técnica. consideradas no momento da realização
definida seguindo tal regra: Se o valor dos testes. O conjunto de técnicas apre-
da compra for maior que R$ 60,00 e fo- Conclusões sentado neste artigo cobre diversas carac-
ram comprados menos que 3 produtos, O teste de software é uma das atividades terísticas comuns a muitas categorias de
o frete é gratuito. Caso contrário, o frete mais custosas do processo de desenvol- software, mas não é completo.
deverá ser cobrado.” vimento de software, pois pode envolver Para finalizar, podemos destacar ou-
uma quantidade significativa dos recursos tros pontos importantes relacionados às
1. Para cada módulo, Causas (condições de um projeto. O rigor e o custo associado atividades de teste que podemos abordar
de entrada) e efeitos (ações realizadas às a esta atividade dependem principalmente em próximos artigos, tais como processo
diferentes condições de entrada) são rela- da criticalidade da aplicação a ser desenvol- de teste de software, planejamento e con-
cionados, atribuindo-se um identificador vida. Diferentes categorias de aplicações trole dos testes e teste de software para
para cada um. requerem uma preocupação diferenciada categorias específicas de software, como
• Causa: valor da compra > 60 e #pro- com as atividades de teste. aplicações web. Até a próxima!
dutos < 3 Um ponto bastante importante para
• Efeito: frete grátis a viabilização da aplicação de teste de Agradecimentos
2. Em seguida, um grafo de causa- software é a utilização de uma infra- Agradecemos aos professores José Carlos
efeito (árvore de decisão) é desenhado estrutura adequada. Realizar testes Maldonado e Ellen Barbosa por terem
(Figura 7). não consiste simplesmente na geração gentilmente autorizado a publicação deste
3. Neste ponto, transforma-se o grafo e execução de casos de teste, mas envol- material, cujos exemplos utilizados estão
numa tabela de decisão (Tabela 2). vem também questões de planejamento, fundamentados em seus trabalhos.
4. As regras da tabela de decisão são,
então, convertidas em casos de teste. Referências

BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M..
Para a elaboração dos casos de teste,
“Introdução ao Teste de Software. XIV Simpósio Brasileiro de Engenharia de Software”, 2000.
devemos seguir todas as regras extraídas
da tabela. Esse critério deve ser combi- CRAIG, R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002.
nado com os dois outros já apresentados IEEE Standard 610-1990: IEEE Standard Glossary of Software Engineering Terminology, IEEE Press.
neste artigo para a criação de casos de
teste válidos (extraídos das regras) e PFLEEGER, S. L., “Engenharia de Software: Teoria e Prática”, Prentice Hall- Cap. 08, 2004.
inválidos (valores foras da faixa defini- PRESSMAN, R. S.,“Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York,
da). Os casos de teste definidos a seguir NY, 2005.
refletem somente as regras extraídas da RAPPS, S., WEYUKER, E.J., “Data Flow analysis techniques for test data selection”, In: International
tabela de decisão. Fica como exercício Conference on Software Engineering, p. 272-278, Tokio, Sep. 1982.
pensar nos casos de teste inválidos para
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”,
este problema.
Prentice Hall, São Paulo, 2001.
• Casos de Teste (valor, qtd produtos,

Edição 01 – Engenharia de Software Magazine 59

Você também pode gostar