SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Teste do Software
Wagner Zaparoli
wzaparoli@gmail.com
Teste do Software 2
Agenda
Teste do Software 3
Panorama Geral
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
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
trabalho
Inspeçõ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 software
Controlar 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
Iniciar
Encerr
Acomp
Homo
Planej
Prepa
Execu
Gestão de Defeitos
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
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
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)
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)
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
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
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
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
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 Cobertura
Verifica 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 uso
Té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 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
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
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.
Teste do Software 42
Teste do Software
Wagner Zaparoli
wzaparoli@gmail.com

Mais conteúdo relacionado

Mais procurados

Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Mindfire Solutions
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de SoftwareCapgemini
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareCamilo Ribeiro
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesSamanta Cicilia
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de softwareNorton Guimarães
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de RequisitosCloves da Rocha
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testesIsaias Silva
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilAriane Izac
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing MindsetElias Nogueira
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredElias Nogueira
 
Aula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Aula de Sistemas Distribuídos - Padrões de Projeto de MiddlewareAula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Aula de Sistemas Distribuídos - Padrões de Projeto de MiddlewareVictor Hazin da Rocha
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaFrederico Augusto Do Carmo Moreira
 

Mais procurados (20)

Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
Testes de Software
Testes de SoftwareTestes de Software
Testes de Software
 
Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
Introdução a Automação de Teste de Software
Introdução a Automação de Teste de SoftwareIntrodução a Automação de Teste de Software
Introdução a Automação de Teste de Software
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
Ferramentas para testes de software
Ferramentas para testes de softwareFerramentas para testes de software
Ferramentas para testes de software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
Técnicas de Teste
Técnicas de TesteTécnicas de Teste
Técnicas de Teste
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Planejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágilPlanejamento de testes em um mundo ágil
Planejamento de testes em um mundo ágil
 
Workshop Agile Testing Mindset
Workshop Agile Testing MindsetWorkshop Agile Testing Mindset
Workshop Agile Testing Mindset
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Criando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssuredCriando uma arquitetura para seus testes de API com RestAssured
Criando uma arquitetura para seus testes de API com RestAssured
 
Aula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Aula de Sistemas Distribuídos - Padrões de Projeto de MiddlewareAula de Sistemas Distribuídos - Padrões de Projeto de Middleware
Aula de Sistemas Distribuídos - Padrões de Projeto de Middleware
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 

Semelhante a Teste de Software: Conceitos, Processos e Técnicas

Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de softwareFelipe Bugov
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POAAline Zanin
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Leandro Ugioni
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Ricardo Machado
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testeselliando dias
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 

Semelhante a Teste de Software: Conceitos, Processos e Técnicas (20)

Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
3 engenharia de software
3   engenharia de software3   engenharia de software
3 engenharia de software
 
Palestra Fundamentos de Testes - Tche linux POA
Palestra Fundamentos de Testes  - Tche linux POAPalestra Fundamentos de Testes  - Tche linux POA
Palestra Fundamentos de Testes - Tche linux POA
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs Teste de Software - Bluesoft Labs
Teste de Software - Bluesoft Labs
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Ferramentas de Gestão de Testes
Ferramentas de Gestão de TestesFerramentas de Gestão de Testes
Ferramentas de Gestão de Testes
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Teste de software
Teste de software Teste de software
Teste de software
 

Mais de Wagner Zaparoli

Early Warning Systems For Epidemic
Early Warning Systems For EpidemicEarly Warning Systems For Epidemic
Early Warning Systems For EpidemicWagner Zaparoli
 
Transformações_Corporativas
Transformações_CorporativasTransformações_Corporativas
Transformações_CorporativasWagner Zaparoli
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Checklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFChecklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFWagner Zaparoli
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_DesenvolvimentoWagner Zaparoli
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de SoftwareWagner Zaparoli
 

Mais de Wagner Zaparoli (11)

Early Warning Systems For Epidemic
Early Warning Systems For EpidemicEarly Warning Systems For Epidemic
Early Warning Systems For Epidemic
 
Transformações_Corporativas
Transformações_CorporativasTransformações_Corporativas
Transformações_Corporativas
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Qualidade do Software
Qualidade do SoftwareQualidade do Software
Qualidade do Software
 
Checklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFChecklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDF
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_Desenvolvimento
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Manutenção de Software
Manutenção de SoftwareManutenção de Software
Manutenção de Software
 
Ciclo de Vida
Ciclo de VidaCiclo de Vida
Ciclo de Vida
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Gerenciamento_Projetos
Gerenciamento_ProjetosGerenciamento_Projetos
Gerenciamento_Projetos
 

Teste de Software: Conceitos, Processos e Técnicas

  • 1. Teste do Software Wagner Zaparoli wzaparoli@gmail.com
  • 2. Teste do Software 2 Agenda
  • 3. Teste do Software 3 Panorama Geral
  • 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
  • 13. Teste do Software 13 Conceitos
  • 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
  • 29. Teste do Software 29 Taxonomia
  • 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
  • 34. Teste do Software 34 Classificação – IEEE* * IEEE, 2004
  • 35. Teste do Software 35 Métricas
  • 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
  • 39. Teste do Software 39 Tecnologia
  • 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
  • 43. Teste do Software Wagner Zaparoli wzaparoli@gmail.com