Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
/* 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 */ }
Tabela 2. Tabela de decisão para o programa de compra pela Internet. Aplicando o teste de valor limite
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,