teste de software

43
Teste do Software Wagner Zaparoli [email protected]

Upload: wagner-zaparoli

Post on 19-Aug-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Teste de Software

Teste do Software

Wagner [email protected]

Page 2: Teste de Software

Teste do Software 2

Agenda

Page 3: Teste de Software

Teste do Software 3

Panorama Geral

Page 4: Teste de Software

Teste do Software 4

Uso dos Sistemas de Informação*

SISI

SI

SI

SI

Reduçãode Custo Alavancar

Investimentos Melhoriado Produtoe Serviços Melhoria

no Processode Decisão Atingir o

Cliente

1960´s 1970´s 1980´s 1990´s

* Tata Consultancy Services, 2005

Page 5: Teste de Software

Teste do Software 5

Cenário de Desenvolvimento Atual

• Ambientes Heterogêneos.

• Interoperabilidade.

• Interação com Usuário Final.

• Mercado Competitivo.

• Time to Market.

• Alto grau de Exigência dos Clientes.

• Maior Complexidade Tecnológica.

• Convergência dos Mercados.

Page 6: Teste de Software

Teste do Software 6

Dificuldades• Ausência de métricas de qualidade de software.

• Deficiência na gerência de requisitos.

• Metodologia de desenvolvimento inexistente ou não utilizada.

• Alto custo de retrabalho para correção de erros.

• Ausência de processos bem definidos para realização de testes.

• Quem desenvolve realiza os testes.

• Inexistência de ambientes de teste e homologação dedicados.

• Gerência de Configuração deficiente ou inexistente.

• Ambiente de produção diferente do desenvolvimento.

• Informações sigilosas nas mãos de terceiros.

Page 7: Teste de Software

Teste do Software 7

Consequências

Erros de software causam prejuízos de 59,5 bilhões de dólares nos EUA e

aproximadamente o dobro no resto do mundo, segundo pesquisa feita pelo American

National Institute of Standards*

* The Economist, 2004

Page 8: Teste de Software

Teste do Software 8

Solução Processo de Qualidade

Metodologias

de Teste de

Software

Gerência de

Configuração

Controle da

Qualidade

Page 9: Teste de Software

Teste do Software 9

Solução Processo de Qualidade

Metodologias

de Teste de

Software

Verificação do produto que garanta o atendimento dos requisitos estabelecidos

Page 10: Teste de Software

Teste do Software 10

Solução Processo de Qualidade

Controle da

Qualidade

Processos e procedimentos usados para monitorar o

trabalhoInspeções, revisões e testes no processo de desenvolvimento de software

Page 11: Teste de Software

Teste do Software 11

Solução Processo de Qualidade

Gerência de

Configuração

Versiona, controla e acompanha as

especificações e alterações de software

Page 12: Teste de Software

Teste do Software 12

Resultado

• Melhoria no processo de desenvolvimento

• Redução de riscos

• Identificação antecipada de erros

• Redução de custos (retrabalho)

• Confiabilidade

• Previsibilidade

Page 13: Teste de Software

Teste do Software 13

Conceitos

Page 14: Teste de Software

Teste do Software 14

O que significa testar?

Testar é exercitar ou simular a operação de um programa ou sistema

Testar é validar se um programa faz o que se espera que ele faça e não faz o que se espera que não faça

Testar é analisar um programa com a intenção de descobrir problemas e defeitos

Testar é medir a qualidade e funcionalidade de um sistema

Page 15: Teste de Software

Teste do Software 15

Testar um softwareControlar a garantia de

sua qualidade==

O que significa testar?

Page 16: Teste de Software

Teste do Software 16

Erro

Engano, alguma coisa feita por humanos

Erro, Defeito e Falha

Defeito

O resultado de um erro, encontrado em documentos ou código

Falha

Diferença indesejável entre o observado e o esperado.

Acontece quando um defeito é executado.

O resultado ou manifestação de um ou mais defeitos.

É percebido pelo usuário final.

Page 17: Teste de Software

FalhaDefeito

Teste do Software 17

Erro, Defeito e Falha

Erro

Incursão humana

Desvio na especificação Comportamento

inconsistente

Page 18: Teste de Software

Teste do Software 18

Processo de Teste

Modelo Antigo

TesteDesenvolvimento

Modelo Contemporâneo

Desenvolvimento

Teste

Page 19: Teste de Software

Teste do Software 19

Processo de Teste

•Permite que defeitos sejam encontrados mais cedo;

•Possibilita economia nos custos de manutenção;

•Reduz riscos ao longo do processo de desenvolvimento;

•Aumenta a previsibilidade e a confiabilidade do processo;

