Anti-patterns e Anomalias em Testes

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas I
Advertisements

Metodologia de testes Nome: Gustavo G. Quintão
Gerência de Projetos Introdução A Crise do Software
Garantia da Qualidade Mário Eduardo.
Projeto e Execução dos Testes Responsáveis: Filipe Motta Walter Felipe.
Natanael (njsj) Thiago (tan2) Rodrigo (rml2)
Débora da Silva Orientadora: Maria Inés Castiñeira
Gerenciamento de Projetos
Prototipação de Software
Tópicos Motivação para teste Por que algumas empresas não testam
Rational Unified Process(RUP)
Engenharia de Software
Teste de software Professor: Sílder Lamas Vecchi.
Mitos e Problemas Relacionados ao Software
Alex de Magalhães Machado
Qualidade de Software Aula 2
Revisões de Software Parte 1
Implementação de Sistemas
Introdução Visão Geral do Método.
Gestão de Defeitos Vanilson Burégio.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Modelos de Processos de Software
Engenharia de Software
Qualidade de Software Aula /1
Rational Unified Process
Quem gostaria de... Ter a participação de todos os funcionários em um projeto? Conseguir informações sobre os clientes e concorrentes? Enxergar novas oportunidades.
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
RUPinho Qualidade de Software
Engenharia de Software
Objetivos demonstrar os processos de Gestão e Fabricação de Software e...
Planejamento e Gerenciamento de Projetos
Visão Geral PRO.NET.
Visão Geral do RUP.
Avaliação do RUP como processo para desenvolvimento de software
Gerenciamento de Configuração
Introdução a Computação Trabalho Final PUC Minas – São gabriel
Prof. Esp. Fernando Barreto
Melhoria de Processos de Software
Análise e Projeto de Sistemas
Oficina Mecânica TADS 2011.
DISCIPLINA Pesquisa de Tecnologias Emergentes - PTE Profa. Eliane
Análise e Projeto de Sistemas
Otimizando sua TI, maximizando seus negócios
Processo de Desenvolvimento de Software
Análise e Desenvolvimento de Software
Fase de Concepção (Início, Planejamento)
PSBD II Projeto de Sistemas de Banco de Dados II
Etapas do Projeto DC.IC.15 Data Revisão: 07/04/2017 Início Fim
The Avengers Testers Team. Diraci Junior Trindade da Silva Analista de Qualidade CWI Software Coordenador do GUTS-rs
Teste de Software Conceitos iniciais.
O Processo Unificado (UP)
RUP - Cap. 5 – Processo Iterativo e Incremental
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Gestão de defeitos.
GERENCIAMENTO DE PROJETOS DE T.I
Modelos de Qualidade para indivíduos e grupos: PSP & TSP
Técnicas e Projeto de Sistemas
Ferramentas da Qualidade
PROCESSO DE DESENVOLVIMENTO DE SOFTWARE AULA 5
Gestão de projetos de Software GTI-16
Engenharia de Software
Desenvolvendo Software com Qualidade e Agilidade Prof. Dr. Fabio Kon Departamento de Ciência da Computação IME - USP
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.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
GERÊNCIA DE REQUISITOS Engenharia de Requisitos Departamento de Informática Pontifícia universidade Católica do Rio de Janeiro (PUC-Rio) Joanna.
Copyright ©2014 Porto Consultoria & Serviços – todos os direitos reservados.
TESTES DE SOFTWARE – AULA 1 Prof. Me. Ronnison Reges Vidal
Elicitar Requisitos Documentar Requisitos Validar Requisitos Estrutura Implementação Implementar Componentes Testar de Unidades Corrigir Defeitos Testar.
Sistemas de Informação Capítulo 6 O uso consciente da tecnologia para o gerenciamento.
Transcrição da apresentação:

Anti-patterns e Anomalias em Testes Gustavo Alves, 06/out/2007

Motivação Existe grande possibilidade de injeção de falhas humanas no processo de desenvolvimento de software O processo de testes faz parte da garantia de qualidade de software (SQA) Os custos associados às falhas de software justificam um processo de testes cuidadoso e bem planejado Conceitos chave

O que são Design Patterns? Soluções padrão de um problema recorrente Exemplo Client-Dispatcher-Server Cliente Fornecedor Problema: O cliente precisa saber os telefones específicos de seus fornecedores. Design Pattern: O cliente sabe apenas o número da empresa. A recepcionista direciona a chamada para a pessoa certa. Cliente Fornecedor Recepcionista Conceitos chave

O que são Anti-patterns? Práticas que inicialmente parecem ser benéficas, mas que trazem mais problemas que benefícios. Exemplo A Bala de Prata Erro: assumir que sua metodologia (ou ferramenta, linguagem, paradigma etc.) favorita consegue resolver qualquer problema. Solução: sempre analisar racionalmente se sua solução técnica preferida realmente é adequada ao problema.

O que são Anomalias? E anomalias? Soluções incorretas, ad-hoc,sem base formal Eventualmente, casos bizarros Exemplo Em um formulário de casos de testes, dados de entrada e dados de saída são colocados no mesmo campo. A diferenciação é feita pelo tamanho da fonte. Dados de saída tem tamanho 7 e dados de entrada, tamanho 8.

Anti-patterns em Testes Dá para fazer só mais isso? Anti-patterns em Testes Escopo Tentacular (Scope Creep) Escopo vai crescendo aos poucos durante o desenvolvimento do projeto Casos de testes não podem ser antecipados Casos patológicos: requisitos mudam durante a execução dos testes Deve-se disciplinar o crescimento do escopo com desenvolvimento iterativo e incremental.

