O documento discute os processos e técnicas de teste de software, abordando tópicos como ciclo de vida de testes, métodos de teste, métricas e tecnologias. Ele destaca a importância da adoção de processos de qualidade para melhorar o desenvolvimento de software, reduzir custos e riscos.
4. Teste do Software 4
Uso dos Sistemas de Informação*
SI
SI
SI
SI
SI
Redução
de Custo Alavancar
Investimentos Melhoria
do Produto
e Serviços Melhoria
no Processo
de Decisão Atingir o
Cliente
1960´s 1970´s 1980´s 1990´s
* Tata Consultancy Services, 2005
5. 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.
6. 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.
7. 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
8. Teste do Software 8
Solução Processo de Qualidade
Metodologias
de Teste de
Software
Gerência de
Configuração
Controle da
Qualidade
9. 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
10. Teste do Software 10
Solução Processo de Qualidade
Controle da
Qualidade
Processos e procedimentos
usados para monitorar o
trabalho
Inspeções, revisões e testes
no processo de
desenvolvimento
de software
11. 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
12. 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
14. 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
15. Teste do Software 15
Testar um software
Controlar a garantia de
sua qualidade=
O que significa testar?
16. 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.
17. FalhaDefeito
Teste do Software 17
Erro, Defeito e Falha
Erro
Incursão
humana
Desvio na
especificação Comportamento
inconsistente
18. Teste do Software 18
Processo de Teste
Modelo Antigo
TesteDesenvolvimento
Modelo Contemporâneo
Desenvolvimento
Teste
19. 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;
20. Teste do Software 20
Ciclo de Vida
Gestão de Testes
Iniciar
Encerr
Acomp
Homo
Planej
Prepa
Execu
Gestão de Defeitos
21. Teste do Software 21
Ciclo de VidaIniciar
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
22. Teste do Software 22
Ciclo de Vida
Planej Objetivos
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
23. Teste do Software 23
Ciclo de Vida
Prepa
Objetivos
Definir cenários de teste
Definir casos de teste
Momento
Durante a Construção (codificação)
24. Teste do Software 24
Ciclo de Vida
Execu
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)
25. Teste do Software 25
Ciclo de Vida
Acomp
Homo
Objetivos
Prover suporte aos testes de homologação de
usuários
Momento
Ao fim do teste integrado
26. Teste do Software 26
Ciclo de Vida
Encerr
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
27. Teste do Software 27
Ciclo de Vida
Gestã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
Gestor
Projeto
Análise
Relatórios
Gestão
28. Teste do Software 28
Ciclo de Vida
Gestão de Testes
Gestor
Testes
Analista
Testes
Arquiteto
Testes
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
30. 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
31. 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
32. 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 Cobertura
Verifica se todas as possíveis condições de
execução de um programa são cobertas pelos
testes
33. 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 uso
Técnicas baseadas na
natureza da aplicação
Técnicas baseadas em
seleção e combinação
36. 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
37. Teste do Software 37
Métricas – Gestão de Defeitos
Desvio de Cronograma
Percentual Desvio
Desvio Cronograma
(dias)
99%999999
Prazo Real
(dias)
Prazo Planejado
(dias)
Desvio de Esforço
Percentual Desvio
Desvio 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 Defeitos
Tempo Médio de
Correção
999999
Tempo Total de
Correção
Número de
Defeitos
38. 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 Defeitos
Efetividade 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 Teste
Cobertura dos Casos de
Teste
99%9999
Número de
Casos de Teste Executados
Número de
Casos de Teste Planejados
40. 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
41. 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
42. 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.
Teste do Software 42