Teste de Software Parte 2. Prof. Jonas Potros

Documentos relacionados
Teste de Software. Introdução. Teste de SW -Introdução. Verificação e Validação

Teste de Software Intermediário

Teste de Software. Objetivo: Executar software para revelar erros/falhas ainda não descobertos. Pode gastar 40% do esforço de desenvolvimento

Introdução a Teste de Software

Guia do Processo de Teste Metodologia Celepar

Teste de Software. Planejamento de Teste. Rosemary Silveira Filgueiras Melo

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

Teste de Software. Roberta Coelho

DICIONÁRIO DA ESTRUTURA ANALÍTICA DO PROJETO - SISCOP. Data Versão Descrição Autor

Faculdade de Tecnologia FATEC Centro Paula de Souza

Teste de Software. Estratégias de Teste. Rosemary Silveira Filgueiras Melo

ISO/IEC Processo de ciclo de vida

Versão: 1.0 Doc Manager

Teste de Software. Karen Frigo Busolin Novembro / 2010

DOCUMENTAÇÃO DE TESTE

Estratégias de Testes Parte I

CASOS DE TESTE PALESTRANTE: MARCIA SILVA

Gestão de Testes e Defeitos. Malba Jacob Prudente

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Verificação e Validação

1. A principal razão de dividir o processo de teste em tarefas distintas é:

ENGENHARIA DE SOFTWARE

Aula 20 Testes 3. Alessandro Garcia Leonardo da Silva Sousa OPUS Group/LES/DI/PUC-Rio Dezembro 2016

Teste de Software Parte 1. Prof. Jonas Potros

Práticas Ágeis de Teste

SSC5877 Validação Verificação e Teste de Software

Processos de Software

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Introdução a Testes de Software. Ricardo Argenton Ramos

Desenvolvimento de Projetos

Projeto e Desenvolvimento de Sistemas de Informação

SSC 0721 Teste e Validação de Software

TESTES DE SOFTWARE Lista de Exercício 01. Luiz Leão

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Prof. Dr. Thiago Jabur Bittar

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

14/11/2014. Engenharia de Software. Modelos de software. Modelo Clássico - Cascata

Engenharia de Software. Prof. Raquel Silveira

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

TS04. Teste de Software PLANOS DE TESTE. COTI Informática Escola de Nerds

Visão Geral de Engenharia de Software

Engenharia de Software II

Fundamentos de Teste de Software

PROJETO INTEGRADO AULA 3 INTRODUÇÃO AO GERENCIAMENTO DE PROJETOS PROF.: KAIO DUTRA

Verificação e Validação (V & V)

PDS. Aula 1.4 Modelos de Processo. Prof. Dr. Bruno Moreno

Gerenciamento de Projetos

Prof. Fábio Lúcio Meira

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Testes de software - Teste funcional

Processo de Desenvolvimento de Software

INF014 Análise e Projeto de Sistemas Processos Unificado -RUP

Engenharia de Software II

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

TESTES DE SOFTWARE Unidade 1 Importância do Teste de Software. Luiz Leão

Desenvolvimento de Software

Processo Unificado. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Organização para Realização de Teste de Software

Reuso de Software Aula Maio 2012

Processos de software

ESPECIFICAÇÃO DE PROJETO AUTOR(ES) : João

RUP Unified Process. Profª Jocelma Rios

Testes de Software. Prof. Edjandir C. Costa

Princípios da Engenharia de Software aula 03

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Processo Unificado (PU) Unified Process

Rational Unified Process (RUP)

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

- 8ª Lista de Exercícios -

TESTES DE SOFTWARE. Profa. Maria Auxiliadora

TS03. Teste de Software ESTÁGIOS DO TESTE DE SOFTWARE. COTI Informática Escola de Nerds

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Introdução aos Testes de Software

TESTES DE SOFTWARE Lista de Exercício 02. Luiz Leão

Documento de Requisitos*