Anti-patterns em Testes Amanhã! Anti-patterns em Testes Deus Deadline Deadline é intocável Implantação na data a qualquer custo Defeitos críticos e severos têm criticidade reduzida para médio Tapar o sol com a peneira é a única saída? Por outro lado, quanto custa um bug em produção? Quanto custa a manutenção de um sistema feito sob pressão (arquitetura frágil, código mal documentado, gambiarras etc.)?

Anti-patterns em Testes Eu testador Eu programador Ser ou Não Ser Equipe de Testes quasi-independente (abaixo da TI) Pressão para entregar (Deus Deadline) impacta os testadores psicologicamente Testadores sofrem pressão para implantar o sistema Encontrar defeitos e fazer o controle de qualidade não são prioritários Testadores enxergam o trabalho como um desenvolvedor (“entregar o sistema” é mais importante que “encontrar os defeitos”) “Bom” testador é o que entrega o sistema no prazo da implantação “Bom” testador é o que não descobre defeitos, pois atrasam a entrega

Anti-patterns em Testes Velocidade Máxima Não há ciclos! Sempre vale a pena continuar a execução dos testes após encontrar um defeito? Equipe de Desenvolvimento Versão 1.0 Defeito Versão 1.1 ? CT1 CT2 CT3 CT4 CT5 CT6 CT7 CT3 CT4 CT5 CT6 ... Equipe de Testes Tempo

Anti-patterns em Testes Me Engana Que Eu Gosto I Prazo, Chicote e Stress (ou Sangue, Suor e Lágrimas) - Patrocinador: Quanto tempo leva para finalizar o projeto? - Analista: 8 meses - Patrocinador: Impossível! Se a equipe trabalhar duro, entregamos em 4 meses. Patrocinador sabe que não vai ser entregue em 4 meses A entrega será em 6 meses (como Patrocinador de fato esperava, mas não queria admitir) Porém, a qualidade do produto e de vida dos funcionários fica comprometida Violência é um remédio difícil de dosar O deadline não deve antecipar mais que 20% do estimado Tempo

Anti-patterns em Testes Me Engana Que Eu Gosto II O Otimista Basta testar o caminho feliz Não temos tempo para testar tudo mesmo (ver Deus Deadline) Se o sistema passar nos Testes (apenas caminho feliz), está pronto para ser implantado Não vai haver erro na produção! Implantar o sistema é sempre mais importante que qualidade! Porém, qual o prejuízo financeiro, de imagem etc. que um sistema defeituoso causa?

Anti-patterns em Testes Me Engana Que Eu Gosto III Independência ou Morte Mito: terceirizar testes é suficiente O desenvolvedor, na qualidade de cliente, interfere demais na Fábrica de Teste terceirizada Pede-se (manda-se?) testar apenas Fluxos Principais Tira a independência dos testes Elimina o senso crítico do testador e seu talento para encontrar defeitos Não melhora a qualidade do sistema. O controle de qualidade continua com os mesmo vícios de antes.

Anti-patterns em Testes Herói Local Sistema testado em ambiente de teste muito diferente da produção Resultado: o sistema passa apenas nos testes, mas não funciona em nenhum outro lugar Variação: execução de testes que são dependentes de ambiente. Se o ambiente de teste for diferente da produção, o sistema pode não funcionar após a implantação Custa mais, investir num ambiente de teste like production ou encontrar erros em produção?

Anti-patterns em Testes Deixe para Amanhã o Que Pode Fazer Hoje Requisitos Análise & Projeto Implementação Elaborar casos de testes Preparar ambiente Executar testes Abrir defeitos Requisitos Análise & Projeto Implementação Elaborar casos de testes Preparar ambiente Executar testes Abrir defeitos

Anti-patterns em Testes Testador Especialista Testador é especialista no sistema Elabora os cenários, casos de testes Executa os próprios casos de testes Testador tende a não documentar os procedimentos do caso de teste - testador simplesmente executa o teste Similar ao programador que codifica sem levantar requisitos e fazer análise Com a falta de documentação NÃO pode-se alocar a equipe a diferentes sistemas Solução: arquitetos de testes elaboram os cenários e casos de testes. Testadores com conhecimento superficial em todos os sistemas executam. Solução adequada para grandes equipes de testes.

Anomalia em Testes Déjà vu “Eu já vi este bug antes!” De novo? Déjà vu “Eu já vi este bug antes!” Tanto a equipe de testes, quanto o desenvolvimento devem versionar Executáveis Casos de Testes Requisitos, etc. Sem este controle, é comum Testar uma versão desatualizada Implantar uma versão desatualizada (aqui ocorre o déjà vu do defeito) Testar baseado em requisitos desatualizados

Anomalia em Testes Cabeça de Programador Eu explico Cabeça de Programador Desenvolvedor elabora os cenários de testes Equipe de Testes detalha os passos e executa o teste Uma das grandes vantagens de ter uma equipe de testes independente é utilizar a perspectiva de testador (caçador de defeitos) ao invés da perspectiva do desenvolvedor (psicologia do teste)

Criação dos Casos de Testes Anomalia em Testes Enganando o processo! O Testador executa os casos de teste e depois documenta os passos. O Testador encontra um Bug, mas não consegue reproduzi-lo! Esta anomalia acontece mais com testes de roteiros! Errado Criação dos Casos de Testes Execução dos Testes

Dúvidas?

gustavo.alves@qualiti.com.br