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

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

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

Apresentações semelhantes


Apresentação em tema: "Anti-patterns e Anomalias em Testes Gustavo Alves, 06/out/2007."— 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

4 O que são Design Patterns? O que são design patterns? –Soluções padrão de um problema recorrente Exemplo –Client-Dispatcher-Server Recepcionista Fornecedor Cliente 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. Fornecedor

5 O que são Anti-patterns? 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 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. O que são Anomalias?

7 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. Dá para fazer só mais isso?

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

9 Anti-patterns em Testes 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 Eu testador Eu programador

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

11 Anti-patterns em Testes Tempo 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

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 Deixe para Amanhã o Que Pode Fazer Hoje Anti-patterns em Testes RequisitosAnálise & Projeto Implementação Elaborar casos de testes Preparar ambiente Executar testes Abrir defeitos RequisitosAnálise & Projeto Implementação Elaborar casos de testes Preparar ambiente Executar testesAbrir 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 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 De novo?

18 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) Anomalia em Testes Eu explico

19 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! Execução dos Testes Criação dos Casos de Testes Errado

20 Dúvidas?

21


Carregar ppt "Anti-patterns e Anomalias em Testes Gustavo Alves, 06/out/2007."

Apresentações semelhantes


Anúncios Google