Você está na página 1de 4

Arquitetura e Desenvolvimento

Nesta seo voc encontra artigos voltados para diferentes


abordagens de apoio ao desenvolvimento de projetos de software

Conhecendo os testes exploratrios Parte 2


Hora de gerenciar

De que se trata o artigo:

Cristiano Caetano
cristiano.caetano@qualister.com.br

Consultor snior de teste de software, com


15 anos de experincia na rea de tecnologia da informao scio fundador da
Qualister (www.qualister.com.br). Atua
na empresa como Diretor Tcnico, alm
de atender clientes em treinamentos, consultoria de processos de teste de software,
automao de testes funcionais e de performance. certificado CBTS pela ALATS
e autor dos livros CVS: Controle de Verses e Desenvolvimento Colaborativo de
Software e Automao e Gerenciamento
de Testes: Aumentando a Produtividade
com as Principais Solues Open Source e
Gratuitas.

36

este exploratrio uma abordagem de testes ad hoc que enfatiza as habilidades do testador em
tomar decises sobre o que ser testado
durante a execuo do teste ao invs de
seguir um roteiro previamente planejado. As principais caractersticas dos
testes exploratrios so:
O projeto, execuo, interpretao e
aprendizado so realizados pela mesma pessoa;
O projeto, execuo, interpretao e
aprendizado acontecem juntos, ao invs de serem executados em momentos
diferentes no tempo;
O testador faz as suas escolhas sobre
o que ser testado, quando testar e
como testar, ao invs de seguir cegamente um roteiro;
O testador enfoca em revelar novas
informaes sobre o produto, ao invs
de confirmar coisas j conhecidas sobre o produto;
Tudo o que o testador aprendeu
de novo durante o teste, incluindo o
resultado do ltimo teste, serve como
subsdio para decidir o que ser testado
a seguir;

Engenharia de Software Magazine - Conhecendo os testes exploratrios Parte 2

Este artigo apresenta o mtodo de gesto de testes exploratrios chamado SBTM (Gerenciamento
de Testes Baseado em Sesses). Alm disso, so
elencadas as principais ferramentas de apoio
execuo e gesto de testes exploratrios.

Em que situao o tema til:


Este artigo destina-se aos desenvolvedores
interessados em gerenciar o planejamento e a
execuo de testes exploratrios sem engessar
o lado criativo e a liberdade da explorao.

Resumo:
Depois de uma breve introduo, discutiremos
uma abordagem baseada em sesses para gerenciamento deste tipo de teste. Neste contexto, sero apresentadas questes relacionadas misso, sesso, testador, resultados e
ferramentas de apoio utilizadas para apoiar a
abordagem considerada.

O testador pode usar qualquer tipo


de ferramenta automtica para apoiar o
seu teste ou decidir no usar nenhuma
ferramenta;
O testador pode variar diversos aspectos durante a execuo dos seus testes,
ao invs de repeti-los da mesma forma
continuamente.

AGI L ID ADE

Nos ltimos anos o uso de heursticas tem sido o mtodo


comumente usado para tornar a gerao de ideias de testes
exploratrios uma disciplina mais sistemtica. Com o objetivo
de facilitar o entendimento e aprendizado das heursticas,
especialistas de todo mundo utilizam tcnicas mnemnicas
para compartilhar suas experincias em larga escala.
No entanto, teste exploratrio sempre associado ideia de
testes informais, aleatrios, superficiais e desorganizados,
ou seja, os testadores encontram defeitos acidentalmente.
Alm disso, os defensores de abordagens de testes tradicionais apontam que a falta de mecanismos gesto uma das
principais limitaes encontradas nos testes exploratrios.
Para eles, o teste exploratrio uma caixa preta, onde no
possvel planejar o escopo do que ser testado, acompanhar o
progresso do teste, gerar mtricas e indicadores de cobertura,
entre outras restries.
Estas limitaes so conhecidas pela comunidade que defende o uso de testes exploratrios. Quando o teste exploratrio
executado sem nenhum planejamento mnimo, ele chamado
de teste exploratrio freestyle. Esse tipo de teste no se baseia
em objetivos claros ou escopo do que ser testado e produz
como resultado apenas o registro dos defeitos encontrados
durantes a explorao.
Para compensar estas limitaes, muitos especialistas em
testes de software esto propondo diversos mtodos para o gerenciamento dos testes exploratrios, tais como Thread Based
Test Management, 8 Layer Model, SBTM, SBT Lite, entre outros.
Este artigo apresentar a estrutura do mtodo SBTM - Session
Based Test Management (Gerenciamento de testes baseado em
sesses) para a gesto de testes exploratrios.

