Sie sind auf Seite 1von 43

TESTE DE SOFTWARE

Janana Horcio
janainahoracio@hotmail.com

Jos Roberto
ze81.puc.rio@gmail.com

DEFINIO DE TESTE DE SOFTWARE

O teste de software um dos processos da Engenharia de Software que visa atingir um nvel de qualidade de produto superior. O objetivo por paradoxal que parea mesmo de encontrar defeitos no produto, para que estes sejam corrigidos pela equipe de programadores, antes da entrega final.

http://pt.wikipedia.org/wiki/Teste_de_software

Objetivos
Verificar se no existem erros de lgica no projeto, no cdigo, no fluxo de dados, no entendimento de requisitos, de codificao, tipogrficos e de interface em todas as fases do projeto. Permitir a criao de um produto de qualidade e alta confiabilidade

e desempenho.

Verificar se cada etapa do projeto reflete exatamente os requisitos e definies para garantir que o produto encomendado e gerado pelo desenvolvimento seja o mesmo.

LES/PUC-Rio

Histria
A histria da garantia da qualidade no desenvolvimento de software tem paralelo com a histria da qualidade no processo de manufatura de hardware, na fase inicial da computao(dcada de 50 e 60).

Padres de garantia da qualidade foram introduzidas na dcada de 70, quando os sistemas comeam a ser desenvolvidos para atender atividades das quais dependem milhares de pessoas e at milhares de vidas.

LES/PUC-Rio

Definies
QUALIDADE - A norma ISO 8402 define QUALIDADE como: a totalidade de caractersticas de uma entidade que lhe confere a capacidade de satisfazer as necessidades explcitas e implcitas. E possui requisitos classificados como:
Necessrios - O no atendimento gera insatisfao e o atendimento gera indiferena Normais Se o no atendimento gera insatisfao e no atendimento gera satisfao Atrativos Se o no atendimento gera indiferena e o atendimento satisfao

LES/PUC-Rio

Definies
DEFEITO: a falta de conformidade que se observa em um produto quando determinada caracterstica da qualidade comparada com suas especificaes;

FALHA: A incluso da falta pode levar ao sistema a no comportar de acordo com a sua especificao. Quando isto acontece, utiliza-se o termo falha ;

www.indg.com.br/info/glossario/glossario.asp Grtner, F.C.: Fundamentals of fault-tolerant distributed computing in asynchronous environments. ACM Computing Surveys 31
(1999) 1-26

LES/PUC-Rio

Modelagem de Teste

http://www.imasters.com.br/artigo/6117/des_de_software/processo_de_teste_de_software_-_parte_2/
LES/PUC-Rio 7

Modelagem de Teste
Caracterizada pela identificao de todos os elementos necessrios para a implementao de cada caso de testes especificado. Fazem parte desta etapa a modelagem das massas de testes .

http://www.imasters.com.br/artigo/6117/des_de_soft ware/processo_de_teste_de_software_-_parte_2/
LES/PUC-Rio 8

Modelagem de Teste
O detalhamento dessa etapa do processo consiste em:
Criao dos Roteiros de Testes; Detalhamento da Massa de Entrada; Detalhamento da Massa de Sada; Critrio de Tratamento da Massa de Teste; Implementar as Adaptaes da Arquitetura do Testes; Elaborao do Plano de Execuo dos Testes.

Uma parte que no deve ser esquecida a Definio de Responsabilidades;

LES/PUC-Rio

Teste de Software e RUP


O RUP (Rational Unified Process ) um processo de engenharia de software bem definido e bem estruturado. O RUP define claramente quem responsvel pelo que, como as coisas devem ser feitas e quando faz-las. O RUP tambm prov uma estrutura bem definida para o ciclo de vida de um projeto RUP, articulando claramente os marcos essenciais e pontos de deciso [Kroll e Kruchten 2003] .

LES/PUC-Rio

10