Estágio II. Aula 04 Testes Ágeis. Prof. MSc. Fred Viana

Teste de Software. Prof. Camila. Pedro de Assis Sobreira Jr.

Introdução a Gerencia de Projetos

1. Quando algo visível para os usuário finais é um desvio em relação ao especificado ou um comportamento não esperado, isso é chamado de:

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Gerenciamento Objetivo de Projetos com PSM

INF1013 MODELAGEM DE SOFTWARE

Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR

Transcrição:

Teste de Software Parte 2 Prof. Jonas Potros

Conteúdos Processo de Teste Planejamento de Teste

Processo de Teste Independentemente da fase de teste, o processo de teste inclui as seguintes atividades: Planejamento de Teste Análise de Requisitos de Teste (normalmente realizado em conjunto com o Planejamento de Teste) Projeto de Casos de Teste Implementação de Casos de Teste Execução Análise

Planejamento de Teste Questões importantes: Quem deve realizar os testes? O que testar? Que partes devem ser mais cuidadosamente testadas? (Análise de Requisitos de Teste) Quando teste é adequado? Quando testar? Como o teste deve ser realizado?

Quem deve realizar os testes? Desenvolvedores Compartilhamento de Responsabilidades entre Desenvolvedores e Testadores Independentes Testadores Independentes

Quem deve realizar os testes? Desenvolvedor: Código é resultado de seu trabalho. Logo, procurar defeitos é, de certo modo, a destruição do mesmo, e o próprio desenvolvedor não tem motivação psicológica para projetar casos de teste que demonstrem que seu produto tem defeitos (dissonância cognitiva). Dificilmente o desenvolvedor consegue criar um caso de teste que rompa com a lógica de funcionamento de seu próprio código (Koscianski e Soares, 2006). Testador Independente: Assume a perspectiva de teste. Pode representar papéis distintos (testador de unidade, de integração e de sistema). Se responsável por todos os testes, em todas as fases, pode tornar o processo lento e pouco produtivo.

Quem deve realizar os testes? Compartilhamento de Responsabilidades: Divisão por Fases: Desenvolvedores testam unidades, muitas vezes em paralelo com a implementação das mesmas. Testadores independentes testam integração e sistema. Divisão por Atividades do Processo de Teste: Testadores independentes são responsáveis pelo Planejamento, Análise e Projeto de Casos de Teste Desenvolvedores são responsáveis pela construção e execução dos casos de teste.

O que testar? Não testar nada Testar parcialmente Testar tudo

O que testar? Princípio de Pareto adaptado ao teste: 20% dos componentes de software concentram 80% dos defeitos. Esse princípio sugere que os esforços devem ser concentrados nas partes mais importantes e/ou frágeis. Um bom teste é ao mesmo tempo econômico e encontra o máximo de defeitos (Koscianski e Soares, 2006). Análise de Requisitos de Teste: Quais as partes mais importantes? Quais as mais frágeis? Enfim, que partes devem ser mais cuidadosamente testadas?

O que testar? Exemplo - Teste de Unidade: testar todas as unidades? Testar unidades reutilizadas de outros projetos? Utilizar uma abordagem sistemática para selecionar o subconjunto de componentes a ser testado. Algumas diretrizes (McGregor e Sykes, 2001): Pode não ser necessário testar unidades reutilizadas de outros projetos ou de bibliotecas. Algumas unidades não são fáceis de serem testadas individualmente, requerendo drivers e/ou stubs complexos. Concentrar esforços em usos prováveis.

Quanto teste é adequado? Nenhum teste Teste Exaustivo

Quanto teste é adequado? É impossível testar tudo. Testes podem somente mostrar a presença de erros, mas não a sua ausência. Cobertura de Teste pode ser medida pelo menos de duas maneiras (McGregor e Sykes, 2001): Em relação a requisitos: quanto dos requisitos especificados foi testado? Considerar requisitos funcionais (casos de uso, fluxos de eventos) e não funcionais. Em relação à execução de linhas de código (teste de caminhos possíveis).