Gerenciamento de testes baseado em sesses


Dentre os mtodos de gesto de testes exploratrios existentes, o SBTM (Gerenciamento de testes baseado em sesses)
de longe o mais conhecido e documentado na literatura. No
artigo Session-Based Test Management, Jon Bach, um dos
seus idealizadores, descreve o nascimento do mtodo da seguinte forma (traduo livre): A primeira coisa que notamos
durante nossos esforos de reinventar o gerenciamento de
teste exploratrio foi que os testadores faziam diversas coisas
durante o teste que no eram exatamente teste. Neste caso, se
fosse necessrio rastrear e controlar apenas o teste, seria necessrio diferenciar teste das demais atividades. Em funo disso,
nasceu o gerenciamento por sesses. Cada sesso composta
por um perodo de tempo ininterrupto e obedece a uma misso
pr-definida, alm disso, uma sesso deve produzir resultados
tangveis e revisveis.
De forma complementar, James Bach, irmo de Jon Bach e
tambm idealizador do SBTM, descreve no artigo Exploratory
Testing Explained o mtodo de gesto da seguinte forma: o
gerenciamento de teste baseado em sesses um mtodo de
gesto projetado para tornar o teste exploratrio auditvel e
mensurvel. Bach resume as caractersticas bsicas do mtodo
de gesto baseado em sesses da seguinte forma: Em uma
sesso de trabalho com um perodo pr-determinado de tempo,

um testador explora o software para cumprir os objetivos de


uma misso e ao final apresenta os resultados.
Como podemos notar, em ambos os casos, a estrutura geral
do gerenciamento de testes baseado em sesses contm os
seguintes elementos principais: misso, sesso, testador e resultados. Nos prximos tpicos, vamos analizar detalhadamente
cada um destes elementos e entender quais as vantagens do
gerenciamento de testes baseado em sesses em comparao
com o teste exploratrio freestyle.

Misso
A misso determina o objetivo do exploratrio de forma sucinta, como se fosse um caso de teste resumido. No entanto, a
misso descreve o que deve ser testado (no como o teste deve
ser realizado). Normalmente descrita na hora da execuo
do teste exploratrio, no entanto, ela pode ser escolhida dentre
uma lista de misses pr-existentes (repositrio de misses).
importante destacar que as misses no so estticas. Ao
longo do tempo elas so repriorizadas e aperfeioadas (alm
disso, novas misses podem ser criadas ao longo do tempo).
Muitas vezes, ao final de uma sesso de teste exploratrio,
novas ideias, oportunidades ou problemas encontrados pelo
testador podem ser usados para a criao de novas misses.
Em resumo, uma misso pode ser criada a partir de vrias
origens, tais como:
Reunies/Conversas com usurios, desenvolvedores, gerentes, etc;
Estrias/Requisitos;
Itens do menu do software;
Defeitos;
Oportunidades percebidas durante uma sesso de teste
exploratrio;
Manuais/Regulamentos/Leis;
Softwares concorrentes/similares;
Verses antigas do mesmo software;
Heursticas;
Brainstorms;
Feeling do testador;
Riscos;
Entre outros.
As misses no devem ser muito especficas (testes exploratrios com durao inferior a 45 minutos) ou muito genricas
(testes exploratrios com durao superior a 2 horas). No que
tange ao formato das misses, no existe um padro ou consenso universal. No entanto, recomendado que as misses
sejam escritas no seguinte formato:
Explore (uma estria, funcionalidade, rea, risco, etc)
Com (recursos, restries, heursticas, tticas, etc)
Para (descobrir informaes, obter respostas, atingir um
objetivo).