Page 20: Teste de Software

Teste do Software 20

Ciclo de Vida

Gestão de Testes

Inic

iar

Enc

erra

r

Aco

mpa

nhar

H

omol

ogaç

ão

Pla

neja

r

Pre

para

r

Exe

cuta

r

Gestão de Defeitos

Page 21: Teste de Software

Teste do Software 21

Ciclo de VidaIn

icia

r

Objetivos Entender os aspectos técnicos e funcionais do produto ou demanda Conhecer os envolvidos

Momento Entre o fim da especificação dos requisitos e início da especificação funcional e técnica

Page 22: Teste de Software

Teste do Software 22

Ciclo de Vida

Pla

neja

rObjetivos Definir estratégia de teste Detalhar escopo dos testes Planejar alocação de recursos Elaborar cronograma

Momento Entre o fim da especificação funcional e técnica e início da implementação

Page 23: Teste de Software

Teste do Software 23

Ciclo de Vida

Pre

para

r

Objetivos Definir cenários de teste Definir casos de teste

Momento Durante a Construção (codificação)

Page 24: Teste de Software

Teste do Software 24

Ciclo de Vida

Exe

cuta

r

Objetivos Executar os casos de teste Registrar os resultados e evidências dos testes Retestar os erros corrigidos

Momento Ao fim da Construção (codificação)

Page 25: Teste de Software

Teste do Software 25

Ciclo de Vida

Aco

mpa

nhar

H

omol

ogaç

ão

Objetivos Prover suporte aos testes de homologação de usuários

Momento Ao fim do teste integrado

Page 26: Teste de Software

Teste do Software 26

Ciclo de Vida

Enc

erra

r

Objetivos Apresentar resultados e métricas dos testes realizados Obter a aprovação formal da homologação por parte do usuário final em conjunto com o relacionamento de TI

Momento Ao fim da homologação

Page 27: Teste de Software

Teste do Software 27

Ciclo de VidaGestão de Defeitos

Testador

Líder Desenvolvimento

Desenvolvedor

Testar ou Retestar

Encontrar Defeito

Reportar o defeito

Reconhecer o defeito

Priorizar a correção

Agendar a correção

Corrigir o defeito

Reportar a correção

GestorProjeto

Análise Relatórios

Gestão

Page 28: Teste de Software

Teste do Software 28

Ciclo de Vida

Gestão de Testes

GestorTestes

AnalistaTestes

ArquitetoTestes

Testador

Definição Requisitos

Projeto Construção Testes

Procedimentos iniciais

Planejamento e Controle

Especificação dos testes

Reporte do Progresso

Reporte Métricas

Preparação do ambiente e dados

Execução dos testes

Relato dos defeitos

Page 29: Teste de Software

Teste do Software 29

Taxonomia

Page 30: Teste de Software

Teste do Software 30

Métodos/Técnicas

Caixa Branca Caixa Preta

São avaliadas características internas do sistema

São avaliados os requisitos de saída, sem o conhecimento das estruturas

internas

• Particionamento em classes de equivalência • Análise do valor limite • Grafo de causa e efeito

• Teste de condição• Teste de fluxo de dados• Teste de ciclos• Teste de caminhos lógicos

Page 31: Teste de Software

Teste do Software 31

Níveis de Teste

Teste Unitário

Teste de Integração

Teste de Sistema

Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente

Visa provocar falhas associadas às interfaces entre os módulos quando esses são integrados para construir a estrutura do software que foi estabelecida na fase de projeto

Avalia o software em busca de falhas por meio da utilização do mesmo, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software

Teste de Aceitação

São realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado

Page 32: Teste de Software

Teste do Software 32

Teste de Regressão

Estratégia importante para redução de “efeitos colaterais”. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Pode ser aplicado em qualquer nível de teste

Estratégias de Teste

Teste de Mutante

Avaliação da qualidade dos testes com base na determinação de sua capacidade de detectar falhas injetadas artificialmente no código já testado, de modo a mudar a sua lógica mas não a sua sintaxe

Teste de CoberturaVerifica se todas as possíveis condições de execução de um programa são cobertas pelos testes

Page 33: Teste de Software

Teste do Software 33

Classificação – IEEE*

Técnicas baseadas na experiência e intuição dos engenheiros de software

* IEEE, 2004

Técnicas baseadas em especificação

Técnicas baseadas em código

Técnicas baseadas em defeitos

Técnicas baseadas no usoTécnicas baseadas na natureza da aplicação

Técnicas baseadas em seleção e combinação

Page 34: Teste de Software

Teste do Software 34

Classificação – IEEE*

