rede de laboratórios de produtividade de...

31
Rede de Laboratórios de Rede de Laboratórios de Produtividade de Software

Upload: phungtruc

Post on 19-Dec-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Rede de Laboratórios de Rede de Laboratórios de Produtividade de Software

Page 2: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Testes Exploratórios

Programa de Capacitação Programa de Capacitação em Testes de Software

Page 3: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

O que é Teste Exploratório?

"Simultaneous test design, test execution, and learning“

3Rede de Laboratórios de Produtividade de Software

test execution, and learning“

James Bach

Page 4: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Teste Exploratório é...

Uma atividade sapiente, que exige um pensamento humano para executar.

4Rede de Laboratórios de Produtividade de Software

Page 5: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Teste Exploratório é...

Um trabalho investigativo, onde o investigador deve escolher o que estudar, e como estudar, a fim de revelar as informações mais necessárias.

Teste exploratório é um estilo de teste de software que enfatiza a liberdade individual e responsabilidade do testador, em busca de melhoria continua e otimização do seu trabalho em busca de erros. Relacionando design, execução e interpretação dos resultados com a aprendizagem. “Charles Everton”
Page 6: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

ST x ET

Scripted Testing

Exploratory Testing

Contraste das abordagens Na execução de roteiros de testes o testador realiza precisamente o que o script de teste especifica e nada mais, já nos testes exploratórios o testador não tem atividades pré-programadas para executar. A aceitação e utilização de testes exploratórios para algumas empresas ainda é um ponto de grande reflexão, por não terem conhecimento de como aplicá-los ou a dificuldade de visualização de resultados com essa abordagem.
Page 7: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Comparativo

ST ET

É determinado com antecedência

É determinado no momento

É confirmativo É investigativo

Enfatiza a previsibilidade Enfatiza a criatividade

Controle sobre os testes Desafio de melhorar o design dos testes

Page 8: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Vantagens X Desvantagens

Estimula a criatividade Difícil de coordenar

Aumenta a chance de encontrar novos bugs

Não oferece reutilização dos teste

Permite uma rápida Depende das competências e Permite uma rápida avaliação

Depende das competências e conhecimentos de domínio do testador

Flexível e Adaptável Não é adequado para testes de segurança, teste de desempenho

Modelagem�Organização�Interrogatório�Disciplina�Observação�Foco�Colaboração�Geração / Elaboração�Orientação�Ramificação Auto gestão Gravação�Reportagem
Page 9: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Estrutura do ET

A estrutura do ET vem de várias fontes:• Heurísticas• Percepção de risco• O processo de aprendizagem do produto• O processo de aprendizagem do produto• Habilidade• Talentos e interesses do testador• A missão global do teste

Quando os testadores desenvolvem as habilidades de análise e investigação isso lhe dá a confiança para usar a ferramenta de teste mais poderosa que temos à nossa disposição: a mente humana. Heurística:Uma decisão tomada por experiência na função, intuição, bom senso ou outra forma que não seja confirmada por um método matemático, trata-se de confirmação heurística.
Page 10: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Variações dos testes exploratórios

• Freestyle• Session-based Testing Management• Charter

--Freestyle: onde o testador estão mais focados na aprendizagem do software ou funcionalidade que estão testando, abordando os pontos fracos do produto, verificando as regras de negocio e registrando os pontos de falhas. --Testes baseada em Sessão é uma técnica de gestão e controle de testes improvisados. Não é uma estratégia de geração teste, e ao mesmo tempo estabelece um quadro em torno de testes improvisados, não é uma abordagem sistemática cujo objetivo é o controle e alcance preciso. Pelo contrário, é uma técnica que se baseia nos pontos fortes de testes improvisados - velocidade, flexibilidade e escala. --O coração da técnica é a idéia de limites de eficácia. A sessão de teste tem um início bem definido e tempo do fim, limitando a sua duração. Durante uma sessão de teste, um testador se engaja em uma exploração dirigida de uma pequena parte da coisa que está sendo testado. Dentro desses limites, momento a momento, as atividades não são controlados, o julgamento fica a cargo do testador. O testador registra sua atividade - e inclui todas as outras informações que lhe parece relevante, as reações do sistema, os dados utilizados, as condições, o diagnóstico ou idéias. --O charter define uma missão clara para a Sessão, Pode sugerir o que deve ser testado, que problemas procurar, pode se referir a outros documentos ou fontes de informação. Uma charter não é para ser um plano detalhado. Charter proporcionam um melhor foco.
Page 11: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Técnicas de ET permite:

• Avaliar o risco e definir as prioridades• Controlar o escopo dos testes• Controlar o trabalho• Avaliar a cobertura• Avaliar a cobertura

Controlar o escopo com eficiência requer conhecimento e habilidade na busca por erros. --Normalmente, o gerente de testes controla a escolha inicial de pontos de teste, e também atua como o controlador para mudar quando necessário. Seus decisão baseia-se em:�• Disponibilidade de software�• Disponibilidade de recursos de teste�• Tempo necessário para testar versus o tempo disponível �• Testes realizados até agora, e sua cobertura de risco e áreas funcionais�• Plano de testes --Os métodos formais de medição de cobertura não funcionam bem com o teste exploratório, e pode introduzir complexidades para a execução dos testes. Uma medida de cobertura simples para avaliar dá uma boa indicação dos testes que havia sido feito em relação ao que precisava ser feito, a disponibilidade do sistema para viver operação, e as partes do sistema que precisava de mais testes.
Page 12: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Risco

Alto Baixo

Alto 3 2

Baixo 2 1

Custo

Risco

Risco e estabelecimento de prioridades: A equipe de teste precisa ser reativo. Precisam avaliar as novas circunstâncias contra as tarefas existentes de forma rápida e com precisão. Na tomada de decisões sobre a importância e urgência, foi bom ter informações sobre risco e custo. Risco é uma combinação do custo de falha e a probabilidade de fracasso. Para permitir que as avaliações seriam consistentes e repetíveis, precisávamos de um método simples de avaliação do risco. Começamos com possivelmente o mais simples: custo X risco Alto Alto = 3 baixo Baixo = 2 Alto Alto = 2 Baixo baixo = 1 Cada ponto de teste foi avaliado o risco. O trabalho foi atribuído pelo risco, e as métricas foram divididos pelo risco. Nós concluíram que o risco associado a um ponto do ensaio foi facilmente comunicados à empresa, e amplamente correspondência às suas expectativas.
Page 13: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

EscopoCHARTER Ex: Testar o módulo de cadastro de pacientes.#AREASOS | Win98Build | 1.2Strategy | Complex | Function & Data Testing

SESSION SHEETTIME: 90 minTIME: 90 minTESTER: Jonathan Bach

TASK BREAKDOWNDURATION: Start: 10/02/2010 5:30pm End: 10/02/2010 7:00pm#TEST DESIGN AND EXECUTION50 min#BUG INVESTIGATION AND REPORTING30 min#SESSION SETUP10 min#CHARTER VS. OPPORTUNITY--Descrever as oportunidades ou observações identificadas durante a execução

Page 14: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

ExecuçãoTEST NOTESEx: Teste do módulo de cadastro de pacientes executado por Jonathan Bach.

Session Log______________________________________________________________________________EX: Realização de cadastro de pacientes com variação nos dados de entrada.• Cadastrado paciente sem nome (see BUG 1)• Adicionado caracter inválido no número da carteira do plano de saúde (see BUG 2)

OPPORTUNITY:

BUGS_______________________________________________________________________________#BUG 1#BUG 2

ISSUES_______________________________________________________________________________#ISSUES 1

Page 15: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

CoberturaFaixa percentual bruto de tempo gastos em:

– Projeto e execução de teste (T)– Investigação e Relato de Erros (B)– Instalação (S)

Estimativa:Estimativa:– Estimativa em termos percentuais de quanto a

funcionalidade foi testada

Avaliar a cobertura do teste em termos de:– Nível 1: Smoke and sanity– Nível 2: Aspectos comuns, o núcleo crítico– Nível 3: complexo, extremo

• Um baixo percentual na estimativa pode indicar uma grande funcionalidade, mas pode indicar pouca habilidade do executor • Muito tempo de B pode significar problemas de qualidade de código, mas pode sugerir ineficiência na comunicação�• Muito tempo de S pode significar problemas de testabilidade ou de configuração para clientes, ou pode significar primeiros dias de testes Medidas simples são as melhores Favorecer a comunicação eficaz sobre a documentação Métricas de imediato permitir o controlo em tempo real Quando dado um feedback adequado, os testadores podem aprender a melhorar as eficácia dos seus testes improvisados, e a precisão das suas estimativas. O Centro desse processo é uma métricas de cobertura repetível e confiável que permite muitas avaliações subjetivas.
Page 16: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Quando Aplicar Teste Exploratório?• Um novo testador entra na equipe• É necessário uma avaliação rápida• Mudanças são descobertas durante a execução dos testes de

