Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência

Slides:



Advertisements
Apresentações semelhantes
GERENCIAMENTO DE MANUTENÇÃO
Advertisements

Os projetos.
Adélia Barros Testes de Software Adélia Barros
Diagrama de Fluxo de Dados – DFD
Especificação de Requisitos
Engenharia de Requisitos
Validação de Requisitos
Tópicos Motivação para teste Por que algumas empresas não testam
Rational Unified Process(RUP)
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Processo Desenvolvimento de Software Tradicional
Adaptando um Processo de Desenvolvimento de Software para Análise de Cobertura de Código Prof. Alexandre Marcos Lins de Vasconcelos 06/out/2007.
Análise e Projeto de Sistemas
Testes – visão geral Vanilson Burégio.
Gestão de Defeitos Vanilson Burégio.
Engenharia de Software
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
TRIBUNAL DE JUSTIÇA DE PERNAMBUCO DIRETORIA DE INFORMÁTICA Workshop de Testes PROSOFT Setembro/ 2010 Daniel Leitão Juliana Xavier.
Introdução aos conceitos de Teste de Software
Sistemas Multimídia e Interface Homem-Máquina
Engenharia de Software
Planejamento e Gerenciamento de Projetos
testes de regressão e testes baseados em riscos
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Avaliação Experimental de Técnicas Ágeis de Desenvolvimento
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Processos de Desenvolvimento de Software – Parte 2
Análise e Projeto de Sistemas
IEEE Std IEEE Melhores Práticas para Especificações de Requisitos de Software (ERS)
Engenharia de Software
Introdução à Qualidade
Fabíola Guerra Nakamura Vitor Alcântara Batista
Modelos de Processo de Software
Gerência de Configuração - GC
ANÁLISE E DESENVOLVIMENTO
TESTES DE SOFTWARE Qualidade de software Professores: Juliano Bedin Juliano Bedin Sara Priscila Dutkwicz Leandro Bovi.
Plano de Manutenção <RedMan>
Documentação de Software
Teste de Software Conceitos iniciais.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE – PDS VALIDAÇÃO.
1/113 Contexto para Gerência de Configuração. 2/113 Gerência de Configuração e mudança Objetivo Compreender a importância do uso de mecanismos de gerência.
Engenharia de Software
Gestão de defeitos.
Introdução a Teste de Software
Engenharia de Software Teste de Software Parte 2 Prof. Luís Fernando Garcia
Teste de Software. Sumário Introdução a Teste de Software; Verificação x Validação; Processo de Teste de Software; Suíte de Teste.
Testes Baseados Em Riscos: Uma revisão do Estado-da- Arte Nielson Pontes Outubro, 2010.
Técnicas e Projeto de Sistemas
Projeto Piloto do LabPS Teste do Flip
APS Assessoria de Projetos e Soluções. Completar a etapa de testes identificando eventuais falhas(dentre os critérios de avaliação) e identificando possíveis.
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Métodos Ágeis e Programação Extrema (XP)
Instrutor: Objetivos:.
Desenvolvimento de Sistemas - Fluxo de Testes
Engenharia de Software com o RUP - Workflow de Testes Parte II Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro.
Gerenciamento de Qualidade
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
Sobre a Prime Control A Prime Control é um Centro de Excelência em Qualidade de Software. Nossa missão é desenvolver, aperfeiçoar e realizar serviços.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
Engenharia de Software
Utilizando práticas do PMBOK para implantar o Scrum
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
MAPS: Um Modelo de Adaptação de Processos de Software Ciro Carneiro Coelho Orientador Prof. Hermano Perrelli de Moura.
CIn-UFPE Seleção de Testes de Regressão para Redução de Defeitos Escapados Juliana Mafra – Novembro
QUALIDADE DE SOFTWARE Prof. Carlos Augusto da Costa Carvalho.
Estimativa, Teste e Inspeção de Software
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Transcrição da apresentação:

Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência Polyana Olegário e Liane Bandeira Out/2007

Agenda Design de Casos de Teste Motivação Contextualização Boas Práticas Adotadas no Projeto Considerações Finais Referências

Design de Casos de Teste A atividade de teste de software é composta por diversas atividades: Planejamento e controle Análise e design Implementação e execução Avaliação do critério de saída e reportagem Atividade de fechamento do teste

Design de Casos de Teste De acordo com Pressman [3], os casos de teste são desenhados para encontrar o maior número possível de erros com o mínimo esforço e tempo possível Myers [2] destaca que o projeto de casos de teste é importante, porque testar completamente é impossível, então se deve tentar desenvolver testes tão completos quanto possíveis.

Motivação Melhorar o projeto de casos de teste Permitir que falhas sejam encontradas antecipadamente Reduzir custo para correção de defeitos Melhorar a execução dos testes Diminuir o esforço de execução Reduzir a necessidade de atualização dos testes

Contextualização Projeto de Test Design do C.E.S.A.R ligado ao BTC - Motorola Testes de Integração Casos de testes construídos e agrupados em suítes, que foram aproveitadas de uma versão do produto para outra. Dificuldade em controlar a manutenção destas suítes

