A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Anti-patterns e Anomalias em Testes

Apresentações semelhantes


Apresentação em tema: "Anti-patterns e Anomalias em Testes"— Transcrição da apresentação:

1

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

3 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

4 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

5 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.

6 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.

7 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.

8 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.)?

9 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

10 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

11 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

12 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?

13 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.

14 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?

15 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

16 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.

17 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

18 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)

19 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

20 Dúvidas?

21


Carregar ppt "Anti-patterns e Anomalias em Testes"

Apresentações semelhantes


Anúncios Google