* IEEE, 2004

Page 35: Teste de Software

Teste do Software 35

Métricas

Page 36: Teste de Software

Teste do Software 36

Métricas – Gestão de Defeitos

• Coletadas ao fim de cada ciclo de testes.

• Podem retroalimentar os processos de desenvolvimento e teste.

• Imprescindível para criação de base histórica.

• Exemplos:

Erros, por severidade

Erros por importância

Tempo médio de correção de erros

Reincidências de erros Índice de erros por caso de teste

Cobertura dos casos de teste

Efetividade de detecção de erros

Page 37: Teste de Software

Teste do Software 37

Métricas – Gestão de Defeitos

Desvio de Cronograma

Percentual DesvioDesvio Cronograma

(dias)

99%999999

Prazo Real(dias)

Prazo Planejado(dias)

Desvio de Esforço

Percentual DesvioDesvio Esforço(pessoa por dia)

99%999999

Esforço Real(pessoa por dia)

Esforço Planejado(pessoa por dia)

Tempo Médio de Correção de DefeitosTempo Médio de

Correção

999999

Tempo Total de Correção

Número de Defeitos

Page 38: Teste de Software

Teste do Software 38

Métricas – Gestão de Defeitos

Índice de Reincidência de DefeitosÍndice de

Reincidências

99%9999

Número de Reincidências

Número de Defeitos

Efetividade de Detecção de DefeitosEfetividade de

Detecção

99%9999

Número de Defeitos encontrados em

Homologação

Número de Defeitos encontrados em

Testes

Índice de Defeitos por Caso de TesteÍndice de Defeitos

por Casos de Teste

99%9999

Número de Casos de Teste

Número de Defeitos

Cobertura de Casos de TesteCobertura dos Casos de

Teste

99%9999

Número de Casos de Teste Executados

Número de Casos de Teste Planejados

Page 39: Teste de Software

Teste do Software 39

Tecnologia

Page 40: Teste de Software

Teste do Software 40

Tecnologia – Open Source

Gestão de Defeitos

• Mantis

• Bugzilla

• Scarab

• BugNET

• Trac

Gestão de Testes

• TestLink

• rth

•TestMaster

• TestiTool

• Test Case Web (TCW)

Testes Funcionais

• Watir (Web)

• Canoo WEBTest

• JUnit

• Emma: Coverage

• SoapUI

Performance

• OpenSTA

• WEBLOAD

•The Grinder

• JMeter

Page 41: Teste de Software

Teste do Software 41

Tecnologia – Comercial

Gestão de Defeitos

• FogBugs

• Jira

• yKAP

• Rational ClearCase

Gestão de Testes

• RSI/QA-Teste

• TestLog

• Mercury Quality Center

• TestTrack TCM

• Rational Test Manager

Testes Funcionais

• Rational Functional Tester

• Mercury Quick Test

Professional

• QA Wizard Pro

• Compuware QARun

Performance

• Rational Performance Test

• Empirix e-Load

• Compuware QAload

• Borlando SilkPerformer

Page 42: Teste de Software

Sugestões Bibliográficas

• BARTIE Alexandre, Garantia da Qualidade de Software, São Paulo: Elsevier Editora Ltda, 2002.

• MYERS, Glenford. The Art of Software Testing. New York: Wiley, 1979.

• INTHURN, Cândida. Qualidade & teste de software. 1ª edição, Florianópolis: Visual Books, 2001.

• FUTRELL, Robert T. Quality Software Project Management. Prentice Hall PTR, 2004.

• BLACK, Rex. Critical Testing Processes: Plan, Prepare, Perform, Perfect. Addison Wesley, 2003.

• CRAIG Rick D. Systematic Software Testing. Artech House, 2002.

• FEWSTER, Mark et al. Software Test Automation: Effective use of test execution tools. Addison-

Wesley, 1999.

• MALDONADO, José Carlos et al. Introdução ao Teste de Software. Editora Campus, 2007.

• MOSLEY, Daniel J. et al. Just Enough Software Test Automation. Prentice Hall, 2002.

• DUSTIN, Elfriede, et al. Automated Software Testing: Introduction, Management. Addison-Wesley,

1999.

• SUBRAYA, B. M. Integrated Approach to Web Performance Testing: A Practitioner's Guide. IRM Press,

2006.

• Microsoft ACE Team. Performance Testing Microsoft .NET Web Applications. Microsoft Press, 2002.

• IEEE Computer Society. Swebok – Guide to the Software Engineering Body of Knowledge, 2004.

Teste do Software 42

Page 43: Teste de Software

Teste do Software

Wagner [email protected]