Sesso
Uma sesso compreende um perodo ininterrupto de tempo com durao de cerca de 1 a 2 horas. Jon Bach, no artigo

Edio 54 - Engenharia de Software Magazine

37

How to Manage and Measure Exploratory Testing, recomenda 90 minutos no mximo. Sesses com menos de 45
minutos so classificadas como Curta, sesses com 90
minutos so classificadas como Normal e sesses com
aproximadamente 2 horas so classificadas como Longa.
O foco da sesso de teste exploratrio cumprir o objetivo
de uma misso. Idealmente, para cada misso deveria ser
executada apenas uma sesso de teste exploratrio. No entanto, podem ocorrer vrias sesses de testes exploratrios
para uma nica misso.
De forma geral, o que ocorre durante uma sesso responsabilidade do testador. Alm de cumprir o objetivo da misso,
permitido explorar oportunidades, questes pendentes, ou
qualquer coisa que o testador julgar relevante. Adicionalmente, durante a sesso o testador tambm investiga e registra
defeitos, assim como configura e prepara o ambiente de testes. A grosso modo, uma sesso composta pelas seguintes
atividades:
Preparao (Setup): Preparao do ambiente de testes, configurao de massa de dados, leitura de manuais, requisitos,
diagramas, etc;
Especificao (Design): Definio (modelo mental) dos casos
de testes (hipteses) baseados em heursticas, ideias, checklists,
riscos, feeling, etc;
Execuo (Execution): Execuo propriamente dita do teste
exploratrio para demonstrar se as hipteses/expectativas da
misso foram atendidas (ou no);
Oportunidades (Opportunities): Tempo gasto em atividades/exploraes/investigaes que no esto no escopo da
misso;
Relato de defeitos (Bug investigation/Report): Investigao
e registro de defeitos.

Testador
Na abordagem clssica, os testes exploratrios no so definidos antecipadamente em um plano ou roteiro de testes, eles so
dinamicamente projetados, executados e aprimorados durante
a explorao com base na intuio, julgamento e experincia do
testador. Dessa forma, uma vez dado ao testador uma misso
de testes, de sua responsabilidade usar os mecanismos e
artifcios necessrios para inventar, improvisar e, at mesmo,
aplicar tcnicas formais de projeto de casos de testes para
determinar quais hipteses e experimentos sero executados
para demonstrar se a misso de testes foi atendida (ou no).
O teste exploratrio se torna mais interessante e sofisticado
quando observado sob a tica das habilidades do testador. O
que torna o teste exploratrio to eficiente e eficaz so as habilidades do testador de ouvir, observar, pensar e relatar rigorosamente os testes sem a necessidade de instrues detalhadas.
De maneira complementar, as diversas habilidades que todo
testador deveria ter para realizar testes exploratrios so:
Navegar/Mapear: Tomar as suas prprias decises sobre o
que ser testado e como ser testado. Entender as necessidades
dos clientes, os problemas que devero ser resolvidos e assegurar aos clientes que o teste est focado nos objetivos;

38

Manipular: Fazer e gerenciar o contato com objeto do seu


