Software Testing Schools (Escolas de Teste)

42
Effektiv Solution Software Testing Schools Rafael Oliveira Nóbrega [email protected]

description

Apresentação sobre as Escolas de Teste (Testing Schools).Todos os créditos para Rafael Oliveira Nóbrega (http://www.linkedin.com/in/rafaelnobrega)

Transcript of Software Testing Schools (Escolas de Teste)

Page 1: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Software Testing Schools

Rafael Oliveira Nó[email protected]

Page 2: Software Testing Schools (Escolas de Teste)

| 2Effektiv Solutions

Agenda

MotivaçãoEscolas de TestesComparativo entre as EscolasReferências

Page 3: Software Testing Schools (Escolas de Teste)

| 3Effektiv Solutions

Observação!

Esta apresentação é baseada num artigo de Bret Pettichord Famoso Consultor de testes

Líder do desenvolvimento da Watir

Co-autor de um dos principais livros de testes: Lessons Learned in Software Testing

Page 4: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Motivação

Page 5: Software Testing Schools (Escolas de Teste)

| 5Effektiv Solutions

Devemos usar IEEE 829?

Padrão para Documentação de Testes PRESSMAN: SIM!

Lisa Crispin: NÃO!

James Bach: SIM e NÃO!

Page 6: Software Testing Schools (Escolas de Teste)

| 6Effektiv Solutions

Qual o papel dos Testes Exploratórios?

Testes onde o design e a execução ocorrem de forma simultânea: PRESSMAN: Complementar os testes

com roteiros!

Lisa Crispin: Complementar os testes unitários automatizados (TDD)!

James Bach: A mais eficiente técnica de testes!

Page 7: Software Testing Schools (Escolas de Teste)

| 7Effektiv Solutions

O que devemos usar para projetar os testes?

PRESSMAN: Apenas os requisitos documentados no SRS!Lisa Crispin: As histórias contadas pelo usuário!James Bach: Qualquer informação sobre o contexto da aplicação!

Page 8: Software Testing Schools (Escolas de Teste)

| 8Effektiv Solutions

Por que dividir Testes em Escolas?

Especialistas de testes não concordam entre si Não é por causa de suas personalidades ou

experiências

Melhorar a base para o estudo Diferenças de valores explicam a

preferência por certas políticas de testes

Page 9: Software Testing Schools (Escolas de Teste)

| 9Effektiv Solutions

Definindo o termo “escola”

Definido por Afinidade

Intelectual

Integração Social

Objetivos em Comum

Composto por Hierarquia de

Valores

Técnicas representativas

Instituições Organizadoras

Page 10: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escolas de Testes

Page 11: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escola Analítica

Page 12: Software Testing Schools (Escolas de Teste)

| 12Effektiv Solutions

Escola Analítica

Muito utilizado em: Indústrias de Telecom

Sistemas Críticos

Instituições Academia

Page 13: Software Testing Schools (Escolas de Teste)

| 13Effektiv Solutions

Principais Crenças

Software é um artefato lógicoTeste é uma ciência baseada em Computação e Matemática Objetivo, rigoroso e compreensivo

Técnicas de testes devem ser objetivas “apenas uma resposta certa”

Teste é uma atividade técnicaPrincipal Pergunta: Quais técnicas deveremos utilizar?

Page 14: Software Testing Schools (Escolas de Teste)

| 14Effektiv Solutions

Escola Analítica

Implicações Requer especificação precisa e detalhada

Testadores verificam se o software está conforme a sua especificação

Qualquer outra coisa não é teste!

Page 15: Software Testing Schools (Escolas de Teste)

| 15Effektiv Solutions

Técnica Exemplo

Testes Caixa Branca Ou “Structural testing”

Diversas métricas de cobertura de código são utilizadas

Provê uma medida objetiva dos testes

Page 16: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escola Convencional

Page 17: Software Testing Schools (Escolas de Teste)

| 17Effektiv Solutions

Escola Convencional

Mais utilizado em Enterprise IT

Desenvolvimento para Governo

Instituições IEEE Standards Boards

Instituições certificadoras de Teste• ISTQB, ALATS, IIST, etc...

Page 18: Software Testing Schools (Escolas de Teste)

| 18Effektiv Solutions

Principais Crenças

Testes devem ser gerenciados Previsível, repetível, planejado

Testes deve ser lucrativo Trabalhadores com baixa capacitação precisam de

um direcionamento

Testes valida o produtoTestes medem o progresso do desenvolvimentoPrincipal Questão: Como podemos medir se estamos progredindo?

Quando teremos terminado o desenvolvimento?

Page 19: Software Testing Schools (Escolas de Teste)

| 19Effektiv Solutions

Técnica de Exemplo

Matriz de Rastreabilidade Ter certeza que todos os requistos foram

testados

Page 20: Software Testing Schools (Escolas de Teste)

| 20Effektiv Solutions

Escola Convencional

Implicações Requer fronteiras claras entre testes e

outras atividades (start/stop criteria)

Incentiva padrões, melhores práticas e certificação

Utilização de variações do V-model • Atividades de testes ocorrem em paralelo.

Desenvolvim

ento

Testes

Page 21: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escola da Qualidade

Page 22: Software Testing Schools (Escolas de Teste)

| 22Effektiv Solutions

Principais Crenças

Qualidade de Software requer disciplinaTestes determina se o processo de desenvolvimento está sendo seguido Cada bug é um problema do PROCESSO!

Testadores devem proteger os usuários dos software ruinsPrincipal Pergunta: Estamos seguindo um bom processo?

Page 23: Software Testing Schools (Escolas de Teste)

| 23Effektiv Solutions

Exemplo

The Gatekeeper O software não está pronto até que o SQA

diga que está pronto!

Page 24: Software Testing Schools (Escolas de Teste)

| 24Effektiv Solutions

Escola da Qualidade

Implicações Preferem Garantia da Qualidade aos Testes

Testes é o ponto de partida para a Melhoria do Processo

Pode alienar os desenvolvedores

Mais utilizado em Empresas burocráticas

Organizações sob estresse

Instituições American Society for Quality (ASQ)

Software Engineering Institute (CMM)

International Standards Organization (ISO)

Page 25: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escola “Context Driven”

Page 26: Software Testing Schools (Escolas de Teste)

| 26Effektiv Solutions

Context Driven

Mais utilizado em Software Comerciais

Market-driven Software

Instituições LAWST Workshops

• Los Altos Workshop on Software Testing• StarEast/StarWest

Page 27: Software Testing Schools (Escolas de Teste)

| 27Effektiv Solutions

Principais Crenças

Software é criado por Pessoas. Pessoas definem o contexto.Teste deve encontrar bugs. “A bug is anything that could bug a

stakeholder”

Teste provê informações para o projetoTeste é uma atividade mental que requer habilidade Teste é multidisciplinarPrincipal Pergunta: Que teste é o mais valioso agora?

Page 28: Software Testing Schools (Escolas de Teste)

| 28Effektiv Solutions

Técnica de Exemplo

Exploratory Testing Execução e Design feitos de forma

concorrente

Rapid learning

Execução baseada em Missão e Estratégias

Difícil Gerenciamento

Ótimo resultados práticos• Eficiência• Eficácia

Page 29: Software Testing Schools (Escolas de Teste)

| 29Effektiv Solutions

Escola “Context Driven”

Implicações Preparado para mudanças. Adapta o

planejamento dos testes baseado nos resultados.

Efetividade das estratégias são verificadas colocando-as em prática

Pesquisas de testes requerem estudos empíricos e psicológicos

Foco na habilidade ao invés da prática/método

Page 30: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Escola Ágil

Page 31: Software Testing Schools (Escolas de Teste)

| 31Effektiv Solutions

Principais Crenças

Software é desenvolvido a partir de uma conversaTestes mostram que uma história está completaTestes devem ser automatizadosPrincipal Pergunta: A história está pronta?

Page 32: Software Testing Schools (Escolas de Teste)

| 32Effektiv Solutions

Técnica de Exemplo

Testes Unitários Usados para Test-Driven Development

(TDD)

Testes unitários são projetados antes do desenvolvimento

Suportado por ferramentas

Page 33: Software Testing Schools (Escolas de Teste)

| 33Effektiv Solutions

Escola Ágil

Implicações Desenvolvedores devem fornecer

frameworks para automação dos testes

Demora para perceber o valor dos testes exploratórios

Mais utilizado em IT Consulting

Desenvolvimento por equipe menores

Instituições Agile Workshops

Page 34: Software Testing Schools (Escolas de Teste)

Effektiv Solutions

Comparativo entre as Escolas

Page 35: Software Testing Schools (Escolas de Teste)

| 35Effektiv Solutions

Escolas de Testes

Analytic School

Encara os testes como uma atividade técnica e rigorosa. Possui muitos proponentes na academia;

Standard School

Encara os testes como uma maneira de medir o progresso com ênfase nos custos e em padrões repetíveis

Quality School

Ênfase no processo, monitoramento dos desenvolvedores, agindo como o gatekeeper

Context-Driven School

Ênfase nas pessoas, procurando os bugs mais importantes para os stakeholders

Agile School

Usa os testes para provar que o desenvolvimento está completo. Ênfase nos testes automatizados

Page 36: Software Testing Schools (Escolas de Teste)

| 36Effektiv Solutions

O que é Teste?

Analytic School: Um branch da ciência da computação e

matemática

Standard School: Um processo gerenciado

Quality School: Um branch da garantia da qualidade

Context-Driven School: Um branch do desenvolvimento

Agile School: Parte do papel do cliente

Page 37: Software Testing Schools (Escolas de Teste)

| 37Effektiv Solutions

Testes sem Especificação

A FAVORContext-Driven School Faça o que for possível

para ser útil

Fazem questionamentos e entrevistas se necessário

Descobrem especificações

Agile School Conversa é mais

importante do que documentação

CONTRAAnalytical School Impossível

Standard School Necessário algum tipo

de especificação

Quality School Porque ela força que

os desenvolvedores sigam o processo

Page 38: Software Testing Schools (Escolas de Teste)

| 38Effektiv Solutions

Certificação de Testes

A FAVORStandard School Torna os testadores

mais fáceis para contratar, treinar e gerenciar

Quality School Aumenta o Status

CONTRAContext-Driven and Agile School Certificações

Existentes são baseados em doutrinas ao invés de habilidades

Analytic School Preferem [pós-]

graduações às certificações

Page 39: Software Testing Schools (Escolas de Teste)

| 39Effektiv Solutions

Conclusões

Não existe escola MELHOR do que outra!Cada escola tem o seu contextoAnalise o seu, e escolha as práticas de cada uma para montar a sua própria solução!

Page 40: Software Testing Schools (Escolas de Teste)

| 40Effektiv Solutions

Perguntas?

Page 41: Software Testing Schools (Escolas de Teste)

| 41Effektiv Solutions

Referências

Context Driven School http://www.context-driven-testing.com/

http://www.testinglessons.com/

Lessons Learned in Software TestingKaner, Bach, and Pettichord

Agile School http://www.testing.com/agile/

http://www.qualitytree.com/

Testing Extreme ProgrammingLisa Crispin and Tip House.

Page 42: Software Testing Schools (Escolas de Teste)

| 42Effektiv Solutions

Referências

Standard School http://www.istqb.org

http://en.wikipedia.org/wiki/IEEE_829

Foundations of Software Testing: ISTQB Certification Graham, Veenendaal, Evans and Rex Black

Analitic School http://en.wikipedia.org/wiki/Model-based_testing

Practical Model-Based Testing: A Tools ApproachMark Utting , Bruno Legeard

Quality School http://en.wikipedia.org/wiki/Quality_assurance

Four Schools of Testing http://www.io.com/~wazmo/papers/four_schools.pdf