Teste de Software e XP
O XP (Extreme Programming) um mtodo de desenvolvimento de software desenvolvido por Kent Bech. apropriado a equipes compostas por menos de 10 membros e co-localizadas. O cdigo coletivo criado em dupla e os testes so escritos antes da codificao, e rodam repetidamente, fazendo com que os desenvolvedores respondam rpido a mudanas nos requisitos.

LES/PUC-Rio

11

Tipos de Teste

Teste Estrutural(ou caixa branca); Teste Funcional(ou caixa preta); Teste de Unidade; Teste de Integrao; Teste de Validao;
Teste de Aceitao; Teste Alfa e Beta;

Teste de Sistema; Teste de Desempenho; Teste de Carga.

LES/PUC-Rio

12

Teste Estrutural (ou caixa branca)


Considera a estrutura interna do software e o cdigo do programa:
Utiliza em sua maioria uma representao do programa denominada Grafos de Fluxo de Controle.

Baseia os critrios por diferentes tipos de componentes para determinar quais parte do sistema executar classificados em:
Critrios baseados em Fluxo de Dados: Ex.: Todos-Ns, TodosArcos, entre outros; Critrios baseados em Fluxo de Controle: Ex.: Todos-Usos, Todos-Potenciais-Usos;

LES/PUC-Rio

13

Ferramenta Utilizada

JaBUTi (Java Bytecode Understanding and Testing ):


Dar suporte ao teste estrutural implementando os critrios do teste funcional; possvel importar casos de teste no formato do framework JUnit; A realizao do teste feita sobre o bycode Java e no sobre o cdigo fonte; Suporta os critrios :
Todos-ns; Todos-arcos; Todos-usos; Todos-potenciais-usos.

LES/PUC-Rio

14

Teste Funcional (ou caixa preta )

Verifica o sistema, o seu processo interno pela sua interao atravs da Graphic User Interface(GUI) e da anlise dos resultados. Assegura s funcionalidades do programa incluindo dados de entrada, processamento e dados de sada. Utiliza procedimentos pr-definidos pelos Casos de Teste das respectivas funcionalidades.

LES/PUC-Rio

15

Ferramenta Utilizada

Selenium IDE:
Ferramenta utilizada para testar aplicaes web . Existem dois componentes.
Selenium RC recebe as chamadas http e executa os testes. Selenium IDE- extenso do firefox que possibilita a criao de testes

LES/PUC-Rio

16

Teste de Unidade
Baseado nos teste de caixa branca; Utiliza como referncia o Modelo de Desenho do Software; D embasamento para o Teste de Integrao; Os casos de teste utilizados podem ser aplicados em outros projetos.
Diagrama de teste de laos

LES/PUC-Rio

17

Ferramenta
JUnit Framework open-source criado por Eric Gamma e Kent Beck para criao de testes automatizados na linguagem de programao Java; Checa os resultados dos testes e fornece uma resposta imediata; Permite que o programador perca menos tempo depurando seu cdigo; No h a necessidade de para o desenvolvimento, e existem vrios exemplos por ser amplamente utilizado pela comunidade de cdigo-aberto.

LES/PUC-Rio

18

Teste de Integrao
Responsvel por testar vrias partes do sistema e assegurar que elas funcionem juntas, conforme as especificaes. Tcnica para construir a arquitetura do software enquanto realiza-se testes para observar se existem erros.

Existe duas abordagens que podem ser adotadas:


Incremental No-Incremental

LES/PUC-Rio

19

Teste de Integrao
Tcnica sistemtica de testes para descobrir erros associado a interface assegurando a ausncia de faltas, sobreposies ou conflito de funcionalidades, integrando unidades j testadas. Possui duas abordagens:
Abordagem Incremental:
Programa construdo e testado em pequenos segmentos; A correo de erros torna-se fcil

Abordagem No-Incremental:
O programa testado como um todo ; Usa a abordagem Big-Bang; O isolamento das causas de erros difcil, sendo assim as correes tambm so mais difceis.

LES/PUC-Rio

20

Teste de Integrao
Abordagem Incremental

A T1 T2 T3 C D T4 B

T1 T2 T3 T4 T5

A B

T1 T1 T2 T3