estudo (o sistema que est sendo testado). Configurar e interagir com o sistema. Projetar experimentos (testes) e estabelecer
procedimentos para o ambiente/laboratrio de testes;
Observar: Levantar dados empricos sobre o objeto de estudo
(o sistema que est sendo testado). Coletar diferentes tipos de
dados ou dados de diferentes aspectos;
Modelar: Compor e trabalhar com modelos mentais sobre as
funes que sero exploradas. Identificar dimenses, variveis
e fatores dinmicos que so relevantes ao teste;
Conjeturar: Considerar possibilidades e probabilidades.
Considerar mltiplas explicaes para o mesmo fato;
Questionar: Identificar informaes ausentes e elaborar
perguntas de forma a encontrar as informaes desejadas;
Registrar: Preservar informaes sobre o processo de trabalho, progresso e descobertas. Tomar notas, categorizar e
classificar;
Relatar: Relatar profissionalmente os resultadas das exploraes de forma oral ou escrita;
Acessvel: Acesso a recursos e ferramentas para apoiar a
explorao. Acesso a pessoas que possam ajudar de alguma
forma;
Focar (re-focar): Gerenciar o escopo, profundidade e natureza da ateno;
Desviar/Retomar: Permitir o desvio produtivo de um caminho para outros caminhos possveis com o objetivo de explorar
novas ideias que surjam em determinado momento. Identificar
oportunidades sem perder o foco;
Refinar: Trabalhar rapidamente da melhor maneira de acordo com as circunstncias. Revisar uma soluo posteriormente
de forma a refin-la, aprimor-la e corrigi-la;
Alternar: Alternar entre diferentes atividades ou perspectivas diferentes de forma a permitir um progresso mais
rpido.
Com base no que foi exposto, podemos afirmar que uma parcela significativa do sucesso do teste exploratrio gerenciado
por sesses depende da experincia, intuio e julgamento
do testador que ir conduzir a explorao. Dessa forma, se o
teste exploratrio for conduzido por profissionais experientes,
muitos defeitos importantes sero encontrados rapidamente,
j que exigido menos planejamento e preparao (em comparao com estratgias tradicionais de testes).

Resultados
No gerenciamento de testes baseado em sesses, cada sesso
de teste exploratrio resulta em um conjunto de notas escritas
que pode ser revisado por algum (um lder de testes, um gerente, o cliente, etc). Esta uma das caractersticas fundamentais que diferenciam esta abordagem de testes exploratrios
em relao ao teste exploratrio freestyle. recomendado
que durante o teste exploratrio o testador deve registrar
os resultados no relatrio da sesso. Este relatrio inclui a
descrio da misso, o nome do testador, notas sobre o que
foi testado, o ambiente de testes, arquivos de dados, defeitos

Engenharia de Software Magazine - Conhecendo os testes exploratrios Parte 2

AGI L ID ADE

Ferramentas de apoio

Adicionalmente, o testador pode fazer uso de ferramentas


para registrar as evidncias da execuo do teste exploratrio.

Desde sua criao h cerca de 10 anos atrs, o teste exploratrio vem paulatinamente conquistando espao dentro
das empresas. No entanto, a carncia de mtodos de gesto
e ferramentas de apoio sempre foi um entrave para o uso de
testes exploratrios em larga escala.
Neste cenrio, o SBTM (Gerenciamento de testes baseado
em sesses) foi um divisor de guas para a comunidade de
testes em funo de ser um mtodo de gesto leve e fcil de
aplicar. Alm disso, o SBTM permite o controle sem o peso da
burocracia comum a mtodos de gesto tradicionais.

Links
Exploratory Testing Explained
http://www.satisfice.com/articles/et-article.pdf
Exploratory Testing in an Agile Context
http://www.agilistry.com/downloads/ETinAgile-agile2011-final.pdf
Exploratory Testing Explained
http://www.satisfice.com/articles/et-article.pdf
Evolving Understanding About Exploratory Testing
http://www.developsense.com/blog/2008/09/evolving-understanding-about/
Bach, James. Bach, Jon. Dynamics of Exploratory Testing
http://www.quardev.com/content/whitepapers/ExploratoryTestingasSport_JonBach_
PNSQC06pdf.pdf
How to Manage and Measure Exploratory Testing
http://www.quardev.com/content/whitepapers/how_measure_exploratory_testing.pdf
Session-Based Test Management
http://www.satisfice.com/articles/sbtm.pdf
CRAIG, R.D., JASKIEL, S. P.,Systematic Software Testing, Artech House Publishers, Boston, 2002.
PRESSMAN, R. S., Software Engineering: A Practitioners Approach, McGraw-Hill, 6th ed, Nova
York, NY, 2005.

