Você está na página 1de 55

Introduo ao Teste de

Software
Prof. Dr. Sandro Bezerra - srbo@ufpa.br

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
AGENDA
Verificao e Validao
Motivao para teste
Finalidades dos Testes
Testes de Software: Definies e Conceitos
Formando a Equipe de Testes
Relacionando as atividades de Testes com as de Desenvolvimento
Processo de Teste
Gerenciamento de Bugs
Ferramentas de Teste

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
OBJETIVO

Apresentar uma abordagem geral sobre o


processo de teste de software, abrangendo
seus principais fundamentos tcnicos e
gerenciais. Alm disso, sero apresentados os
principais conceitos necessrios para um bom
entendimento sobre as atividades de teste.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
VERIFICAO E VALIDAO

O desenvolvimento de software est sujeito a diversos


tipos de problemas, os quais acabam resultando na
obteno de um produto diferente daquele que se
esperava.
Muitos fatores podem ser identificados como causas de
tais problemas, mas a maioria deles tem uma nica
origem: erro humano (Delamaro et al., 2007).
As atividades de Verificao e Validao (V&V) visam
garantir, respectivamente, que:
o software est sendo desenvolvido corretamente,
o software que est sendo desenvolvido o software
correto.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
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).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
MOTIVAO PARA TESTE

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
MOTIVAO PARA TESTE

As falhas causam As falhas causam a


prejuzos perda de confiana
financeiros do cliente

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
POR QUE ALGUMAS EMPRESAS NO
TESTAM?

Teste um Desconhecem Dificuldade em


processo caro tcnicas de teste implantar um processo
adequadas de teste

S se preocupam
Desconhecem
com teste na
a relao
fase final do
custo/benefcio
projeto

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
MOTIVAO PARA TESTE

Segundo pesquisas do SEI ( Software Engineering


Institute):
30% dos projetos so cancelados antes de serem

finalizados

70% dos projetos falham nas entregas das

funcionalidades esperadas;

Os custos dos projetos extrapolam mais de 180% dos

valores previstos;
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
MOTIVAO PARA TESTE

Prazos excedem mais de 220%

Empresas de nvel 1 dedicam cerca de 55% dos

esforos para corrigir defeitos

Esses ndices vo sendo gradativamente reduzidos

medida que elas adotam um modelo de qualidade

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FINALIDADE DOS TESTES

Verificar se todos os requisitos do sistema foram

corretamente implementados

Assegurar a satisfao do cliente com o produto

desenvolvido

Assegurar, na medida do possvel, a qualidade e a

corretude do software produzido

Reduzir custos de manuteno corretiva e retrabalho


UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FINALIDADE DOS TESTES

Teste o processo de demonstrar que erros no esto

presentes

O objetivo do teste demonstrar que um programa executa

suas funes corretamente

Teste o processo de criao de confiana de que o programa

faz o que ele tem que fazer

Teste o processo de executar um programa com a

inteno de encontrar defeitos


UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE SOFTWARE

o processo de executar um programa com o objetivo


de encontrar defeitos (Myers, 1979).
, portanto, uma atividade de V&V dinmica.
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.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
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.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PERSPECTIVA DE TESTE

A perspectiva de teste requer que um fragmento de


software demonstre 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?

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE SOFTWARE

Executa-se um programa ou modelo utilizando algumas


entradas em particular e verificar-se se seu
comportamento est de acordo com o esperado.
Caso a execuo apresente algum resultado no
especificado, um defeito foi identificado.
Os dados da execuo podem servir como fonte para a
localizao e correo de defeitos, mas teste no
depurao (Delamaro et al., 2007).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TERMINOLOGIA

Defeito
Instruo ou definio incorreta
Falha
Resultados Incorretos
Erro
Falha resultante de ao humana

Durante o teste observamos as falhas. Na


depurao do cdigo encontramos os defeitos
(causas) para corrigi-los.
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Usando a Equipe de Desenvolvimento:


- O Lder do Projeto de Desenvolvimento ser
tambm o Lder do Projeto de Testes;

- A Equipe de Teste a mesma Equipe de


Desenvolvimento;

- Os Testes sero executados atravs de rodzios,


onde nunca a pessoa que desenvolveu o mdulo
executar testes no prprio modulo.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Desvantagens:
- Diminuio da qualidade do produto final;
- Tendncia a no visualizar certos defeitos do
projeto (testes de sucesso);
- Tendncia a informalidade na execuo dos
testes;
- Dificuldade de conciliar os cronogramas das
equipes de desenvolvimento;
- Falta de conhecimento do negcio da equipe que
for executar os testes.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Usando Equipe Independente:

- Esta uma prtica que est sendo cada vez mais


usada no mercado;