Boas Práticas Adotadas no Projeto Sessões de Brainstorm Limitar a Quantidade de Componentes por Caso de Teste Escrever Casos de Teste em Alto Nível Adicionar Toda Informação Necessária ao Caso de Teste Refletir Cenários Comumente Utilizados pelo Usuário Final Evitar Casos de Teste Exaustivos Manter o Time de Execução dos Casos de Teste Constantemente Informados Tornar Casos de Teste aptos para Automação

1. Sessões de Brainstorm Segundo Craig [1], a idéia de uma sessão de brainstorm é criar listas de idéias para ser testadas Objetivos: Compartilhamento do conhecimento adquirido Propor cenários de casos de teste com interações com outras funcionalidades Casos de testes construídos para atingir o máximo de cobertura possível e encontrar o maior número de falhas

1. Sessões de Brainstorm Participação de engenheiros de requisitos e usuários do sistema é importante Resultados para o projeto: Relevante oportunidade para troca de conhecimentos na equipe Melhor visualização da funcionalidade a ser testada

2. Limitar a Quantidade de Componentes No contexto desse trabalho, um componente reúne um conjunto de funcionalidades que compartilham objetivos e recursos em comum. Testes de Integração podem conter diversos componentes sendo testados simultaneamente Dificuldade em determinar qual componente falhou num caso de teste Limitar a quantidade de componentes por caso de teste

2. Limitar a Quantidade de Componentes Resultados para o projeto: Auxilio na execução dos testes e detecção de falhas por componente Melhoria no planejamento da execução dos testes Foco maior no objetivo principal do teste pelos designers e testadores Melhoria da avaliação da cobertura da suíte

3. Escrever Casos de Teste em Alto Nível Objetivo de diminuir alteração nos casos de teste sempre que houver modificação na interface do produto Evitar a verificação de palavras ou frases da interface do sistema Evitar o detalhamento de passos sem objetivo de verificação Resultados para o projeto: Testes mais objetivos, claros e livres de detalhes excessivos Testes mais executáveis Diminuição de atualizações dos testes

4. Adicionar Informação Necessária ao Caso de Teste Foram melhoradas as condições iniciais dos casos de teste Informações sobre assessórios necessários, configurações de ambiente e do dispositivo a ser testado Atualizar informações associadas à mudança do caso de teste Informações sobre data das modificações e identificação de quem modificou o teste Rastrear cada passo de um caso de teste a um requisito

4. Adicionar Informação Necessária ao Caso de Teste Resultados para o projeto: Facilidade para execução e manutenção dos casos de teste Testes executados sem necessidade de auxilio do projetista do teste Fácil identificação de falhas no sistema

5. Refletir Cenários Utilizados pelo Usuário Final Casos de teste mais próximos do comportamento do usuário final podem encontrar mais falhas de alta severidade Atribuir uma classificação ou peso para cada caso de teste Resultados para o projeto: Permite encontrar falhas de maior severidade encontradas Foco do teste em cenários comuns ao cliente.

6. Evitar Casos de Teste Exaustivos Testes grandes tendem a causar dispersão quando executados manualmente Reduzir a quantidade de passos em cada teste Resultados para o projeto: Foco no objetivo principal do teste sem dispersar o testador Menor esforço para execução manual dos testes

7. Manter o Time de Execução Constantemente Informado Melhoria da comunicação Participação dos testadores, assim como outros membros que detenham informação técnica sobre o teste nas inspeções Resultados para o projeto: Maior envolvimento na construção e alteração dos testes

8. Tornar Casos de Teste aptos para Automação Devido a testes com configuração de ambiente muito complexa Para manter testes que realizam verificações usuais no produto Agrupamento dos passos que necessitavam dessa configuração

8. Tornar Casos de Teste aptos para Automação Adaptações nesses casos de testes Resultados para o projeto: Validação de funcionalidades básicas Diminuição do esforço da execução manual

Considerações Finais Com as práticas adotadas, os casos de teste construídos são mais compreensíveis e concisos, capazes de encontrar falhas mais severas e exigem poucas correções durante a execução Melhoria na comunicação entre os designers de teste e os testadores Participação destes nas inspeções.

Considerações Finais Esforço para correção de casos de teste pôde ser minimizado Escrita dos casos de teste em alto nível Foco melhor no objetivo central do teste Limitar a quantidade de componentes e de passos por caso de teste

Considerações Finais Melhoria da qualidade dos casos de teste Construção de casos de teste próximo ao comportamento do usuário final Execução de testes essenciais ao produto e diminuição do esforço de execução da suíte de testes. Automação de casos de teste Diminuição dos custos com a atividade de teste

Referências [1] Craig, R. D., Jaskiel, S. P. Systematic Software Testing, Artech House Publishers, 2002. [2] Myers, G. J. The Art of Software Testing, 2. ed, John Wiley & Sons, Inc., 2004 [3] Pressman, R. S. Engenharia de Software. 5 ed., McGraw-Hill, 2000

polyana.lima@cesar.org.br liane.bandeira@cesar.org.br