D seu feedback sobre esta edio!


A Engenharia de Software Magazine tem que ser feita ao seu gosto.
Para isso, precisamos saber o que voc, leitor, acha da revista!
D seu voto sobre este artigo, atravs do link:

Feedback
eu

www.devmedia.com.br/esmag/feedback

Edio 54 - Engenharia de Software Magazine

39

sobre e
s

Como vimos anteriormente, o teste exploratrio depende


exclusivamente da criatividade, intuio e julgamento do
testador. Em funo disso, o teste exploratrio no pode ser
automatizado. No entanto, o testador pode fazer uso de ferramentas para apoiar a gesto do teste exploratrio. Ao invs
de usar planilhas ou arquivos, o testador pode utilizar ferramentas especializadas em gesto de testes exploratrios para
descrever as misses, registrar o status das sesses, apontar
mtricas, entre outros recursos. Dentre as ferramentas mais
conhecidas, podemos citar:
SessionCreator: https://sites.google.com/site/sessioncreator/
Session Tester: http://sessiontester.openqa.org/
Session Based Tester: https://sites.google.com/site/
sessionbasedtester/
Session Web: http://code.google.com/p/sessionweb/

Concluso

D
s

No teste exploratrio, os testadores so encorajados a investir


parte do seu tempo em investigaes de reas no relacionadas
ao escopo da misso. Este desvio do objetivo da misso chamado de Oportunidade. Para fins de registro, recomendado que
seja relatado o tempo gasto em oportunidades (em comparao
ao tempo total gasto na explorao dos objetivos da misso).
Ao final de uma sesso, o testador dever apresentar o
relatrio da sesso e as mtricas TBS para o lder de testes.
Esta prestao de contas tem o objetivo de dar visibilidade
em relao ao que foi explorado, os problemas encontrados e
os prximos passos. A reunio de prestao de contas siga a
estrutura descrita pelo acrnimo PROOF:
(P) Past (passado): O que aconteceu durante a sesso?;
(R) Results (resultados): Quais resultados foram obtidos
durante a sesso?;
(O) Obstacles (obstculos): Quais obstculos atrapalharam
a explorao?;
(O) Outlook (previso/perspectiva): O que ainda falta
fazer?;
(F) Feelings (sentimentos): Como o testador se sente (em
relao ao teste ou a qualidade do sistema)?

As evidncias podem ser capturadas por meio do registro de


comentrios, vdeos e imagens. Dentre as ferramentas existentes, podemos destacar as seguintes:
Rapid Reporter: http://testing.gershon.info/reporter/
TestExplorer: http://www.testexplorer.com/
Qtrace: http://www.qasymphony.com/qtrace-features.html
BB TestAssistant: http://www.bbsoftware.co.uk/BBTest
Assistant.aspx
Wink: http://www.debugmode.com/wink/

edio
ta

encontrados, incidentes que precisam de investigao, entre


outras informaes.
O relatrio da sesso deve conter algumas mtricas bsicas
em relao distribuio do tempo durante a explorao.
Recomenda-se o registro das mtricas TBS, que o acrnimo
para as seguintes mtricas:
( T) Test Execution/Design: Percentual do tempo total gasto
na criao e execuo dos testes exploratrios;
(B) Bug Investigation/Report: Percentual do tempo total
gasto na investigao e relato de defeitos;
(S) Setup: Percentual do tempo total gasto em prepao (estudo, configurao de hardware/software, outras atividades
no relacionadas ao teste, etc).