Quanto teste é adequado? O esforço de teste deve ser compensatório, ou seja, deve haver um balanceamento entre tempo/custo do teste e a quantidade de defeitos encontrados. O número de defeitos encontrados segue uma curva logarítmica, ou seja, embora ainda possam existir defeitos, o esforço para encontrá-los passa a ser muito grande, fazendo com que a atividade de teste comece a ser percebida como muito custosa (Koscianski e Soares, 2006).

Quando testar? Todo dia Na medida em que os componentes são desenvolvidos Testar no final

Quando testar? Teste como uma atividade do processo de software (testar no final) x Teste como um processo paralelo ao processo de desenvolvimento (teste todo dia) Revisões e testes são atividades complementares. Planejar, analisar e projetar testes à medida que o processo de desenvolvimento progride. Utilizar informações do ciclo de vida (incrementos) e dos requisitos (casos de uso) para definir o cronograma de testes.

Quando testar? Cronograma de teste Teste de Unidade: depende da produção das unidades pelo processo de desenvolvimento. Teste de Integração: depende do ciclo de vida (incrementos / iterações) e da estrutura (subsistemas / casos de uso). Pode ser programado em intervalos específicos. Teste de Sistema: sua execução deve ocorrer nas entregas e, portanto, depende do ciclo de vida.

Como testar? Apenas com o conhecimento da implementação (como) Apenas com o conhecimento da especificação (o quê) Usando o conhecimento da especificação e da implementação (o quê e como)

Como testar? Definir técnicas de teste para cada fase (funcional, estrutural, baseado em modelos, baseado em defeitos).

Estimativas e Riscos Como qualquer atividade de planejamento, planejar testes envolve a gerência de riscos e a realização de estimativas de esforço, recursos (pessoas, equipamentos, software), tempo e custo. Fatores que afetam as estimativas / riscos: Software sendo testado: tipo de software, plataforma de implementação etc. Equipamentos e software requeridos para o teste Modelo organizacional (testadores x desenvolvedores) Nível de Cobertura. Usar dados históricos.

Plano de Testes Como qualquer atividade de planejamento, um plano de testes deve ser elaborado, descrevendo o escopo, o processo de teste definido, os recursos alocados, estimativas, cronograma e riscos. Característica específica: deve ser organizado em função dos itens e funcionalidades a serem testados. Exemplo de Modelo de Plano de Teste: Padrão IEEE 829-1998.

Padrão IEEE 829-1998 Identificador único para o plano de testes. Introdução Itens: identifica os itens a serem testado, incluindo versão Funcionalidades: identifica as funcionalidades que serão testadas ou não, bem como os motivos Processo: especifica as principais atividades, técnicas e ferramentas Critérios de aceite: especifica os critérios de aceite para cada item

Padrão IEEE 829-1998 Suspensão: especifica os critérios para suspender parte ou todo o processo de teste Produtos: identifica os artefatos produzidos pelo processo de teste (planos, casos de teste, relatórios etc) Tarefas: detalhamento e dependência entre as atividades Ambiente: identifica as necessidades do ambiente de teste (hardware e software) Responsabilidades: identifica os responsáveis pelas atividades, pelo ambiente de teste e pelos itens de teste

Padrão IEEE 829-1998 Treinamento: especifica as necessidades de treinamento e identifica opções Cronograma Riscos: plano de riscos Aprovações: especifica os nomes e cargos dos responsáveis por aprovar o plano. Devem ser inclusos espaços para assinaturas e datas.

Referências Delamaro, M.E., Maldonado, J.C., Jino, M., Introdução ao Teste de Software, Série Campus SBC, Editora Campus, 2007. Koscianski, A., Soares, M.S., Qualidade de Software, Editora Novatec, 2006. McGregor, J.D., Sykes, D.A., A Practical Guide to Testing Object-Oriented Software, Addison-Wesley, 2001.