Effektiv Solutions Software Testing Schools Rafael Oliveira Nóbrega ron@cin.ufpe.br.

Post on 07-Apr-2016

214 views 1 download

Transcript of Effektiv Solutions Software Testing Schools Rafael Oliveira Nóbrega ron@cin.ufpe.br.

Effektiv Solutions

Software Testing Schools

Rafael Oliveira Nóbregaron@cin.ufpe.br

| 2Effektiv Solutions

AgendaMotivaçãoEscolas de TestesComparativo entre as EscolasReferências

| 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

Effektiv Solutions

Motivação

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

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

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

| 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ênciasMelhorar a base para o estudo Diferenças de valores explicam a

preferência por certas políticas de testes

| 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

Effektiv Solutions

Escolas de Testes

Effektiv Solutions

Escola Analítica

| 12Effektiv Solutions

Escola AnalíticaMuito utilizado em: Indústrias de Telecom Sistemas Críticos

Instituições Academia

| 13Effektiv Solutions

Principais CrençasSoftware é 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?

| 14Effektiv Solutions

Escola AnalíticaImplicações Requer especificação precisa e detalhada Testadores verificam se o software está

conforme a sua especificação Qualquer outra coisa não é teste!

| 15Effektiv Solutions

Técnica ExemploTestes Caixa Branca Ou “Structural testing” Diversas métricas de cobertura de código

são utilizadas Provê uma medida objetiva dos testes

Effektiv Solutions

Escola Convencional

| 17Effektiv Solutions

Escola ConvencionalMais utilizado em Enterprise IT Desenvolvimento para Governo

Instituições IEEE Standards Boards Instituições certificadoras de Teste

• ISTQB, ALATS, IIST, etc...

| 18Effektiv Solutions

Principais CrençasTestes devem ser gerenciados Previsível, repetível, planejado

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

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

Quando teremos terminado o desenvolvimento?

| 19Effektiv Solutions

Técnica de ExemploMatriz de Rastreabilidade Ter certeza que todos os requistos foram

testados

| 20Effektiv Solutions

Escola ConvencionalImplicaçõ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

Testes

Effektiv Solutions

Escola da Qualidade

| 22Effektiv Solutions

Principais CrençasQualidade 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?

| 23Effektiv Solutions

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

diga que está pronto!

| 24Effektiv Solutions

Escola da QualidadeImplicaçõ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)

Effektiv Solutions

Escola “Context Driven”

| 26Effektiv Solutions

Context DrivenMais utilizado em Software Comerciais Market-driven Software

Instituições LAWST Workshops

• Los Altos Workshop on Software Testing• StarEast/StarWest

| 27Effektiv Solutions

Principais CrençasSoftware é 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?

| 28Effektiv Solutions

Técnica de ExemploExploratory 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

| 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

Effektiv Solutions

Escola Ágil

| 31Effektiv Solutions

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

| 32Effektiv Solutions

Técnica de ExemploTestes Unitários Usados para Test-Driven Development

(TDD) Testes unitários são projetados antes do

desenvolvimento Suportado por ferramentas

| 33Effektiv Solutions

Escola ÁgilImplicações Desenvolvedores devem fornecer

frameworks para automação dos testes Demora para perceber o valor dos testes

exploratóriosMais utilizado em IT Consulting Desenvolvimento por equipe menores

Instituições Agile Workshops

Effektiv Solutions

Comparativo entre as Escolas

| 35Effektiv Solutions

Escolas de TestesAnalytic 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

| 36Effektiv Solutions

O que é Teste?Analytic School: Um branch da ciência da computação e

matemáticaStandard School: Um processo gerenciadoQuality School: Um branch da garantia da qualidadeContext-Driven School: Um branch do desenvolvimentoAgile School: Parte do papel do cliente

| 37Effektiv Solutions

Testes sem EspecificaçãoA 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çãoQuality School Porque ela força que

os desenvolvedores sigam o processo

| 38Effektiv Solutions

Certificação de TestesA 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

| 39Effektiv Solutions

ConclusõesNã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!

| 40Effektiv Solutions

Perguntas?

| 41Effektiv Solutions

ReferênciasContext Driven School http://www.context-driven-testing.com/ http://www.testinglessons.com/ Lessons Learned in Software Testing

Kaner, Bach, and Pettichord Agile School http://www.testing.com/agile/ http://www.qualitytree.com/ Testing Extreme Programming

Lisa Crispin and Tip House.

| 42Effektiv Solutions

ReferênciasStandard School http://www.istqb.org http://en.wikipedia.org/wiki/IEEE_829 Foundations of Software Testing: ISTQB Certification

Graham, Veenendaal, Evans and Rex BlackAnalitic School http://en.wikipedia.org/wiki/Model-based_testing Practical Model-Based Testing: A Tools Approach

Mark Utting , Bruno LegeardQuality School http://en.wikipedia.org/wiki/Quality_assurance

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