A B C

Abordagem No - Incremental

LES/PUC-Rio

21

Incremental X No Incremental

Na abordagem incremental h maior facilidade de isolar e corrigir erros, pois o programa testado em pequenos incrementos;

Na abordagem no-incremental o programa testado como um todo dificultando o isolamento do erro e a sua correo.

LES/PUC-Rio

22

Teste de Validao
O Teste de Validao faz uma reviso da configurao tambm chamada de auditoria. Oferece a garantia final de que o software atende a todas as exigncias funcionais, comportamentais e de desempenho. A validao conseguida por intermdio de uma srie de teste que demonstram conformidade com os requisitos. Engloba quase todas as categorias de teste para validar os requisitos do usurio(principal, regresso ou aceitao).

LES/PUC-Rio

23

Teste Principal
Verifica os requisitos funcionais do sistema; Inclui
Usabilidade Confiabilidade Desempenho Instalao

LES/PUC-Rio

24

Teste de Regresso
O Teste de Regresso um teste seletivo, de um software que foi modificado ou de interaes anteriores. utilizada nas manutenes de software; O Teste de Regresso no descarta a necessidade de novos teste para as capacidades novas ou alteradas; Muito utilizado durante desenvolvimento interativo e na produo de uma nova instncia de componentes reusveis.

LES/PUC-Rio

25

Teste de Aceitao
Teste realizados geralmente, por uma restrita parcela de usurios finais do sistema; Garante a satisfao do cliente, evitando o comprometimento com sistemas inadequados; Assegura que a aplicao segura e estvel; Assegura que todas as transaes so corretamente integradas no processo de negcio;

LES/PUC-Rio

26

Teste Alfa E Beta


Visam descobrir erros cumulativos que poderiam deteriorar o sistema no decorrer do tempo ; O teste ALFA executado por um cliente nas instalaes do desenvolvedor em ambiente controlado, onde o desenvolvedor acompanha registrando os problemas encontrados; O teste BETA realizado em uma ou mais instalaes do cliente final, sem a interveno do desenvolvedor, sendo assim uma aplicao real do software. Os problemas so reportados regularmente ao desenvolvedor.

LES/PUC-Rio

27

Teste de Sistema
Geralmente conduzido pelo lder do projeto ou por um analista de outro projeto; Varre-se as funcionalidades em busca de falhas ; simulado uma ambiente similar ao que usurio final utilizar no dia-a-dia; Os elementos de softwares so integrados com o ambiente operacional (hardware, software e pessoas) e testados como um todo; tipicamente funcional; Utilizado para identificar a corretude, completude, segurana e qualidade do sistema de software;
LES/PUC-Rio 28

Teste de Desempenho
O desempenho real s pode ser verificado quando todos os componentes e mdulos do sistemas estiverem totalmente integrados; fundamental para assegurar que a aplicao seja adequada quanto a implantao e uso. Verifica comportamento do sistema para funes de transao ou de negcios Mede e avalia o tempo de resposta, o nmero de transaes e outros requisitos sensveis ao tempo.

LES/PUC-Rio

29

Ferramenta Utilizada
Jmeter:
Ferramenta do grupo Apache; Disponibiliza diversos tipos de requisies, assertions e controladores para construo do plano de teste; Suporta requisies dos seguintes tipos de servios;
FTP; HTTP; JDBC; Objeto Java; SOAP/XML-RPC; LDAP; Entre outros tipos.

LES/PUC-Rio

30

Teste de Carga
Submete o sistema a variao de carga de trabalho (grande massa de dados) para medir e avaliar o desempenho e a habilidade de continuar funcionando sob cargas de trabalho diferentes; Tambm avalia as caractersticas do desempenho; Deve simular situaes reais ; Simulao do comportamento de usurios com a ajuda de cenrios;

LES/PUC-Rio

31

Ferramenta Utilizada
DBMONSTER Permite inserir vrios registros aleatoriamente no banco de dados da aplicao permitindo assim avaliar como esta se comporta quando se encontra sobre uma grande carga. Conecta-se com vrios tipos de banco de dados :
MYSQL; POSTGRESQL; ORACLE8i; HSQLDB; Entre outros.