roteiro• Possui testadores com alto conhecimento do domínio• Um teste de admissão (também conhecido como teste de • Um teste de admissão (também conhecido como teste de

fumaça) é desejado• Não existe uma base de teste• É um projeto ágil• Você quer isolar e investigar um defeito particular• É uma iteração inicial em que o produto não é estável o

suficiente para ST• Aumentar e diversificar os testes

Page 17: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Como incluir ET no projeto de teste

Processo de teste típico

Um típico processo de testes simples possui as seguintes etapas: • O projeto de teste começa com a preparação e planejamento de atividades onde a abordagem e a estratégia de teste estão definidos, o planejamento de testes é especificado, e os planos de teste são escritos. • Na fase de construção dos teste, as especificações dos testes são documentados e a infra-estrutura de teste é criado. • Os testes que foram elaboradas na etapa anterior são executados, que normalmente consiste de vários ciclos de teste. • Ao final do projeto, o encerramento do projeto de teste acontece: o processo de testes é avaliado, os resultados de teste são consolidadas e a equipe de teste é liberado da tarefa. • Em paralelo com estas atividades, a gestão de teste assegura que o avança do processo aconteça de uma maneira profissional usando o gerenciamento de ferramentas tais como relatórios de acompanhamento, status e de gestão de defeitos. • A Gestão da Qualidade é realizada para gerir, orientar e melhorar execução do projeto e assegurar a qualidade dos produtos. É importante notar que as atividades de gestão dos testes, como: preparação, planejamento e gestão, não pode ser conduzida de uma forma exploratória. Estas atividades precisam do apoio de técnicas tradicionais, tais como planos de documentar, estratégias de testes, o status do teste, e relatórios de resumo de teste.
Page 18: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Processo de ET

Processo de teste exploratório

Page 19: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Na Prática...

Continuamos com a liberação de nossos sistemas (na maioria das vezes) .....– "Um pouco tarde demais"– "Vários defeitos"– "Vários defeitos"– "Os orçamentos são ligeiramente estourados"

Page 20: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Problema 1

• Pergunta: Como ser “bom o suficiente” e “sobreviver” neste cenário?

Page 21: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Rapid Software Testing

O RST tem ênfase no desenvolvimento profissional e métodos heurísticos, através do pensamento crítico e de testes exploratórios. Ele se encaixa na Escola Direcionada pelo Contexto (Context-Driven School), oferecendo desta maneira, um conjunto de práticas que podem ser aplicadas pelo profissional de acordo com o seu contexto e os resultados podem variar conforme o mesmo. O RST está alinhado com a Escola Direcionada pelo Contexto, portanto acredita que o teste deve responder primeiro as necessidades da organização e do projeto, ao invés, das "melhores práticas", afinal as "melhores práticas" podem não ser as melhores para todos contextos. O RST se apóia bastante na habilidades dos profissionais, e principalmente, na capacidade de exploração. O pensamento crítico possui um enfoque na consideração das evidências, no contexto do julgamento, e a relevância do critério para se fazer o julgamento, os métodos e técnicas aplicáveis para formar a opinião, e os construtos teóricos aplicáveis para entender a natureza do problema e da questão. O pensamento crítico emprega não apenas a lógica mas uma grande variedade de critérios intelectuais, como claridade, credibilidade, precisão, relevância, profundidade, significância
Page 22: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Context-Driven Testing School

“A atitude certa e as ferramentas adequadas e que nos permitem desenvolver uma processo eficaz e eficiente”

A definição da Escola de Teste Direcionada pelo Contexto (usarei a sigla ETDC daqui em diante) proposta pelo Brett Pettichord, Cem Kaner e James Bach, é apresentada em sete príncipios básicos, sendo eles: O valor de qualquer prática, depende do contexto que ela é aplicada. Existem boas práticas em um contexto, mas não há melhores práticas. Pessoas trabalhando juntas, são a parte mais importante do contexto de qualquer projeto. Os projetos se desdobram ao longo do tempo, de formas que muitas vezes não são previsíveis. O produto é uma solução.Se o problema não for resolvido, o produto não funciona. Bom teste de software é um processo intelectual desafiador. Somente através do julgamento e habilidade, exercidos de forma cooperativa durante todo o projeto, seremos capazes de fazer as coisas certas nos momentos certos, para efetivamente testar nossos produtos. Testadores Context-driven escolhem os seus objetivos de testes, técnicas e produtos (incluindo a documentação de teste), olhando primeiro para os detalhes da situação específica, incluindo os desejos das partes interessadas que pediu o teste. A essência CDTS é a aplicação do projeto adequado de habilidade e julgamento. Teste direcionado pelo contexto é fazer o melhor que nós podemos, com o que nós temos. Ao invés, de ficar tentando aplicar as "melhores práticas", nós aceitamos que diferentes práticas (até mesmo diferentes definições de termos comuns de teste) irão funcionar melhor em diferentes circunstâncias. Um exemplo clássico, é a busca insistente por templates de documentos, que por si só não tem nenhum problema, principalmente quando é feita buscando conhecer o que já existe e adaptar para a realidade. Porém, muitos buscam templates para adaptar a sua realidade a ele, e não adaptar o template a sua realidade.
Page 23: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Problema 2

Page 24: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Dicas para encontrar bugs

• Aplicar insumos para forçar a ocorrência das mensagens de erro;• Aplicar insumos para forçar o software a (re) estabelecer os valores

padrão;• Explorar um conjuntos admissível de caracteres e tipos de dados;• Estourar o buffers de entrada;• Pesquisar associação de insumos e testar a combinações de seus valores;• Pesquisar associação de insumos e testar a combinações de seus valores;• Repetir a mesma entrada ou uma série de entradas numerosas vezes;• Forçar saídas diferentes para serem geradas para cada entrada;• Forçar a geração de saídas inválidas;

Page 25: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Continuação

• Testar as propriedades ou configurações que modificam a saída;• Forçar a atualização da tela;• Aplicar entradas usando uma variedade de condições iniciais;• Forçar uma estrutura de dados para armazenar muitos ou poucos

valores;• Investigar formas de modificar as restrições de dados internos;• Investigar formas de modificar as restrições de dados internos;• Realizar operações com operadores inválido e combinações de

operador;• Forçar uma função para chamar a si mesma recursivamente;• Investigar os recursos que compartilham dados;

Page 26: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Resumo

ContextoUtilização da abordagem de testes exploratórios

ProblemaExecutar testes de forma rápida, baixo custo e com bom aproveitamento

26Rede de Laboratórios de Produtividade de Software

SoluçãoUtilização de uma abordagem focando quatro fatores chaves: Comunicação, Confiança, Habilidade e o Contexto

Avaliação da SoluçãoAcompanhamento e controle da qualidade do produto e dos custos associados aos testes

Não adianta apenas testar, mas sim testar bem. Os custos cairão, mas inicialmente os investimentos são maiores. Se a área de teste não estiver bem organizada os problemas aparecem num estágio onde os custos são maiores. Precisamos: Reduzir Riscos evitando que erros ocorram Reduzir custo eliminando desperdícios
Page 27: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Referências• www.testexpert.com.br

• Escola de Teste Direcionada pelo Contexto• Rapid Software Testing: Visão Geral

• www.satisfice.com

• Exploratory Testing Explained

27Rede de Laboratórios de Produtividade de Software

• Exploratory Testing Explained• Session-Based Test Management • Rapid Software Testing

• www.Quardev.com

• How to Manage and Measure Exploratory Testing

• www.mrtc.mdh.se

• How to Break Software

Page 28: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Sites

Wiki do LabPShttp://labps.cin.ufpe.br

Twitter do LabPShttp://twitter.com/Rede_LabPS

INEShttp://www.ines.org.br

Amigoshttp://amigos.ines.org.br

Cin/UFPEhttp://www.cin.ufpe.br

Rede de Laboratórios de Produtividade de Software 28

Page 29: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Dúvidas

29Rede de Laboratórios de Produtividade de Software

Page 30: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Obrigado!

Rede de Laboratórios de Produtividade de Software 30

Page 31: Rede de Laboratórios de Produtividade de Softwaretwiki.cin.ufpe.br/.../Treinamento_Teste_Exploratorio.pdf · O RST tem ênfase no desenvolvimento profissional e métodos heurísticos,

Testes Exploratórios

Programa de Capacitação Programa de Capacitação em Testes de Software