teste de software
TRANSCRIPT
Teste do Software
Wagner [email protected]
Teste do Software 2
Agenda
Teste do Software 3
Panorama Geral
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
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.
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.
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
Teste do Software 8
Solução Processo de Qualidade
Metodologias
de Teste de
Software
Gerência de
Configuração
Controle da
Qualidade
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
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
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
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
Teste do Software 13
Conceitos
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
Teste do Software 15
Testar um softwareControlar a garantia de
sua qualidade==
O que significa testar?
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.
FalhaDefeito
Teste do Software 17
Erro, Defeito e Falha
Erro
Incursão humana
Desvio na especificação Comportamento
inconsistente
Teste do Software 18
Processo de Teste
Modelo Antigo
TesteDesenvolvimento
Modelo Contemporâneo
Desenvolvimento
Teste
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;
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
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
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
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)
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)
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
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
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
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
Teste do Software 29
Taxonomia
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
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
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
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
Teste do Software 34
Classificação – IEEE*
* IEEE, 2004
Teste do Software 35
Métricas
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
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
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
Teste do Software 39
Tecnologia
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
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
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
Teste do Software
Wagner [email protected]