Este documento resume o seminário "ALATS-SP 2012 - I Seminário Paulista de Teste de Software". O seminário discutiu abordagens tradicionais de teste de software, introduziu testes exploratórios e ferramentas de apoio, e concluiu que testes exploratórios requerem criatividade, julgamento e flexibilidade do testador.
O documento discute várias técnicas de teste de software, incluindo:
1) Partição de equivalência - Uma técnica para dividir entradas em grupos com comportamento similar e testar um caso de cada grupo.
2) Análise de valor limite - Testa valores próximos aos limites de cada partiçao para verificar possíveis defeitos nessas regiões.
3) Tabela de decisão - Usa regras lógicas para gerar combinações de entrada para teste.
4) Teste de transição de estados - Testa um sistema modelado como máqu
Erik Aceiro Antonio apresenta suas credenciais e experiência em testes de software e cobertura de código. Ele possui graduação em Ciência da Computação, mestrado em Engenharia Elétrica e está cursando doutorado em Ciência da Computação. Seu foco é no teste de software para sistemas embarcados críticos.
O documento discute a importância dos testes no desenvolvimento de software, mencionando três pontos principais:
1) Testes automatizados são necessários para evitar falhas futuras e garantir a qualidade do código.
2) É importante testar partes críticas do sistema que, caso falhem, podem ter grandes impactos.
3) Testes devem ser incorporados desde o início do desenvolvimento, por meio de metodologias como TDD.
O documento descreve um sistema de gestão de laboratório desenvolvido para ajudar laboratórios a se adequarem às normas ISO/IEC 17025 e ISO GUM. O sistema permite cadastrar análises, parâmetros, processos e resultados, além de gerenciar documentação, custos, qualidade e rastreabilidade.
Planejamento de Experimentos e Comparação Estatística de Algoritmos
[1] O documento discute a importância do planejamento e análise estatística cuidadosa de experimentos com algoritmos para que as conclusões sejam válidas e objetivas. [2] Ele descreve princípios como replicação, aleatorização, blocagem e relato completo dos resultados. [3] O documento também fornece recursos adicionais sobre o tema.
Victor Hugo Germano apresenta, na casa CTAI Senai SC um curso de formação entitulado: Teste de Software.
Chamando para uma discussão a respeito de nosso papel dentro do desenvolvimento de software, são apresentados conceitos relacionados à area de teste de software, assim como apresentada sua visão de como um modelo de testes deve estar vinculado ao desenvolvimento.
Introdução ao Teste de Software - Uma abordagem prática
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
Este documento fornece uma introdução sobre testes de software, com foco nos testes funcionais em times ágeis. Apresenta conceitos como qualidade, garantia da qualidade versus controle da qualidade, níveis e tipos de teste, técnicas de teste como análise de valor limite, particionamento por equivalência e tabelas de decisão. Também discute validação versus verificação, desenho de testes, cenários e casos de teste. Por fim, aborda técnicas ágeis como teste exploratório.
Técnicas de Testes Funcionais Caixa-PretaLucas Amaral
O documento discute técnicas de teste caixa-preta funcionais, incluindo particionamento de equivalência, análise de valor limite e tabela de decisão. Estas técnicas dividem os dados de entrada em partições válidas e inválidas para testar diferentes caminhos através de uma função ou processo. O documento fornece exemplos destas técnicas aplicadas a regras de elegibilidade de votação.
Este documento fornece uma breve introdução às técnicas de teste de software, descrevendo conceitos como:
- Casos de teste, que especificam entradas e saídas esperadas para testar o programa.
- Critérios de teste, como particionamento de equivalência e análise de valor limite, que guiam a geração sistemática de casos de teste.
- Teste funcional e estrutural, que se baseiam respectivamente na especificação e implementação do software.
O documento discute várias técnicas de teste de software, incluindo:
1) Partição de equivalência - Uma técnica para dividir entradas em grupos com comportamento similar e testar um caso de cada grupo.
2) Análise de valor limite - Testa valores próximos aos limites de cada partiçao para verificar possíveis defeitos nessas regiões.
3) Tabela de decisão - Usa regras lógicas para gerar combinações de entrada para teste.
4) Teste de transição de estados - Testa um sistema modelado como máqu
Atividades de Teste e Cobertura de Código em Javaaceiro
Erik Aceiro Antonio apresenta suas credenciais e experiência em testes de software e cobertura de código. Ele possui graduação em Ciência da Computação, mestrado em Engenharia Elétrica e está cursando doutorado em Ciência da Computação. Seu foco é no teste de software para sistemas embarcados críticos.
O documento discute a importância dos testes no desenvolvimento de software, mencionando três pontos principais:
1) Testes automatizados são necessários para evitar falhas futuras e garantir a qualidade do código.
2) É importante testar partes críticas do sistema que, caso falhem, podem ter grandes impactos.
3) Testes devem ser incorporados desde o início do desenvolvimento, por meio de metodologias como TDD.
O documento descreve um sistema de gestão de laboratório desenvolvido para ajudar laboratórios a se adequarem às normas ISO/IEC 17025 e ISO GUM. O sistema permite cadastrar análises, parâmetros, processos e resultados, além de gerenciar documentação, custos, qualidade e rastreabilidade.
Planejamento de Experimentos e Comparação Estatística de Algoritmosfcampelofp
[1] O documento discute a importância do planejamento e análise estatística cuidadosa de experimentos com algoritmos para que as conclusões sejam válidas e objetivas. [2] Ele descreve princípios como replicação, aleatorização, blocagem e relato completo dos resultados. [3] O documento também fornece recursos adicionais sobre o tema.
Victor Hugo Germano apresenta, na casa CTAI Senai SC um curso de formação entitulado: Teste de Software.
Chamando para uma discussão a respeito de nosso papel dentro do desenvolvimento de software, são apresentados conceitos relacionados à area de teste de software, assim como apresentada sua visão de como um modelo de testes deve estar vinculado ao desenvolvimento.
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
Semelhante a Testes Exploratórios ALATS SP 2012 (10)
4. Agenda
! 1. Abordagem tradicional
Globalcode
–
Open4education
5. Ciclo de vida genérico
Planejamento Especificação Execução Resultados
Globalcode
–
Open4education
6. Especificação de testes
Planejamento Especificação Execução Resultados
Oráculo Técnicas Condições Casos de Scripts de
(Requisito) de testes de testes testes testes
Globalcode
–
Open4education
7. Técnicas de testes
Planejamento Especificação Execução Resultados
Oráculo Técnicas Condições Casos de Scripts de
(Requisito) de testes de testes testes testes
Caixa Preta (Funcional) Caixa Branca (Estrutural)
Classes de equivalencia/Valores limítrofes
Teste estrutura de controle
Tabelas de decisão
Teste de condição
Pairwise
Teste de ciclo
Tabela de transição de estados
Teste de decisão
Árvore de classificação
Teste de fluxo de dados
Tabela de transição de estados
Globalcode
–
Open4education
8. Técnicas de testes
Planejamento Especificação Execução Resultados
rte s
P ontos fo
ica
Estad o da prát
l
Oráculo Técnicas Confiáve
Condições Casos de Scripts de
de testes l
epetitíve
(Requisito) de testes testes testes
R
co
Det erminísti
l
Previsíve
Caixa Preta (Funcional) Caixa Branca (Estrutural)
Classes de equivalencia/Valores limítrofes
Teste estrutura de controle
Tabelas de decisão
Teste de condição
Pairwise
Teste de ciclo
Tabela de transição de estados
Teste de decisão
Árvore de classificação
Teste de fluxo de dados
Tabela de transição de estados
Globalcode
–
Open4education
9. Execução (Baseada em scripts)
Planejamento Especificação Execução Resultados
Executar Registrar
Scripts de Registrar
os Scripts os
testes os defeitos
de testes resultados
Globalcode
–
Open4education
10. Execução (Baseada em scripts)
Scripts de
testes de
requisitos e
regras
individuais
Scripts de
testes End-to-
End e de
integração
Globalcode
–
Open4education
11. Execução (Baseada em scripts)
Scripts de
testes de
requisitos e
regras
individuais
rtes
P ontos fo
a
o da prátic
É o estad ustos
Baixos c ado
a utomatiz
Pode ser mensurável
te op)
Facilmen do (body sh
terceiriza
Pode ser
Scripts de
testes End-to-
End e de
integração
Globalcode
–
Open4education
12. Execução (Baseada em scripts)
! Execução (Baseada em Scripts)
Globalcode
–
Open4education
13. Técnicas de testes
Caixa Preta (Funcional) Caixa Branca (Estrutural) Baseada na experiência
Classes de equivalencia/Valores limítrofes
Teste estrutura de controle
Tabelas de decisão Suposição de erro
Teste de condição
Pairwise Baseado em checklist
Teste de ciclo
Tabela de transição de estados Ataques
Teste de decisão
Árvore de classificação Testes exploratórios
Teste de fluxo de dados
Tabela de transição de estados
Testes exploratórios
Globalcode
–
Open4education
15. Testes exploratórios
! Conceitos:
! O teste exploratório é, na sua definição mais básica, o
aprendizado, a criação e a execução ao mesmo tempo
de um teste.
! É uma atividade iterativa e empírica de exploração
que exige idas e vindas num processo de investigação
contínuo onde a intuição, a criatividade e a experiência
do testador são indispensáveis para garantir a eficiência
do teste.
Cristiano Caetano: Testes exploratórios de A a Z
http://www.linhadecodigo.com.br/artigo/1102/Testes-Explorat%C3%B3rios-de-A-a-Z.aspx
Globalcode
–
Open4education
16. Testes exploratórios
! Estrutura:
1. Criação de uma hipótese. Um modelo mental
representando o funcionamento supostamente correto
da área do sistema que será testado;
2. Planejar um ou mais cenários de teste que possam
comprovar se a hipótese é verdadeira;
3. Aplicar os testes e observar os resultados;
4. Avaliar os resultados contra a hipótese levantada no
primeiro passo;
5. Repetir esse processo até que a hipótese seja
comprovada (ou não).
A Practitioner's Guide to Software Test Design. Lee Copeland
Globalcode
–
Open4education
17. Testes exploratórios
! Características:
! Dependem da intuição, julgamento e criatividade do
testador
! Os testes não são criados com antecedência
! Não segue um script rígido (segue guias e diretrizes)
! É baseado em pensamento estruturado e exploração
livre
! Enfoca o aprendizado em paralelo
! A execução do teste é guiada/aprimorada com base em
execuções anteriores (continuous test planning)
! Fluxo imediato de feedback (e correção de curso)
Globalcode
–
Open4education
18. Testes exploratórios
Caixa Preta (Funcional) Caixa Branca (Estrutural) Baseada na experiência
Classes de equivalencia/Valores limítrofes
Teste estrutura de controle
Tabelas de decisão Suposição de erro
Teste de condição
Pairwise Baseado em checklist
Teste de ciclo
Tabela de transição de estados Ataques
Teste de decisão
Árvore de classificação Exploratório
Teste de fluxo de dados
Tabela de transição de estados
Informal
Não sistemático
Não é confiável
Não é repetitível
Não é reproduzível
Não produz evidências
Globalcode
–
Open4education
21. SBTM: Testes exploratórios
baseados em sessões
! Teste exploratório baseado em
sessões oferece um mecanismo para
planejar, acompanhar e dar maior
visibilidade ao teste exploratório, sem
no entanto, burocratizar a exploração
http://www.satisfice.com/sbtm/index.shtml
Globalcode
–
Open4education
22. SBTM: Testes exploratórios
baseados em sessões
! Elementos básicos:
! Em uma sessão de trabalho com
um período pré-determinado de
tempo, um testador interage com o
software para cumprir os objetivos
de uma missão de testes e relatar
os resultados.
Globalcode
–
Open4education
23. SBTM: Testes exploratórios
baseados em sessões
! Elementos básicos:
! Em uma sessão de trabalho com
um período pré-determinado de
tempo, um testador interage com o
software para cumprir os objetivos
de uma missão de testes e relatar
os resultados.
Globalcode
–
Open4education
24. SBTM: Testes exploratórios
baseados em sessões
! Testador:
! No teste exploratório o oráculo é o testador. Neste
caso, a experiência do testador afeta diretamente a
qualidade do teste exploratório.
! Criatividade
! Observação cuidadosa
! Metódico
! Pensamento crítico
! Aprendizado rápido
! Intuição
! Improviso
! Especulador
! Auto-gerenciamento
! Idéias diversificadas
Globalcode
–
Open4education
25. SBTM: Testes exploratórios
baseados em sessões
! Software:
! É o produto alvo da missão do teste exploratório.
Para que o teste exploratório ocorra, é necessário
que o software (funcionalidade, tela, etc) já tenha
sido desenvolvido.
! Como muitas vezes não existe documentação,
requisitos, etc, o software é a única fonte de
informação disponível para apoiar a exploração
Globalcode
–
Open4education
26. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! A missão determina o que deve ser testado (não
como o teste deve ser realizado).
! Ao final da sessão de teste exploratório, novas
idéias, oportunidades ou problemas encontrados
pelo testador podem ser usados para a criação de
novas missões.
! Não deve ser muito específica nem muito
genérica
Globalcode
–
Open4education
27. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Heurísticas (estratégias para geração de idéias)
! Heurística HICCUPPS (Michael Bolton)
! Heurística SFDPO (James Bach)
! Heurística FCC CUTS VIDS (Mike Kelly)
! CRUCSPICSTMP (Test Eye team)
! Heurística IOSC
! Heurística de consistência
! Pensamento lateral orientado a questionamentos
! Atributos da Qualidade
! Entre outros
Learning Styles and Exploratory Testing
http://www.kaner.com/pdfs/ExploratoryTestingandLearningStyles(Final).pdf
Globalcode
–
Open4education
28. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Heurística HICCUPPS (Michael Bolton)
! (H)istory: As funcionalidades do software devem se comportar de
forma consistente ao longo do tempo
! (I)mage: O comportamento e aparência do software está alinhada
com a imagem que o fabricante deseja expor ao usuário
! (C)omparable products: O software é compatível com software
similares
! (C)laims: O software se comporta de acordo com os requisitos
! (U)ser expectation: As funcionalidades se comportam conforme a
expectativa do usuário
! (P)roduct itself: As funcionalidades são consistentes entre si
! (P)urpose: As funcionalidades atendem o seu propósito
! (S)tatuses: O produto está em conformidade, com leis,
regulamentos, diretrizes, etc
Learning Styles and Exploratory Testing
http://www.kaner.com/pdfs/ExploratoryTestingandLearningStyles(Final).pdf
Globalcode
–
Open4education
29. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Heurística IOSC
! Input: Exploração do comportamento do software sob a
perspectiva das entradas de dados.
! Output: Exploração do comportamento do software sob a
perspectiva das saídas de dados.
! Storage: Exploração do comportamento do software sob a
perspectiva dos dados armazenados.
! Computation: Exploração do comportamento do software sob a
perspectiva da computação/processamento dos dados
Learning Styles and Exploratory Testing
http://www.kaner.com/pdfs/ExploratoryTestingandLearningStyles(Final).pdf
Globalcode
–
Open4education
30. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Heurísticas (Mind Maps)
Mind Maps
http://m.pinterest.com/rosiesherry/testing-mindmaps/
Globalcode
–
Open4education
31. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Heurísticas (Rolling Strategy Dice)
The Big Exploratory Testing Rolling Strategy Dice
http://testing.gershon.info/201108/the-big-exploratory/
Globalcode
–
Open4education
32. SBTM: Testes exploratórios
baseados em sessões
! Missão:
! Elisabeth Hendrickson recomenda o seguinte formato:
Exploratory Testing in an Agile Context
http://www.agilistry.com/downloads/ETinAgile-agile2011-final.pdf
Globalcode
–
Open4education
34. SBTM: Testes exploratórios
baseados em sessões
! Sessão:
! Compreende um período ininterrupto de tempo com
duração de cerca de 1 a 2 horas. Alguns autores
recomendam 90 minutos no máximo.
! Durante a sessão, o testador cria e simultâneamente
executa os testes. Além disso, também aprende mais
sobre o funcionamento e comportamento do software.
! Durante a sessão o testador também investiga e
registra defeitos, assim como, configura e prepara o
ambiente de testes.
Globalcode
–
Open4education
35. SBTM: Testes exploratórios
baseados em sessões
! Sessão:
! Etapas
! Preparação (Setup): Preparação do ambiente de testes,
configuração de massa de dados, leitura de manuais,
requisitos, diagramas, etc.
! Especificação (Design): Definição (modelo mental) dos
casos de testes (hipóteses) baseados em heurísticas,
idéias, checklists, etc.
! Execução (Execution): Execução propriamente dita do
teste exploratório para demonstrar se as hipóteses/
expectativas foram atendidas (ou não).
! Oportunidades (Opportunities): Tempo gasto em
atividades/explorações/Investigações que não estão no
escopo ou foco da missão.
! Relato de defeitos (Bug investigation/Report):
Investigação e registro de defeitos.
Globalcode
–
Open4education
36. SBTM: Testes exploratórios
baseados em sessões
! Resultados:
! Durante o teste exploratório o testador registra os
resultados no Relatório da Sessão.
! O relatório inclui notas sobre o que foi testado, o
ambiente de testes, arquivos de dados, defeitos
encontrados, algumas métricas básicas, etc.
Globalcode
–
Open4education
38. SBTM: Testes exploratórios
baseados em sessões
! Resultados:
! Métricas (TBS):
! (T) Test Execution/Design: Percentual do tempo total
gasto na criação e execução dos testes exploratórios
! (B) Bug Investigation/Report: Percentual do tempo total
gasto na investigação e relato de defeitos
! (S) Setup: Preparação: Percentual do tempo total gasto
em prepação (estudo, configuração de hardware/software,
outras atividades não relacionadas ao teste, etc)
! Também é recomendado que seja relatado o tempo gasto em
oportunidades. Já que o teste é exploratório, os testadores são
encorajados a investir um tempo também em investigações em
áreas não relacionadas ao escopo da missão.
Session-Based Test Management
http://www.satisfice.com/articles/sbtm.pdf
Globalcode
–
Open4education
39. SBTM: Testes exploratórios
baseados em sessões
! Resultados:
! Métricas:
! Número de sessões completadas
! Número de defeitos encontrados
! Número de funcionalidades cobertas
! Tempo gasto em configuração de ambiente
! Tempo gasto testando
! Tempo gasto investigando problemas
! Entre outros
Session-Based Test Management
http://www.satisfice.com/articles/sbtm.pdf
Globalcode
–
Open4education
40. SBTM: Testes exploratórios
baseados em sessões
! Resultados:
! Debrief (Prestação de contas)
! Visibilidade e feedback sobre o que foi feito
! Jon Bach, um dos idealizadores do teste exploratório baseado
em sessões, recomenda que a prestação de contas siga a
estrutura descrita pelo acrônimo PROOF:
! (P) Past (passado): O que aconteceu durante a sessão?
! (R) Results (resultados): Quais resultados foram atingidos
durante a sessão?
! (O) Obstacles (obstáculos): Quais obstáculos atrapalharam a
exploração?
! (O) Outlook (previsão/perspectiva): O que ainda falta fazer?
! (F) Feelings (sentimentos): Como o testador se sente (em
relação ao teste ou qualidade)?
How to Manage and Measure Exploratory Testing
http://www.quardev.com/content/whitepapers/how_measure_exploratory_testing.pdf
Globalcode
–
Open4education
41. Agenda
! 3. Ferramentas de apoio
Globalcode
–
Open4education
52. Conclusão
! Ciência ! Arte
Testes baseados
em Scripts Exploratórios
ad-hoc
Globalcode
–
Open4education
53. Conclusão
! Método científico:
Os progressos da ciência são acompanhados de muitas horas de trabalho
cuidadoso, que segue um caminho mais ou menos sistemático na busca de
respostas a questões científicas. É este o caminho denominado de método
científico (Wikipédia)
Globalcode
–
Open4education
54. Conclusão
! Método científico:
o
v isto com
deve ser
software és de um trilho
Teste de lha ao inv
uma tri Cris tiano Ca
etano
)
ikipédia
idade (W ncia,
Serendip ç os na ciê da
tes avan rel ou
mais importan ri Becque nte. No
uns dos por Hen ide
cons iderar alg da radioatividade ocorrido por ac
É comum s descobertas do a é que
o a ming, c omo ten servaçã o científic lvidas
tais com or Alexander Fle mar à luz da ob s pessoa
s envo
penicilina
p afir que a rtanto,
possível ma vez a ndo, po
o que é entais, u te", est édia)
entanto, cialm ente acid r cientificamen nte (Wikip
o par "pensa interessa
terão sid n dido a lg o novo e
Os progressosadam apre e que observaram a
h via ciência são acompanhados de muitas horas de trabalho
tes d
c nscien
cuidadoso, queosegue um caminho mais ou menos sistemático na busca de
respostas a questões científicas. É este o caminho denominado de método
científico (Wikipédia)
Globalcode
–
Open4education
55. Conclusão
! Benefícios do teste exploratório
! Fornecer feedback rápido sobre a qualidade de um novo software
ou nova funcionalidade
! Aprender rapidamente o funcionamento de um software
! Encontrar defeitos críticos rapidamente
! Investigar e isolar um defeito em particular
! Investigar áreas do software com alto nível de risco
! Quando não existem requisitos ou os requisitos mudam com
frequência
Globalcode
–
Open4education
56. Conclusão
Complementar com mais diversificação
os testes tradicionais baseados em
scripts
Globalcode
–
Open4education
57. Conclusão
Testes exploratórios (manuais)
Scripts de testes (manuais)
Scripts de testes (automatizados)
Testes unitários e de integração
(Automatizados)
Testes estáticos
Revisões de artefatos
Globalcode
–
Open4education
59. Para saber mais...
! Heuristic Test Strateg Model
! http://www.satisfice.com/tools/satisfice-tsm-4p.pdf
! A Tutorial in Exploratory Testing
! http://www.kaner.com/pdfs/QAIExploring.pdf
! Session-based testing
! http://en.wikipedia.org/wiki/Session-based_testing
! Dynamics of Exploratory Testing
! http://www.quardev.com/content/whitepapers/ExploratoryTestingasSport_JonBach_PNSQC06pdf.pdf
! Exploratory Testing in an Agile Context
! http://www.agilistry.com/downloads/ETinAgile-agile2011-final.pdf
! The Nature of Exploratory Testing
! http://www.testingeducation.org/a/nature.pdf
! How to Manage and Measure Exploratory Testing
! http://www.quardev.com/content/whitepapers/how_measure_exploratory_testing.pdf
Globalcode
–
Open4education
60. Para saber mais...
! Exploratory Testing in Pairs
! http://www.kaner.com/pdfs/exptest.pdf
! How to: Start an Exploratory Test Session in Microsoft Test Manager
! http://msdn.microsoft.com/en-us/library/hh191616(v=vs.110). Aspx
! Exploratory Testing – An Agile Approach
! http://xebee.xebia.in/wp-content/uploads/2009/11/Exploratory-Testing-an-Agile-approach.pdf
! Learning Styles and Exploratory Testing
! http://www.testingeducation.org/a/lset.pdf
! Session-Based Test Management
! http://www.satisfice.com/articles/sbtm.pdf
! Learning Styles and Exploratory Testing
! http://www.kaner.com/pdfs/ExploratoryTestingandLearningStyles(Final).pdf
! Testing in Session - How to measure exploratory testing
! http://sasqag.org/pastmeetings/ExploratoryTesting_SessionBasedTestManagement.pdf
! Test Heuristics Cheat Sheet
! http://testobsessed.com/wp-content/uploads/2011/04/testheuristicscheatsheetv1.pdf
Globalcode
–
Open4education