Disciplina Engenharia de Software Testes de Software 
Prof. Esp. Rafael H Mauro 
rafaelherman@yahoo.com.br
Testes de Software
Tópicos 
•Motivação para teste 
–Por que algumas empresas não testam 
•Finalidades dos Testes 
•Formando a Equipe de Teste...
Objetivo 
•Apresentar uma abordagem geral sobre o processo de teste de software, abrangendo seus principais fundamentos té...
Motivação para Teste
Motivação para Teste 
As falhas causam prejuízos 
financeiros 
As falhas causam a perda de 
confiança do cliente
Por que algumas empresas não testam? 
Teste é um 
processo 
caro 
Dificuldade em 
implantar um 
processo de teste 
Desconh...
Motivação para Teste 
•Segundo pesquisas do SEI ( Software Engineering Institute): 
–30% dos projetos são cancelados antes...
Motivação para Teste 
–Prazos excedem mais de 220% 
–Empresas de nível 1 dedicam cerca de 55% dos esforços para corrigir d...
Finalidade dos Testes 
–Verificar se todos os requisitos do sistema foram corretamente implementados 
–Assegurar a satisfa...
Finalidade dos Testes 
“Teste é o processo de demonstrar que erros não estão presentes” 
“O objetivo do teste é demonstrar...
Formando a Equipe de Testes 
Usando a Equipe de Desenvolvimento: 
- O Líder do Projeto de Desenvolvimento será também o Lí...
Formando a Equipe de Testes 
Desvantagens: 
- Diminuição da qualidade do produto final; 
- Tendência a não visualizar cert...
Formando a Equipe de Testes 
Usando Equipe Independente: 
- Esta é uma prática que está sendo cada vez mais usada no merca...
Formando a Equipe de Testes 
Desvantagens: 
- Custos maiores; 
- Aumento no tempo de liberação do software; 
- Tendência d...
Formando a Equipe de Testes 
Usando Equipes de não-especialistas em TI 
- Muitas empresas usam grupos de usuários para faz...
Formando a Equipe de Testes 
Desvantagens: 
- Custos maiores; 
- Falta de familiarização com ferramentas; 
- Abordagens ex...
Estágios de Teste 
Testes de unidade 
Testes de Integração 
Testes de Sistema 
Testes de Aceitação 
Entrega
Ciclo de Vida 
Testes de unidade 
Testes de Integração 
Testes de Sistema 
Testes de Aceitação 
Design detalhado 
Design d...
Tipos de Teste 
Estáticos ou revisões: 
–Revisão técnica: Consiste na apresentação do material para uma equipe de revisão ...
Tipos de Teste 
–Teste Funcional 
–Teste de Recuperação de Falhas 
–Teste de segurança e controle de acesso 
–Teste de per...
Abordagens de Teste 
•Abordagem funcional(“caixa-preta”) 
Os testes são gerados a partir de uma análise dos relacionamento...
Relacionando as atividades de Testes com as de Desenvolvimento 
Quando começar a testar? 
Planejamento de Projeto 
Captura...
Processo de Teste 
- Planejar Testes 
- Especificar Testes 
- Executar Testes 
- Reportar Testes
Planejar Testes 
Entradas 
–Documento de Requisitos 
–Plano de Projeto 
–Modelos de Caso de Uso 
Saídas 
–Plano de Testes
Plano de Testes 
Histórico de Revisões 
1.Objetivo 
2.Requisitos a serem testados 
3.Estágios de Teste 
4.Tipos de Teste 
...
Projetar Testes 
Entradas 
–Documento de Requisitos 
–Plano de Testes 
–Modelo de Caso de Uso 
Saídas 
–Projeto de Testes(...
Projeto de Testes 
Histórico de Revisões 
1. Requisitos a serem testados(prioridade) 
2. Identificador do caso de Teste 
3...
Execução de Testes 
Entradas 
–Projeto de Testes 
–Código executável do sistema 
Saídas 
–Planilha de Teste
Relatório de Testes 
- Registrar resultados 
- Avaliar resultados 
- Encaminhar ao desenvolvedor responsável
Gerenciamento de bugs 
Classificação de defeitos: 
1.Faltante: O defeito ocorre em virtude da falta parcial ou total de um...
Gerenciamento de bugs 
Ciclo de vida de um defeito
Ferramentas de Teste 
- Automatizam atividades do processo de teste 
- Podem nos auxiliar em todas as atividades do proces...
Ferramentas de Teste 
•O Mantis é uma ferramenta Open Source automatizada escrita em PHP cujo principal objetivo é dar sup...
Página inicial
Relatar caso
Reconhecimento de um defeito
E-mail enviado ao desenvolvedor
Visão por desenvolvedor
Report da correção
Fechamento de um defeito
Referências 
•ACKERMAN, A., BUCHWALD, L., LEWSKI, F., 1989, “Software Inspections: An Effective Verification Process”, IEE...
Fim da Apresentação
Próximos SlideShares
Carregando em…5
×

4 engenharia de software

390 visualizações

Publicada em

Unip

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
390
No SlideShare
0
A partir de incorporações
0
Número de incorporações
77
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

4 engenharia de software

  1. 1. Disciplina Engenharia de Software Testes de Software Prof. Esp. Rafael H Mauro rafaelherman@yahoo.com.br
  2. 2. Testes de Software
  3. 3. Tópicos •Motivação para teste –Por que algumas empresas não testam •Finalidades dos Testes •Formando a Equipe de Testes –Usando a Equipe de Desenvolvimento –Usando uma Equipe independente –Usando uma Equipe de não-especialistas em TI •Relacionando as atividades de Testes com as de Desenvolvimento •Processo de Teste –Planejar Testes –Especificar Testes –Executar Testes –Reportar Testes •Gerenciamento de Bugs •Ferramentas de Teste –Mantis
  4. 4. Objetivo •Apresentar uma abordagem geral sobre o processo de teste de software, abrangendo seus principais fundamentos técnicos e gerenciais. Além disso, serão apresentados os principais conceitos necessários para um bom entendimento sobre as atividades de teste.
  5. 5. Motivação para Teste
  6. 6. Motivação para Teste As falhas causam prejuízos financeiros As falhas causam a perda de confiança do cliente
  7. 7. Por que algumas empresas não testam? Teste é um processo caro Dificuldade em implantar um processo de teste Desconhecem a relação custo/benefíc io Só se preocupam com teste na fase final do projeto Desconhecem técnicas de teste adequadas
  8. 8. Motivação para Teste •Segundo pesquisas do SEI ( Software Engineering Institute): –30% dos projetos são cancelados antes de serem finalizados –70% dos projetos falham nas entregas das funcionalidades esperadas; –Os custos dos projetos extrapolam mais de 180% dos valores previstos;
  9. 9. Motivação para Teste –Prazos excedem mais de 220% –Empresas de nível 1 dedicam cerca de 55% dos esforços para corrigir defeitos –Esses índices vão sendo gradativamente reduzidos à medida que elas adotam um modelo de qualidade
  10. 10. Finalidade dos Testes –Verificar se todos os requisitos do sistema foram corretamente implementados –Assegurar a satisfação do cliente com o produto desenvolvido –Assegurar, na medida do possível, a qualidade e a corretude do software produzido –Reduzir custos de manutenção corretiva e retrabalho
  11. 11. Finalidade dos Testes “Teste é o processo de demonstrar que erros não estão presentes” “O objetivo do teste é demonstrar que um programa executa suas funções corretamente” “Teste é o processo de criação de confiança de que o programa faz o que ele tem que fazer” Teste é o processo de executar um programa com a intenção de encontrar defeitos
  12. 12. Formando a Equipe de Testes Usando a Equipe de Desenvolvimento: - O Líder do Projeto de Desenvolvimento será também o Líder do Projeto de Testes; - A Equipe de Teste é a mesma Equipe de Desenvolvimento; - Os Testes serão executados através de rodízios, onde nunca a pessoa que desenvolveu o módulo executará testes no próprio modulo.
  13. 13. Formando a Equipe de Testes Desvantagens: - Diminuição da qualidade do produto final; - Tendência a não visualizar certos defeitos do projeto (testes de sucesso); - Tendência a informalidade na execução dos testes; - Dificuldade de conciliar os cronogramas das equipes de desenvolvimento; - Falta de conhecimento do negócio da equipe que for executar os testes.
  14. 14. Formando a Equipe de Testes Usando Equipe Independente: - Esta é uma prática que está sendo cada vez mais usada no mercado; - Equipes especializadas em teste produzem resultados, em termos de qualidade do software, muito melhores; - Essas equipes possuem um treinamento adequado para executar com qualidade os testes e estão bastante familiarizadas com as suas ferramentas e metodologias.
  15. 15. Formando a Equipe de Testes Desvantagens: - Custos maiores; - Aumento no tempo de liberação do software; - Tendência da equipe de desenvolvimento em relaxar na parte que lhe cabe (teste unitário e de integração); - Divergências entre as duas equipes.
  16. 16. Formando a Equipe de Testes Usando Equipes de não-especialistas em TI - Muitas empresas usam grupos de usuários para fazer o chamado trabalho de homologação do software ou o seu teste de aceitação; - A perspectiva é sempre a do negócio, ou seja, garantir que o software foi desenvolvido de acordo com os requisitos que foram estabelecidos pelo negócio.
  17. 17. Formando a Equipe de Testes Desvantagens: - Custos maiores; - Falta de familiarização com ferramentas; - Abordagens exclusivas do negócio, esquecendo aspectos técnicos do teste.
  18. 18. Estágios de Teste Testes de unidade Testes de Integração Testes de Sistema Testes de Aceitação Entrega
  19. 19. Ciclo de Vida Testes de unidade Testes de Integração Testes de Sistema Testes de Aceitação Design detalhado Design da arquitetura Requisitos do sw/hw Requisitos de usuário Implementação
  20. 20. Tipos de Teste Estáticos ou revisões: –Revisão técnica: Consiste na apresentação do material para uma equipe de revisão onde será feita a análise do produto de trabalho; –Inspeção: Consiste na verificação dos produtos do software e processo estão de acordo com os padrões, guidelines, especificações e procedimentos;
  21. 21. Tipos de Teste –Teste Funcional –Teste de Recuperação de Falhas –Teste de segurança e controle de acesso –Teste de performance –Teste de estresse –Teste de configuração ou portabilidade –Teste de interface com o usuário –Teste de regressão
  22. 22. Abordagens de Teste •Abordagem funcional(“caixa-preta”) Os testes são gerados a partir de uma análise dos relacionamentos entre os dados de entrada e de saída •Abordagem estrutural(“caixa-branca”) Os testes são executados a partir de uma análise dos caminhos lógicos possíveis de serem executados.
  23. 23. Relacionando as atividades de Testes com as de Desenvolvimento Quando começar a testar? Planejamento de Projeto Captura de Requisitos Análise e Projeto Implementação Planejar Testes Projetar Testes Implementar Testes Build Build Executar Testes Avaliar Testes Gerenciar Defeitos
  24. 24. Processo de Teste - Planejar Testes - Especificar Testes - Executar Testes - Reportar Testes
  25. 25. Planejar Testes Entradas –Documento de Requisitos –Plano de Projeto –Modelos de Caso de Uso Saídas –Plano de Testes
  26. 26. Plano de Testes Histórico de Revisões 1.Objetivo 2.Requisitos a serem testados 3.Estágios de Teste 4.Tipos de Teste 5.Abordagens de Teste 6.Critérios de parada/aceitação 7.Recursos 8.Matriz de Responsabilidade 9.Cronograma
  27. 27. Projetar Testes Entradas –Documento de Requisitos –Plano de Testes –Modelo de Caso de Uso Saídas –Projeto de Testes(casos e procedimentos) –Planilha de Teste
  28. 28. Projeto de Testes Histórico de Revisões 1. Requisitos a serem testados(prioridade) 2. Identificador do caso de Teste 3.Requisitos Associados 3.Casos de Teste 3.Tipo de Teste 4. Pré-condição 4.Dados de entrada 5.Procedimento 6.Resultado esperado 7.Status do teste
  29. 29. Execução de Testes Entradas –Projeto de Testes –Código executável do sistema Saídas –Planilha de Teste
  30. 30. Relatório de Testes - Registrar resultados - Avaliar resultados - Encaminhar ao desenvolvedor responsável
  31. 31. Gerenciamento de bugs Classificação de defeitos: 1.Faltante: O defeito ocorre em virtude da falta parcial ou total de um requisito; 2.Errado: O defeito ocorre porque o requisito foi implementado corretamente; 3.Acréscimo:O defeito ocorre em virtude de um comportamento ou elemento que foi implementado mas não foi especificado no requisito.
  32. 32. Gerenciamento de bugs Ciclo de vida de um defeito
  33. 33. Ferramentas de Teste - Automatizam atividades do processo de teste - Podem nos auxiliar em todas as atividades do processo de teste Ferramentas de planejamento e projeto de testes: •Elaborar plano de testes. Ex: Project •Projetar testes:Excel, TestManager •Executar testes:Excel, TestManager •Avaliar testes:Excel, TestManager •Implementação: Junit(unidade), Jtest e C++Test (Análise estática de código) •Gerência de defeitos: Bugzilla, Mantis
  34. 34. Ferramentas de Teste •O Mantis é uma ferramenta Open Source automatizada escrita em PHP cujo principal objetivo é dar suporte ao processo de gestão de defeitos. •Website do Mantis http://www.mantisbt.org
  35. 35. Página inicial
  36. 36. Relatar caso
  37. 37. Reconhecimento de um defeito
  38. 38. E-mail enviado ao desenvolvedor
  39. 39. Visão por desenvolvedor
  40. 40. Report da correção
  41. 41. Fechamento de um defeito
  42. 42. Referências •ACKERMAN, A., BUCHWALD, L., LEWSKI, F., 1989, “Software Inspections: An Effective Verification Process”, IEEE Software, vol. 6, no. 3, pp.31-37. •KALINOWSKI, M., SPÍNOLA, R.O., TRAVASSOS, G.H., Infra-Estrutura Computacional para Apoio ao Processo de Inspeção de Software. No: Simpósio Brasileiro de Qualidade de Software, 2004, Brasília. •BOEHM, B. W., BASILI, V.R., 2001, “Software Defect Reduction Top 10 List.”, IEEE Computer 34 (1): 135-137. •BOEHM, B.W., ABTS, C., BROWN, A.W., CHULANI, S., CLARK, B.K., HOROWITZ, E., MADACHY, R., REIFER, D., STEECE, B., 2000, Software Cost •Estimation with COCOMO II, Prentice Hall. BOEHM, B.W., 1981, Software Engineering Economics, Prentice Hall. •CIOLKOWSKI, M., LAITENBERGER, O., BIFFL, S., 2003, “Software Reviews: The State of the Practice”, IEEE Software 20 (6): 46-51.
  43. 43. Fim da Apresentação

×