escolas de testes de software
TRANSCRIPT
ESCOLAS TESTES DE SOFTWARE
| 2
Agenda
Motivação do estudo Breve descrição dos autores Escolas de Testes Quadro comparativo entre as Escolas Bibliografia
| 3
Detalhes importantes!
Esta apresentação é baseada num artigo de Bret PettichordFamoso Consultor de testesLíder do desenvolvimento da Watir Co-autor de um dos principais livros de testes:
“Lessons Learned in Software Testing”
BREVE DESCRIÇÃO AUTORES
Roger S. Pressman é em engenheiro de software, escritor e consultor, norte-americano, presidente da R.S. Pressman & Associates.
Livros:
1977. Numerical control and computer-aided manufacturing1988. Making software engineering happen: a guide for instituting the technology.1988. Software engineering: a beginner's guide.1991. Software shock: the danger & the opportunity2005. Software engineering: a practitioner's approach2009. Web engineering: a practitioner's approach
Lisa Crispin renomada autora na comunidade de Teste de Software, escritora do livro “Agile Testing” e blogueira no site http://lisacrispin.com/.
James Marcos Bach é testador de software, escritor, consultor e membro do “Board of Directors of the Association for Software Testing”. Também é co-escritor do livro “Lessons Learned in Software Testing”.
MOTIVAÇÃO DO ESTUDO
Devemos usar IEEE 829? Padrão para Documentação de Testes
PRESSMAN: SIM!Lisa Crispin: NÃO!James Bach: SIM e NÃO!
| 7
Qual o papel dos Testes Exploratórios?
Testes onde o design e a execução ocorrem de forma simultânea.PRESSMAN: Complementa os testes com
roteiros!Lisa Crispin: Complementa os testes unitários
automatizados (TDD)!James Bach: A mais eficiente técnica de testes!
| 8
O que devemos usar para projetar os testes? PRESSMAN: Apenas os requisitos
documentados! Lisa Crispin: As histórias contadas pelo
usuário! James Bach: Qualquer informação sobre o
contexto da aplicação!
| 9
| 10
Por que dividir Testes em Escolas? Especialistas de testes não concordam
entre siNã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
| 11
Definindo o termo “escola” Definido por
Afinidade IntelectualIntegração SocialObjetivos em Comum
Composto porHierarquia de ValoresTécnicas
representativasInstituições
Organizadoras
5ESCOLAS DE TESTES
1ESCOLA ANALÍTICA
Escola Analítica Muito utilizado em:
Indústrias de TelecomSistemas Críticos (Aviões, Navios)
Instituições que defendem:Academias
| 14
| 15
Principais Crenças Software é um artefato lógico Teste é uma ciência baseada em
Computação e MatemáticaObjetivo, rigoroso e compreensivo
Técnicas de testes devem ser objetivas“apenas uma resposta certa”
Teste é uma atividade técnica Principal Pergunta:
Quais técnicas deveremos utilizar?
| 16
Escola Analítica Implicações
Requer especificação precisa e detalhadaTestadores verificam se o software está
conforme a sua especificaçãoQualquer outra coisa não é teste!
| 17
Técnica Exemplo Testes Caixa Branca
Ou “Structural testing”Diversas métricas de cobertura de código são
utilizadasProvê uma medida objetiva dos testes
2ESCOLA CONVENCIONAL
| 19
Escola Convencional
Mais utilizado emEnterprise ITDesenvolvimento para Governo
InstituiçõesIEEE Standards BoardsInstituições certificadoras de Teste
○ ISTQB, ALATS, etc...
| 20
Principais Crenças Testes devem ser gerenciados
Previsível, repetível, planejado Testes devem ser lucrativos
Trabalhadores com pouco conhecimento precisam de um direcionamento
Testes valida o produto Testes medem o progresso do desenvolvimento Principal Questão:
Como podemos medir se estamos progredindo? Quando teremos terminado o desenvolvimento?
| 21
Técnica de Exemplo Matriz de Rastreabilidade
Ter certeza que todos os requistos foram testados
| 22
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.
Desenvolvimento
Test
es
3ESCOLA DA QUALIDADE
| 24
Principais Crenças Qualidade de Software requer disciplina Testes determina se o processo de
desenvolvimento está sendo seguidoCada bug é um problema do PROCESSO!
Testadores devem proteger os usuários dos software ruins
Principal Pergunta:Estamos seguindo um bom processo?
| 25
Técnica de Exemplo The Gatekeeper (O Porteiro)
O software não está pronto até que o SQA (Controle de Qualidade de Software) diga que está pronto!
| 26
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 leis e obrigatoriedades
Instituições American Society for Quality (ASQ) Software Engineering Institute (CMM) International Standards Organization (ISO)
4ESCOLA “CONTEXT DRIVEN”
Context Driven (Dirigido ao Contexto)
Mais utilizado emSoftware ComerciaisMarket-driven Software (Software dirigido ao
Mercado) Instituições
LAWST Workshops ○ Los Altos Workshop on Software Testing○ StarEast/StarWest
| 28
| 29
Principais Crenças Software é criado por Pessoas. Pessoas definem o
contexto. Possui 07 princípios básicos. Teste deve encontrar bugs. Teste provê informações para o projeto Teste é uma atividade mental que requer habilidade Teste é multidisciplinar Principal Pergunta:
Que teste é o mais valioso agora?
| 30
07 Princípios Básicos
1. O valor de qualquer prática depende de seu contexto. 2. Existem boas práticas em determinado contexto, mas não existem
melhores práticas. 3. As pessoas, trabalhando em conjunto, são a parte mais importante do
contexto de qualquer projeto. 4. Projetos se desdobram ao longo do tempo de maneiras normalmente
imprevisíveis. 5. O produto é uma solução. Se o problema não foi resolvido, então o
produto não funciona. 6. O bom teste de software é um processo intelectual desafiador. 7. Somente por meio de julgamento e habilidade, realizados
cooperativamente ao longo de todo projeto, somos capazes de fazer as coisas certas nos momentos certos para testar nossos produtos de forma efetiva.
| 31
Técnica de Exemplo Exploratory Testing
Execução e Design feitos de forma concorrenteRapid learningExecução baseada em Missão e EstratégiasDifícil GerenciamentoÓtimo resultados práticos
○ Eficiência○ Eficácia
| 32
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
5ESCOLA ÁGIL
| 34
Principais Crenças Software é desenvolvido a partir de uma
conversa Testes mostram que uma história está
completa Testes devem ser automatizados Principal Pergunta:
A história está pronta?
| 35
Técnica de Exemplo Testes Unitários
Usados para Test-Driven Development (TDD)Testes unitários são projetados antes do
desenvolvimentoSuportado por ferramentas
| 36
Escola Ágil
ImplicaçõesDesenvolvedores devem fornecer frameworks
para automação dos testesDemora para perceber o valor dos testes
exploratórios Mais utilizado em
IT ConsultingDesenvolvimento por equipe menores
InstituiçõesAgile Workshops
COMPARATIVO ENTRE AS ESCOLAS
Escolas de Testes
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.
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;
| 38
| 39
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
| 40
Testes sem Especificação A FAVOR Context-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
CONTRA Analytical School
Impossível Standard School
Necessário algum tipo de especificação
Quality School Porque ela força que os
desenvolvedores sigam o processo
| 41
Certificação de Testes A FAVOR Standard School
Torna os testadores mais fáceis para contratar, treinar e gerenciar
Quality School Aumenta o Status
CONTRA Context-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
Conclusões Não existe escola MELHOR do que outra! Cada escola tem o seu contexto Analise o seu, e escolha as práticas de cada
uma para montar a sua própria solução!
| 42
| 43
| 44
Referências Context Driven School
http://www.context-driven-testing.com/http://www.testinglessons.com/Lessons Learned in Software Testing
Kaner, Bach, and Pettichord
Agile Schoolhttp://www.testing.com/agile/http://www.qualitytree.com/Testing Extreme Programming
Lisa Crispin and Tip House.
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 Approach
Mark 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
| 45
Obrigado...
| 46