- Equipes especializadas em teste produzem


resultados, em termos de qualidade do software,
muito melhores;

- Essas equipes possuem um treinamento


adequado para executar com qualidade os
testes e esto bastante familiarizadas com as
suas ferramentas e metodologias.
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Desvantagens:

- Custos maiores;
- Aumento no tempo de liberao do software;
- Tendncia da equipe de desenvolvimento em relaxar
na parte que lhe cabe (teste unitrio e de
integrao);
- Divergncias entre as duas equipes.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Usando Equipes de no-especialistas em TI

- Muitas empresas usam grupos de usurios para fazer


o chamado trabalho de homologao do software ou
o seu teste de aceitao;

- A perspectiva sempre a do negcio, ou seja, garantir


que o software foi desenvolvido de acordo com os
requisitos que foram estabelecidos pelo negcio.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FORMANDO A EQUIPE DE TESTES

Desvantagens:

- Custos maiores;

- Falta de familiarizao com ferramentas;

- Abordagens exclusivas do negcio, esquecendo


aspectos tcnicos do teste.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
ESTGIOS DE TESTE

Entrega

Testes de
Aceitao

Testes de
Sistema

Testes de
Integrao

Testes de
unidade

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
CICLO DE VIDA

Requisitos de Testes de
usurio Aceitao

Requisitos Testes de
do sw/hw Sistema

Design da Testes de
arquitetura Integrao

Design Testes de
detalhado unidade

Implementao

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE UNIDADE

Tem como foco as menores unidades de um programa.


Uma unidade um componente de software que no
pode ser subdividido.
Nesta fase esperam-se encontrar defeitos relacionados
a algoritmos incorretos ou mal implementados,
estruturas de dados incorretas ou simples erros de
programao.
Pode ser aplicado medida que ocorre a
implementao das unidades e pode ser realizado pelo
prprio desenvolvedor (Delamaro et al., 2007).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE UNIDADE

Durante os testes de unidade, necessria a


implementao de drivers e stubs.
Um driver um programa que coordena o teste de uma
unidade, sendo responsvel por ler os dados fornecidos
pelo testador, repassar esses dados na forma de
parmetros para a unidade, coletar os resultados
produzidos pela unidade e apresent-los para o
testador.
Um stub um programa que substitui, na hora do teste,
uma unidade, simulando o comportamento dessa
unidade com o mnimo de computao ou manipulao
de dados (Delamaro et al., 2007).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE INTEGRAO

Deve ser realizado aps serem testadas as unidades


individualmente.
A nfase colocada na construo da estrutura do
sistema.
Deve-se verificar se as partes, quando colocadas para
trabalhar juntas, no conduzem a erros.
Requer grande conhecimento das estruturas internas
do sistema e, por isso, geralmente executado pela
prpria equipe de desenvolvimento (Delamaro et al.,
2007).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE SISTEMA/ACEITAO

Uma vez integradas todas as partes, inicia-se o teste


de sistema.
Quando realizado por uma equipe de teste, o objetivo
verificar se as funcionalidades especificadas na
especificao de requisitos foram corretamente
implementadas.
Quando realizado por usurios, o objetivo validar o
sistema (Teste de Aceitao).
uma boa prtica que essa fase seja realizada por
testadores independentes.
Tipicamente, aplica-se teste funcional.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TESTE DE SISTEMA/ACEITAO

Teste de Aceitao
Teste para verificar se o produto de software atende os
Requisitos (Conformidade com os Requisitos)
Testes de Sistema
Combinao de diferentes testes para por a prova todos os
diferentes elementos do sistema (foram adequadamente
integrados? realizam corretamente as funes?)

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TIPOS DE TESTE

Estticos ou revises:

Reviso tcnica: Consiste na apresentao do material

para uma equipe de reviso onde ser feita a anlise do

produto de trabalho;

Inspeo: Consiste na verificao dos produtos do

software e processo esto de acordo com os padres,

guidelines, especificaes e procedimentos;


UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
TIPOS DE TESTE

Teste Funcional

Teste de Recuperao de Falhas

Teste de segurana e controle de acesso

Teste de performance

Teste de estresse

Teste de configurao ou portabilidade

Teste de interface com o usurio

Teste de regresso
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
ABORDAGENS DE TESTE

Abordagem funcional(caixa-preta)

Os testes so gerados a partir de uma anlise dos

relacionamentos entre os dados de entrada e de sada

Abordagem estrutural(caixa-branca)

Os testes so executados a partir de uma anlise dos

caminhos lgicos possveis de serem executados.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
RELACIONANDO AS ATIVIDADES DE TESTES
COM AS DE DESENVOLVIMENTO
Quando comear a testar?

Planejamento Captura de Anlise e Implementao