LES/PUC-Rio

32

Normas de Qualidade
Qualidade do Software
ISO 9126, CMMI

Documentao de um Teste de Sistema


IEEE 829

Procedimentos de Teste de Unidade


IEEE 1008

LES/PUC-Rio

33

Conhecimento e Aplicao de Teste

Fonte: Secretaria de Poltica de Informtica (SEPIN, 2004)

LES/PUC-Rio

34

ISO 9126 (NBR 13596) 1991


ISO Intenational Organization for Standardization uma organizao internacional que aglomera os grmios de padronizao/normalizao em 148 pases e representada no Brasil pela ABNT. A ISO 9126 um conjunto de atributos que tm impacto na capacidade do software de manter seu nvel de desempenho dentro de condies estabelecidas por um dado perodo de tempo.

LES/PUC-Rio

35

ISO 9126 (NBR 13596) 1991


So seis grandes grupos de caractersticas, cada um dividido em subcaractersticas .
Funcionalidade: Adequao, Acurcia, Interoperabilidade, Conformidade,Segurana Confiabilidade: Maturidade, tolerncia a falhas, Recuperabilidade Usabilidade:Inteligibilidade, Apreensibilidade,Operacionalidade Eficincia: Comportamento no tempo, Comportamento dos recursos Manutenibilidade: Analisibilidade, Modificabilidade, Estabilidade, Testabilidade Portabilidade: Adaptabilidade, Instabilidade, Conformidade com padres de portabilidade, Substituibilidade

LES/PUC-Rio

36

IEEE 829 Padro de Documentao

Tem por objetivo descrever os documentos necessrios para apoiar a atividade de teste de software;

Os documentos descritos neste padro abrangem o planejamento, especificao e a gerao de relatrios de testes;

LES/PUC-Rio

37

IEEE 829 Padro de Documentao


composto pelos documentos de: Especificao do plano de teste: prescreve o escopo, o plano de ao, os recursos e o cronograma das atividades de teste; Especificao do projeto de teste: refina o que foi definido no plano de teste e identifica as caractersticas que sero testadas; Especificao do caso de teste: detalha cada caracterstica que ser testada;

LES/PUC-Rio

38

IEEE 829 Padro de Documentao

Especificao do procedimento de teste: especifica os passos para execuo do caso de teste; Relatrio de transio de item de teste: identifica os itens que esto sendo enviados para a equipe de testes; Log dos testes (dirio de bordo): prov um histrico cronolgico dos detalhes relevantes da execuo dos testes;

LES/PUC-Rio

39

IEEE 829 Padro de Documentao

Relatrio de incidente: documenta qualquer evento que ocorreu durante o processo de teste e que requer investigao; Relatrio com resumo dos testes: sumariza os resultados dos testes projetados.

LES/PUC-Rio

40

IEEE 1008
Foi desenvolvida para fornecer a base necessria para implementar os procedimentos para os Teste de Unidade; Possui os seguintes objetivos :
Estabelecer um padro para os testes de unidade; Descrever os conceitos sobre engenharia de software na qual esse padro tem base; Servir como guia e recurso para auxiliar na implementao e uso dos testes de unidade dentro de um processo de teste.

LES/PUC-Rio

41

Fases da IEEE 1008


O IEEE 1008 possui trs fases e oito documentos
Planejar abordagem geral, recursos e cronograma; Determinar features a serem testadas; Aperfeoamento do plano de teste.

Desenvolvimento de um plano de teste - Test Planning

Configurar cenrios de testes:


Definio de cenrios de testes; Implementar plano de teste.

Medir os testes de unidade:


Executar os procedimentos de teste; Checar resultados; Avaliar o esforo dos testes.

LES/PUC-Rio

42

Um teste pode mostrar a presena de falhas em um software, mais nunca a sua ausncia.
Djiskstra

? Num testi !!! e Lasqui

LES/PUC-Rio

43