de Projeto Requisitos Projeto
Build Build

Planejar Projetar Implementar Executar


Testes Testes Testes Testes

Avaliar Testes

Gerenciar Defeitos

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PROCESSO DE TESTE

O processo de teste pode ser definido como um


processo separado, mas intimamente ligado, ao
processo de desenvolvimento. Isso porque 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).

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PROCESSO DE TESTE

- Planejar Testes

- Especificar Testes

- Executar Testes

- Reportar Testes

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PLANEJAR TESTES

Entradas
Documento de Requisitos
Plano de Projeto
Modelos de Caso de Uso

Sadas

Plano de Testes

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PLANO DE TESTES
Histrico de Revises

1.Objetivo

2.Requisitos a serem testados

3.Estgios de Teste

4.Tipos de Teste

5.Abordagens de Teste

6.Critrios de parada/aceitao

7.Recursos

8.Matriz de Responsabilidade

9.Cronograma

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PROJETAR TESTES

Entradas
Documento de Requisitos
Plano de Testes
Modelo de Caso de Uso

Sadas
Projeto de Testes(casos e procedimentos)
Planilha de Teste

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PROJETO DE TESTES

Histrico de Revises

1. Requisitos a serem testados(prioridade)

2. Identificador do caso de Teste

3.Requisitos Associados

3.Casos de Teste

3.Tipo de Teste

4. Pr-condio

4.Dados de entrada

5.Procedimento

6.Resultado esperado

7.Status do teste

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
EXECUO DE TESTES

Entradas
Projeto de Testes
Cdigo executvel do sistema

Sadas
Planilha de Teste

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
RELATRIO DE TESTES

- Registrar resultados

- Avaliar resultados

- Encaminhar ao desenvolvedor responsvel

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
GERENCIAMENTO DE BUGS

Classificao de defeitos:

1. Faltante: O defeito ocorre em virtude da falta parcial ou


total de um requisito;

2. Errado: O defeito ocorre porque o requisito foi


implementado corretamente;

3. Acrscimo: O defeito ocorre em virtude de um


comportamento ou elemento que foi implementado mas
no foi especificado no requisito.
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
GERENCIAMENTO DE BUGS

Ciclo de vida de um defeito

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FERRAMENTAS DE TESTE
- Automatizam atividades do processo de teste
- Podem nos auxiliar em todas as atividades do processo de teste

Ferramentas de planejamento e projeto de testes:


Elaborar plano de testes. Ex: Project
Projetar testes:Excel, TestManager
Executar testes:Excel, TestManager
Avaliar testes:Excel, TestManager
Implementao: Junit(unidade), Jtest e C++Test (Anlise
esttica de cdigo)
Gerncia de defeitos: Bugzilla, Mantis, Redmine
UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FERRAMENTAS DE TESTE

O Mantis uma ferramenta Open Source automatizada


escrita em PHP cujo principal objetivo dar suporte ao
processo de gesto de defeitos.
Website do Mantis
http://www.mantisbt.org

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
PGINA INICIAL

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
RELATAR CASO

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
RECONHECIMENTO DE UM DEFEITO

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
E-MAIL ENVIADO AO DESENVOLVEDOR

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
VISO POR DESENVOLVEDOR

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
REPORT DA CORREO

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
FECHAMENTO DE UM DEFEITO

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
REFERNCIAS

ACKERMAN, A., BUCHWALD, L., LEWSKI, F., 1989, Software


Inspections: An Effective Verification Process, IEEE Software, vol.
6, no. 3, pp.31-37.
KALINOWSKI, M., SPNOLA, R.O., TRAVASSOS, G.H., Infra-
Estrutura Computacional para Apoio ao Processo de Inspeo de
Software. No: Simpsio Brasileiro de Qualidade de Software, 2004,
Braslia.
BOEHM, B. W., BASILI, V.R., 2001, Software Defect Reduction
Top 10 List., IEEE Computer 34 (1): 135-137.
BOEHM, B.W., ABTS, C., BROWN, A.W., CHULANI, S., CLARK,
B.K., HOROWITZ, E., MADACHY, R., REIFER, D., STEECE, B.,
2000, Software Cost
Estimation with COCOMO II, Prentice Hall. BOEHM, B.W., 1981,
Software Engineering Economics, Prentice Hall.
CIOLKOWSKI, M., LAITENBERGER, O., BIFFL, S., 2003,
Software Reviews: The State of the Practice, IEEE Software 20
(6): 46-51.

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br
OBRIGADO!
Dvidas?
Prof. Dr. Sandro Bezerra srbo@ufpa.br

UNIVERSIDADE FEDERAL
DO PAR
www.spider.ufpa.br

Você também pode gostar