Você está na página 1de 26

AUTOMAO EM TESTES GEIS

AUTOMATION IN AGILE TESTING

Monique F. da Silva1, Autran G. Moreno2


1

Instituto Recncavo de Tecnologia


GESA Grupo de Engenharia de Software e Aplicaes
Universidade Salvador (UNIFACS)
monique@reconcavo.org.br, autrangm@gmail.com

Resumo
Este artigo apresenta as atividades que podem ser automatizadas dentro de um processo
de teste gil e as ferramentas que do suporte a estas atividades. Apresenta tambm
uma avaliao sobre o uso das ferramentas de automao de teste mencionadas.
Palavras-chave: teste gil; ferrramentas de teste; engenharia de software.

Abstract
This paper describes the activities that can be automated within an agile testing process
and tools that support these activities. It also presents an evaluation of the use of test
automation tools mentioned.
Keywords: Agile testing; testing tools; software engineering.

1 INTRODUO
Teste de software um processo, ou uma srie de processos, executado para
validar se o cdigo de computador faz o que foi projetado para fazer e no faz algo
fora do intencionado. Os testes podem ter diferentes objetivos como encontrar
defeitos, aumentar o nvel de confiana provendo informaes do nvel de qualidade
do software e prevenir defeitos (GRAHAM et al, 2008, p. 18). O teste de software se
constitui de atividades de grande importncia em projetos de desenvolvimento de
sistemas que contribuem para a criao de produtos de melhor qualidade e,
consequentemente, geram uma maior satisfao do cliente.
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Existem diferentes abordagens para o desenvolvimento de software e uma


delas tem ganhado bastante destaque, a abordagem gil. Tal abordagem apia-se em
dois

objetivos

fundamentais:

oferecer

produtos

inovadores

aos

clientes

(particularmente em situaes altamente incertas) e criao de ambientes de trabalho


em que as pessoas desejam ansiosamente ir ao trabalho todos os dias. (HIGHSMITH,
2004). Os mtodos geis aplicam algumas prticas que so guiadas por seus princpios
e valores fundamentais: a valorizao dos participantes no processo e suas interaes,
priorizar a funcionalidade do software em detrimento da documentao abrangente,
maior participao do cliente e principalmente capacidade adaptativa que sero vistos
adiante neste artigo com mais detalhes.
Com a popularizao das metodologias geis, muitos so os processos de
desenvolvimento de software que surgiram para trazer mudanas ao molde tradicional
de desenvolvimento. O teste de software gil precisa estar agregado ao processo de
desenvolvimento desde o incio, acompanhando todo o ciclo de vida de um software.
Mtodos geis enfatizam a colaborao entre as pessoas e as iteraes curtas
em um projeto de desenvolvimento de software. Por isso, a atividade de teste deve ser
bem planejada e gerenciada para que a fase de execuo de testes atenda ao que se
esperado e possa cumprir os prazos definidos. Existem diversas ferramentas de apoio
atividade de testes, as quais ajudam a automatizar as atividades do processo de teste.
As ferramentas quando utilizadas no momento correto trazem ganhos no s
para a equipe de testes, mas para toda a equipe de um projeto de software. A
utilizao de ferramentas permite uma boa sinergia entre toda a equipe, a atualizao
de todos envolvidos no projeto, reduo no tempo entre a identificao e a correo
de erros e maior segurana ao se efetuar refatoraes no cdigo.
A automao das atividades de teste que ser apresentada poder ser utilizada
tanto no modelo convencional quanto no modelo gil de desenvolvimento, porm
neste artigo sero mostradas as etapas de teste dentro de um processo gil e como a
automao pode contribuir neste processo.
Pelo fato da metodologia gil ser relativamente recente, o processo de teste
inserido nesta metodologia mostra-se em fase de amadurecimento. O enfoque em
140
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

automao permite que, em longo prazo, algumas atividades de teste sejam


executadas com mais eficincia e possam acompanhar o ritmo mais dinmico da
agilidade.
O objetivo deste artigo identificar atividades dentro do processo de testes
geis que podem ser automatizadas, e fazer um levantamento de ferramentas que
podem ser utilizadas, mostrando como cada uma destas ferramentas pode contribuir
em cada etapa do processo. Ser apresentada uma avaliao baseada em relatos de
experincia referente ao uso de ferramentas de automao de teste. Esta avaliao ir
fornecer informaes que podem nortear a escolha de ferramentas em um projeto de
desenvolvimento de software gil.
Este artigo est estruturado da seguinte forma: Na seo 2, so apresentados
os conceitos relacionados a testes e metodologia gil. Na seo 3, so apresentadas
algumas ferramentas de automao de testes. Na seo 4 apresentada a avaliao
das ferramentas analisadas neste trabalho e na seo 5 a concluso deste artigo

2 FUNDAMENTAO TERICA

Nesta seo sero mostrados conceitos importantes dentro do universo de


testes como: processo de teste tradicional, valores fundamentais dos mtodos geis
aplicados aos testes e automao de testes geis.

2.1. Processo de Teste Tradicional


O teste de software um processo composto de uma srie de atividades.
Existem vrias propostas de processo de teste para a abordagem tradicional na
literatura, mas a maioria contm as seguintes atividades: planejamento e controle,
anlise e design, implementao e execuo, avaliao dos critrios de sada e reporte
e atividades de fechamento de teste (GRAHAM et al, 2008, p. 20), conforme mostra a
Figura 1.

141
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Figura 1 - Atividades fundamentais de teste

As atividades de planejamento dos testes englobam a determinao do escopo


do teste, determinao dos riscos, dos objetivos dos testes, a abordagem do teste,
definio de recursos necessrios e planejamento as atividades posteriores. O controle
das atividades tem como o objetivo medir e documentar o progresso das demais
atividades e avaliar se o plano traado est sendo cumprido.
Na fase de anlise e design, os objetivos so transformados em condies de
testes. Neste momento, identifica-se o que ser testado e avaliado se o sistema e os
seus requisitos so testveis.
Nas atividades de implementao e execuo so desenvolvidos os casos, as
sutes de teste e os scripts de teste. Alm disso, a execuo dos testes iniciada, os
resultados so documentados e os bugs so reportados.
Aps a execuo dos testes, so realizadas as atividades de avaliao de
critrios de sada e reporte. Nesta etapa, os resultados dos testes so verificados para
avaliar se a quantidades de testes foi suficiente ou se mais testes sero necessrios.
Ainda nesta etapa verificado se os critrios de sada esto de acordo com o
especificado e um relatrio provendo informao a respeito dos testes gerado.
O processo finalizado com as atividades de fechamento. Neste momento
verificado se o que foi planejado est sendo entregue. Os testes so avaliados e as
lies aprendidas so levantadas. Com os resultados dos testes possvel tomar
medidas para melhorar o processo.
O processo de teste tem lugar em todo o ciclo de vida de desenvolvimento de
software e no apenas no final. importante ter isto em mente, pois segundo a regra
10 de Meyers, o custo da correo dos defeitos tende a subir quanto mais tarde eles
142
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

forem corrigidos (BASTOS et al., 2007). Se for possvel encontrar e corrigir defeitos
durante a etapa de requisitos a correo desses defeitos ser feita com menor custo
global. Assim, projetar os testes no incio do ciclo de vida pode ajudar a prevenir que
defeitos sejam introduzidos no cdigo.

2.2. Valores Fundamentais dos Mtodos geis Aplicados aos Testes

Testes geis so atividades da etapa de testes num processo de


desenvolvimento de software que adotam conceitos de metodologias geis. Para
entender melhor o que muda ao se utilizar testes geis em vez de mtodos tradicionais
de teste, preciso entender primeiro quais os conceitos que a metodologia gil trouxe
para o universo de desenvolvimento de software. Ideias e mtodos geis j existiam h
algum tempo, porm ficaram consolidados com a divulgao do manifesto gil em
fevereiro de 2001 (FOWLER; HIGHSMITH, 2001, p.2) que tem como seus quatro valores
fundamentais:
1. Os indivduos e suas interaes acima de procedimentos e ferramentas;
2. O funcionamento do software acima de documentao abrangente;
3. A colaborao dos clientes acima da negociao de contratos;
4. A capacidade de resposta a mudanas acima de um plano pr-estabelecido.
Diante destes valores identifica-se que o processo de testes inserido em um
ciclo de desenvolvimento gil necessita de adaptaes importantes (CRISPIN;
GREGORY, 2009) como:

Ter a equipe de testes envolvida no projeto;

A equipe de teste deve trabalhar mais prxima dos desenvolvedores;

Evitar o tradicional: Desculpe, os requisitos esto congelados, podemos


adicionar esta funcionalidade na prxima verso;

Executar testes em iteraes curtas;

O cliente, no a equipe de teste, decide os critrios de qualidade para o


produto.
143
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Os mtodos geis defendem uma equipe de testes mais dinmica e


participativa, logo, importante que ela esteja envolvida no projeto desde o incio e
participe de reunies com o cliente para conseguir absorver qual a sua real
necessidade. Estimula-se tambm uma interao maior com os desenvolvedores que
resultar em agir colaborativamente para alcanar os critrios de qualidade esperados
pelo cliente. Iteraes curtas so comumente utilizadas em mtodos geis, pois assim
se permite maior flexibilidade para mudanas. Considerando este contexto gil, contar
com ferramentas que possam auxiliar a automatizar certas atividades do processo,
certamente ir contribuir no dinamismo exigido nesta filosofia gil.

2.2.1 Ciclo de Vida de Testes geis


Rildo Santos (2010) afirma que para que o desenvolvimento de software seja
gil realmente ele deve ter conceitos geis aplicados na gesto do projeto, na
engenharia do software que contempla o levantamento de requisitos e arquitetura e,
tambm, no desenvolvimento que engloba as atividades de codificao, testes e
refatorao. Neste artigo sero considerados conceitos do framework SCRUM para
gesto do projeto e XP para engenharia e desenvolvimento do software.
SCRUM um framework que possui um ciclo iterativo e incremental para
desenvolvimento de software orientados a objeto (SCHWABER, 1997). Nesta
abordagem os requisitos do sistema so chamados de itens do backlog. O SCRUM
utiliza o conceito de entrega contnua de valor, ou seja, verses do software que
possuam um conjunto de itens de backlog implementados e utilizveis. Outro conceito
importante o de Sprint que uma iterao que deve ser realizada num perodo de
tempo curto (2 a 4 semanas em mdia), no qual a equipe do projeto dever produzir
um entregvel de valor para o cliente. defendido que se faam reunies frequentes
para acompanhar o andamento do projeto e reorganizar o planejamento caso algo no
esteja saindo conforme deveria.
O SCRUM possui 3 grupos de fases, para cada uma destas fases so
recomendadas atividades de teste em paralelo. O ciclo de vida de testes apresentado
144
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

com as atividades exibidas a seguir foram baseados em estudos realizados (KARLSON,


2009),(CRISPIN, 2009) e sero demonstradas nos diagramas como caixas de linha
pontilhada:

1) O pre-game (Figura 2) onde feito o planejamento, o levantamento de itens do


backlog, a priorizao destes itens pelo cliente e a definio de quais itens
faro parte de quais sprints.
Figura 2 - Pre-Game

Em estudos de caso apresentador por Yugank Bhatnagar (2008) e Erik Karlsson


(2009), observou-se que escrita de casos de testes detalhados demandam muito
tempo para serem realizados. Em vez de ser descrito o passo-a-passo destes casos,
eles mostram que apenas a identificao de todos os cenrios de teste possveis
suficiente para conduzir os testes de maneira eficiente.
2) Game (Figura 3) que o desenvolvimento de funcionalidades que sero
liberadas em um sprint, respeitando constantemente as variveis de tempo,
requisitos, qualidade e custo.

145
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Figura 3 - Game

Segundo Aderson Bastos (2007), testes unitrios so aqueles aplicados aos


menores componentes de cdigo criados. Na grande maioria dos casos so realizados
por desenvolvedores. Os testes funcionais so aqueles realizados para verificar se os
requisitos e as especificaes do sistema foram atendidos. Os testes de regresso so
executados em segmentos j testados aps a implementao de uma mudana em
outra parte do software. Os testes exploratrios so executados quando existe pouca
documentao ou quando o prazo curto e so baseados na experincia e intuio do
testador.
Os testes de regresso devem executados ao final de cada sprint (BHATNAGAR,
2008) (KARLSSON, 2009). Como os testes de regresso so executados com bastante
frequncia, teste manual, neste caso, iria demandar muito tempo. Por isso,
recomenda-se a automao destes testes.
Diferente de um processo de teste tradicional, num processo de teste gil
defende-se uma aproximao entre testadores e desenvolvedores, eles devem se

146
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

apoiar para garantir a qualidade do software atravs de testes. O testador pode sugerir
ao desenvolvedor ideias para criao de testes e vice-versa (TALBY, 2006).
3) Pos-game (Figura 4): Preparao para liberar a verso final, incluindo sua
documentao e testes.
Figura 4 - Pos-Game

O XP um framework gil para desenvolvimento de software. Dele sero usados os


conceitos :

Refatorar quando e onde for possvel. Refatorar mudar o cdigo j


implementado de maneira a escolher dentre as solues de um problema qual
a mais flexvel, eficiente e eficaz.

Codificar o teste unitrio primeiro.

Toda produo de cdigo programada em pares.

Quando um bug encontrado, testes so criados.

2.3. Automao de Testes geis


"O propsito da automao de testes pode ser resumidamente descrito como a
aplicao de estratgias e ferramentas tendo em vista a reduo do envolvimento
humano em atividades manuais repetitivas." (DIZ, 2009 apud KANER, 2001)
Fazer o uso de algumas ferramentas que automatizam etapas do processo de
teste pode fornecer aos envolvidos ganho de produtividade e evitar erros humanos,
caso esta automao seja usada de maneira apropriada. Alguns dos princpios da
agilidade podem ser facilitados com o uso de ferramentas e tecnologias. Ferramentas
web online de reporte de defeitos, por exemplo, promovem uma integrao maior dos
envolvidos no processo de desenvolvimento como analistas, testadores e
147
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

desenvolvedores. A praticidade que dada por muitas destas ferramentas ajuda a ter
uma documentao mais fcil de ser atualizada, o que naturalmente reduz o tempo
gasto com editores tradicionais de texto que oferecem pouco apoio atividade de
documentao. Segundo Bach (2003), automao de teste muito mais do que fazer
com que o computador execute os testes. Existem mais atividades que podem ser
automatizadas para facilitar o trabalho da equipe como, por exemplo, Gerao de
dados e scripts de teste, configurao de sistema, simuladores, gravao de atividades,
anlise de cobertura de testes, Gerenciamento de Testes etc. Automao est no
corao do desenvolvimento gil de software e a chave para testes geis (KARLSSON,
2009).
As ferramentas existentes de apoio ao teste atualmente podem ajudar no
apenas na etapa de execuo, mas tambm no planejamento, na criao dos casos de
teste, no reporte de defeitos etc.

2.3.1 Situaes candidatas automao


Quando se deseja aplicar a automao na etapa de execuo dos testes das
funcionalidades do sistema que, em geral, feita manualmente por um testador,
vrios fatores devem ser avaliados para se identificar se vantagem ou no se
automatizar. Segundo Jorge Diz (2009), testes automatizados tm algumas
caractersticas que diferem de testes manuais conforme podemos ver no quadro
abaixo:

148
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Tabela 1 - Testes Manuais X Testes Automatizados

Caractersticas

Manual

Automatizado

Esforo

Requer
um
grande Requer um grande esforo
esforo de criao e de criao e manuteno
manuteno

Reuso

Baixa reutilizao

Alta reutilizao

Interpretao das Regras de Dependente


da Exigem que cada ao seja
Negcio
linguagem natural que programada
ambgua
Execuo

So demorados
executar

para So rpidos

Produtividade

Susceptvel ao humor do No susceptvel ao humor


testador
do testador

Criatividade/Mudanas

Permite a explorao de No so capazes de


situaes diferentes
explorar
situaes
diferentes, se limitando ao
propsito
que
foram
criados.

Requisitos do Testador

Exige profissionais com Exige profissionais com


experincia em testes
experincia em teste e
desenvolvimento

De modo geral, existem testes que so mais aconselhveis a serem


automatizados do que outros como, por exemplo:

Testes de regresso - Teste de regresso a realizao de testes das


ocorrncias que foram abertas no teste anterior e testes nos mdulos que
foram afetados pelas mudanas realizadas.

Tarefas repetitivas - a automao ideal para este caso, pois permite que o
testador foque sua ateno em situaes inesperadas.

Smoke tests - so testes bsicos aplicados s principais funcionalidades do


sistema. Este teste visa identificar defeitos nestas funcionalidades com o intuito
149
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

de avaliar se a verso liberada pode continuar sendo testada pela equipe de


testes.

Clculos matemticos - evitar erros humanos.

Funcionalidades crticas - como seres humanos so influenciados pelo humor


para execuo de uma tarefa, funcionalidades crticas no deveriam depender
de um testador que pode esquecer-se de testar algo importante.

Figura 5 - Testes candidatos automao (DIZ, 2009)

Por outro lado a automao no recomendada para os seguintes casos:

Funcionalidades novas - pois estas tm uma grande probabilidade de


mudanas, o ideal seria criar o teste quando se alcana certa estabilidade.

Funcionalidades pouco usadas - haver um custo para automatizar e um


esforo desnecessrio para automatiz-los, pois estes testes sero pouco
aplicados j que a funcionalidade no ter muita utilizao.

Funcionalidades que exigem inspeo visual - No existe uma maneira de


avaliar a interface de um sistema e a sua usabilidade. Para isso, necessria a
viso de um testador.
150
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Prottipos - O prottipo algo que ser utilizado momentaneamente no incio


de um projeto de software, para ser exibido para clientes ou para a prpria
organizao. Por isso, no h a necessidade de automatizar testes em
prottipos j que este ainda no o software propriamente dito.

Figura 2 -Testes que no se recomenda a automao (DIZ, 2009)

Vale lembrar que a aquisio de ferramentas, compartilhadas pelas diferentes


equipes no processo de desenvolvimento de software, deve ser discutida com todos os
envolvidos, visando selecionar aquela que melhor se aplica aos processos que sero
adotados e evitar gastos desnecessrios.

3 FERRAMENTAS DE TESTES

A seguir sero descritas algumas ferramentas no pagas que apoiam as


atividades de teste mencionadas na seo 2.1.1 Ciclo de Vida de Testes geis.

Testlink O testlink uma ferramenta gratuita e Open Source de


gerenciamento de casos de teste utilizada em plataforma Web. Esta ferramenta pode
151
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

ser utilizada para registro dos requisitos do sistema e criao dos seus casos de teste.
Estes casos de teste podero ser vinculados aos requisitos permitindo sua
rastreabilidade. Aps o desenvolvimento, esta ferramenta pode ser utilizada para
apoio na execuo destes casos, registrando seus status (passou, falhou ou bloqueado)
durante a fase de testes. Aps a finalizao dos testes, possvel gerar relatrios com
toda a informao registrada durante a execuo dos testes. O testlink permite criar
vrios projetos de teste e organizar os casos de teste de cada projeto em sutes, de
acordo com a necessidade. Dessa maneira, caso existam vrios projetos de software
em andamento, possvel ter em uma mesma ferramenta todos os casos de teste
disponveis para cada projeto.
Alm disso, por ser uma ferramenta web, possvel ser acessada de qualquer
local atravs de um browser. Qualquer alterao realizada por um membro da equipe,
em um caso de teste, por exemplo, ser visualizada imediatamente pelos demais,
evitando a utilizao de casos de teste obsoletos. Esta interao imediata favorece o
controle e gerenciamento dos casos de testes nas equipes geis.
O testlink uma ferramenta simples e intuitiva que dispensa muito tempo de
treinamento.
Salom TMF O Salom TMF uma ferramenta que apoia todo o
processo de teste. Ou seja, permite criar casos de teste, executar testes manuais ou
automatizados (atravs do plug-in Junit), registrar os resultados, gerenciar os
requisitos e os defeitos do sistema e produzir relatrios de resultados em html. Na
criao dos casos de teste, possvel criar casos detalhados, anexar arquivos ou
associar urls. Esta ferramenta permite que casos de teste gerados em arquivos xml ou
xls possam ser importados para a ferramenta. Alm dos casos de teste, os ambientes
tambm so cadastrados e gerenciados, de acordo com o projeto. Este ambiente pode
ser um browser, um sistema operacional, uma verso do produto etc.
Para executar os casos de teste, estes precisam estar associados a campanhas.
Cada campanha pode ter casos de teste diferentes, dependendo da necessidade do

152
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

teste. Estas campanhas, por sua vez, precisam estar associadas a uma execuo de
campanha.
O Salom TMF possui uma integrao com a ferramenta de gesto de defeitos
Mantis e permite que defeitos sejam cadastrados no Mantis, assim que um caso de
teste falhe. Basta selecionar a opo Mantis no menu e solicitar a insero de uma
anomalia. Uma janela se abre com os campos necessrios ao preenchimento do
defeito. A anomalia fica ento associada ao resultado do teste que falhou.
Esta ferramenta possui mais funcionalidades que o testlink, por isso, exige
maior esforo para o seu aprendizado. uma ferramenta mais completa e complexa.
Porm, de maneira semelhante ao testlink, uma ferramenta web e, por isso, pode
facilitar o processo de teste gil.
Mantis uma ferramenta gratuita e Open Source que permite o
gerenciamento de defeitos. Com o mantis possvel gerenciar os defeitos de vrios
projetos ao mesmo tempo. Os projetos cadastrados no mantis podem ser acessados
facilmente atravs de uma lista de projetos. A partir do momento em que um projeto
selecionado, possvel criar, editar ou remover um defeito associado a ele.
Para realizar o controle das operaes realizadas sobre um defeito, o mantis
possibilita o controle de perfis de usurios. Cada perfil pode ser configurado de acordo
com a necessidade dos projetos. Alm disso, possvel gerenciar os usurios em
relao a visibilidade dos projetos. Ou seja, caso existam dois projetos, um usurio
cadastrado pode ter apenas a viso de um destes projetos.
Os defeitos cadastrados podem ter diversas severidades, status e prioridades
associadas a eles. Estes dados podem ser configurados, para atender aos processos da
organizao, por ser uma ferramenta de cdigo aberto.
Por ser uma ferramenta web, possvel acess-la de qualquer lugar atravs de
um browser.
Com a utilizao do mantis, assim que um defeito cadastrado pelo testador,
este pode ser imediatamente atribudo a um desenvolvedor para ser corrigido. Dessa
forma, enquanto os testadores trabalham, os desenvolvedores tambm podem
153
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

executar sua atividade, permitindo, assim, a gerao de uma verso corretiva do


software em teste de maneira mais rpida.
Redmine uma ferramenta Web gratuita e Open Source de
gerenciamento de projetos e gerenciamento de defeitos. possvel realizar o
gerenciamento de mais de um projeto atravs do Redmine. De maneira semelhante ao
Mantis, possvel definir perfis de usurios e realizar o controle de acesso aos
projetos. Alm disso, possvel definir status de tickets (defeitos ou novas atividades)
e campos personalizveis de acordo com a necessidade da organizao. Esta
ferramenta permite criar tickets, definir tempo de trabalho para eles e atribuir
atividade para uma determinada pessoa. Dessa forma, quem dever realizar a
atividade receber uma notificao por e-mail informando sobre a atividade que ele
dever realizar. medida que a atividade est sendo executada, o usurio atualiza o
ticket, indicando a porcentagem da tarefa que j foi realizada.
O Redmine permite a integrao com sistema de controle de verso (svn, git,
cvs) e contm calendrio e grficos de Gantt para representar os projetos e seus
deadlines (prazos de entrega).
Esta ferramenta, como o Mantis, permite que durante os testes, os
desenvolvedores tomem conhecimento dos defeitos na ferramenta e possam executar
as correes em paralelo. As verses de teste so geradas mais rapidamente, o que
favorece as equipes geis.
xUnit so em geral frameworks para criao de testes unitrios.
O teste unitrio um teste que faz verificaes na unidade mais bsica do software:
suas funes ou mtodos. Ao contrrio de outras atividades de teste, a criao dos
testes unitrios de responsabilidade do programador e feita durante a
implementao do sistema.
Testes Unitrios podem ser criados antes, durante ou aps o desenvolvimento,
porm recomendvel que se use as prticas de TDD (Desenvolvimento Orientado a
Testes) que recomendam que o teste seja criado antes da funcionalidade, pois desta
154
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

maneira quando os mtodos forem desenvolvidos iro forar a seguir um padro e j


podero ser validados quanto corretude.
Em geral bastante custoso ou at impossvel em alguns casos se criar testes
unitrios para projetos que no foram planejados para isto, por exemplo, quando
funes so grandes demais, ou quando se retorna void em um mtodo ou funo.
Testes unitrios apoiam a flexibilidade para mudanas em mtodos geis, pois
permitem que se faa refatorao ou melhorias na aplicao de maneira mais
confivel, porque uma vez alterados pode-se tentar identificar impactos rodando-se os
testes criados. Alm disto, alguns desenvolvedores geis defendem que testes
unitrios bem criados podem ser considerados como parte da documentao, pois
mostram regras de negcios do sistema.
Jester uma ferramenta de apoio ao uso de testes unitrios
criados com JUnit (xUnit para Java). Seu objetivo ajudar a identificar se os testes
unitrios criados esto de fato sendo teis e cobrindo o cdigo fonte apontando erros
caso uma manuteno corretiva ou evolutiva seja feita. Para iniciar suas atividades
necessrio se certificar primeiro de que nenhum teste unitrio falhe. Ele realiza as
seguintes atividades:
1. Encontra o cdigo que no est coberto por testes;
2. Faz algumas alteraes no cdigo fonte;
3. Executa testes;
4. Exibe um relatrio dizendo o que mudou;
5. Mostra as alteraes feitas que levaram os testes a falhar.
Como o Jester faz alteraes no cdigo fonte importante ter um backup antes
de execut-lo. Um cdigo considerado bem coberto por testes unitrios caso
alteraes no cdigo levem os testes a falhar, caso contrrio significa que o nmero de
testes unitrios criados ainda no suficiente para dar certa margem de segurana na
refatorao.

155
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Selenium ferramenta para automatizar a execuo de testes em


sistemas web. O selenium IDE um Add-on para o navegador Firefox que permite a
gravao de um roteiro durante a execuo de um teste manualmente. Este roteiro
pode ser usado para repetio automtica dos testes executados manualmente e
tambm convertido em cdigo java ou outras linguagens.
A princpio o selenium uma ferramenta de teste de caixa preta, ou seja, um
teste de software para verificar a sada dos dados usando entradas de vrios tipos
ignorando detalhes da perspectiva interna do sistema (cdigo fonte). No entanto,
utilizando o selenium RC o desenvolvedor poder integrar seus testes com
particularidades da implementao do sistema tornando-o assim num teste de caixa
cinzenta. Para uso do selenium RC requerido o conhecimento de pelo menos uma
das linguagens suportadas o que pode impedir que alguns testadores o utilizem.
O selenium atua na automao de testes funcionais e assim como xUnit
contribuem para refatorao na metodologia gil e documentao das regras de
negcio.

Sahi uma ferramenta de teste Open Source semelhante ao


Selenium, ou seja, que automatiza os testes de aplicaes web. Diferentemente do
Selenium, que um Add-on de um navegador, o Sahi utiliza um Proxy para injetar
Javascript em pginas web e, dessa maneira, executar os testes. O Sahi pode ser
executado a partir de qualquer browser. Quando o Sahi executado, aps ser
configurado corretamente, ele automaticamente modifica o Proxy do browser e, a
partir de ento, poder ser iniciada a gravao dos testes executados manualmente
gerando, assim, os scripts automatizados.
Nos scripts de teste gerados podero ser introduzidas funes lgicas, o que
pode facilitar o seu entendimento e deixar melhor organizado.
Aps a execuo de um script, possvel visualizar o log da execuo. Caso o
teste falhe, presena de defeitos identificada atravs do realce das linhas
executadas na cor vermelha. Em caso de sucesso, o realce das linhas ser em verde.
156
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

A vantagem desta ferramenta que apenas utilizando-a, devidamente


configurada, possvel executar um script a partir de qualquer browser. Alm disso,
no existe a necessidade de conhecimento de alguma linguagem de programao para
desenvolver os testes automatizados.
Os testes criados a partir do Sahi so executados um de cada vez. No
possvel executar mais de um script criado de uma s vez.
Assim como o Selenium, o Sahi possibilita que as tarefas repetitivas do teste
sejam automatizadas. Tais tarefas, caso sejam executadas manualmente, so
demoradas e comprometem as entregas curtas que caracterizam os processos geis.

4 AVALIAO DAS FERRAMENTAS DE AUTOMAO


Esta seo apresenta uma avaliao feita sobre as ferramentas de automao
de testes. A avaliao de algumas das ferramentas s foi possvel atravs de
informaes obtidas por pesquisas realizadas na internet nos sites oficiais, fruns e
comunidades das ferramentas. O resultado alcanado foi baseado nestas informaes
obtidas, bem como na experincia pessoal de uso das ferramentas pelos autores deste
artigo. O objetivo que este levantamento sirva de base para consulta permitindo a
escolha das ferramentas que mais se adequam a cada situao. Os critrios utilizados
para a avaliao das ferramentas foram os mesmos usados por Elton Sixpence (2011).
Porm, foram includos alguns adicionais, os quais foram acrescentados com base nos
valores fundamentais da abordagem gil j apresentados.

Os critrios sero os seguintes:

4.1 Compatibilidade e Navegadores Suportados


Este critrio importante, pois informa se a ferramenta compatvel com os
sistemas operacionais e navegadores, a depender do caso, mais utilizados atualmente.

157
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

4.2 Linguagem de Programao dos Scripts


Muitas das ferramentas que automatizam a execuo de testes utilizam scripts
que descrevem os passos desta execuo. Estes scripts tambm podem utilizar
linguagens diversas. A avaliao ir pontuar com valor maior, ferramentas que
suportam uma maior variedade de linguagens.

4.3 Necessidade de Formao


Ferramentas complexas podem trazer a necessidade de treinamento para
facilitar o entendimento e uso por parte da equipe de envolvidos no projeto.
4.4 Estabilidade e Verses da Ferramenta
Uma medida de qualidade para um software pode ser a quanto tempo ele
existe e com que freqncia atualizado, isto porque, a cada verso liberada, novas
funcionalidades so adicionadas e erros so corrigidos. Alm disto, o risco de se obter
uma ferramenta que no ser continuada menor.

4.5 Interface Grfica e Usabilidade


Uma ferramenta que tenha boa usabilidade proporciona uma interface grfica
simples e fcil de usar. Atualmente esta uma das caractersticas importantes para a
seleo de uma ferramenta, pois este fato reduz o esforo e tempo gastos no seu
aprendizado.

4.6 Documentao, Suporte e Comunidade de Utilizadores


Para adotar uma ferramenta, necessrio fazer uma avaliao das suas
caractersticas, instalar e utilizar. Por isso, de grande importncia que a
documentao e o suporte ferramenta sejam suficientes para guiar estas atividades.

158
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

A quantidade de utilizadores pode ser utilizada como um indicador de maturidade da


ferramenta.

4.7 Instalao e Configurao do Ambiente de Testes


Este quesito deve ser analisado, pois a instalao e configurao de um
ambiente de testes automatizado so mais custosas do que um ambiente de testes
manuais devido maior complexidade. Por isso, importante estimar os custos antes
de partir para a prtica.

4.8 Limitaes
Para avaliar se a ferramenta ir atender s necessidades, importante analisar
as suas limitaes. Por ser tambm um software, normal serem encontradas
limitaes diversas na ferramenta. Mas para uma determinada organizao uma
limitao pode no ser motivo para a no utilizao dela. Enquanto que para outra
pode ser um grande empecilho.

4.9 Executa Testes de Caixa Branca


O teste de caixa branca o teste baseado em programa que requer a
especificao do cdigo fonte e seleo dos casos de teste que exercitem partes do
cdigo e no de sua especificao. (MALDONADO et al. , 2007, p.3).

4.10 Executa Testes de Caixa Preta


O teste de caixa preta o teste baseado em especificao cujo objetivo
determinar se o programa satisfaz aos requisitos funcionais e no-funcionais que
foram especificados. (MALDONADO et al. , 2007, p. 4).

159
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

4.11 Viabiliza melhor comunicao entre a equipe


A comunicao uma das principais caractersticas de uma equipe gil. Em um
projeto de software, a equipe pode estar geograficamente espalhada e, por isso,
extremamente importante a existncia de ferramentas que facilitem e contribuam
neste ponto.

4.12 Documentao mais eficiente (reduz necessidade de papel, facilita criao e


atualizao)
Conforme citado anteriormente, um dos valores da metodologia gil o
funcionamento do software acima de documentao abrangente (FOWLER;
HIGHSMITH, 2001, p.2). Apesar da metodologia gil no despender muito tempo em
documentao, importante que todas as informaes necessrias ao projeto estejam
acessveis de alguma forma.
As ferramentas podem fornecer formulrios para criao de documentao dos
testes de maneira simples, prtica e eficiente. Dessa forma, proporciona uma reduo
da necessidade de criar grandes templates e documentar em papel.

4.13 Ouvir o cliente


Para o cliente importante existir um canal de comunicao alm das reunies
presenciais ou por telefone. importante que as requisies de mudanas que ele
solicite fiquem registradas e que possam ser visualizadas por todos. O apoio de uma
ferramenta neste caso facilita a comunicao do cliente e dissemina as solicitaes do
cliente para toda a equipe de maneira prtica.

4.14 Apoia Adaptatividade e Flexibilidade do Software


Para ser realizada a refatorao de um sistema de forma segura, necessrio
garantir que no sero introduzidos erros no sistema e que as funcionalidades do
160
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

sistema no sero alteradas do ponto de vista do usurio. A existncia de uma


ferramenta que apoie esta atividade de grande importncia para o desenvolvimento
de software, principalmente para aqueles mais complexos.
A Tabela 2 apresentada a seguir utiliza a escala de numerao de 1 a 5 para pontuar os
critrios acima citados sendo:

1 ruim

2 regular

3 mdio

4 bom

5 timo

X no se aplica

Sahi

Selenium

Jester

XUnit

Redmine

Mantis

Salom
TMF

Testlink

Tabela 2 - Avaliao das Ferramentas de Automao de Testes

Compatibilidade e
Navegadores
Suportados

Linguagem
Programao
Scripts

de
dos

Necessidade
Formao

de

Estabilidade
Verses
Ferramenta

e
da

Interface Grfica e
Usabilidade

Documentao,
Suporte
e
Comunidade
de
Utilizadores

Instalao
Configurao
Ambiente
Testes

e
do
de

161
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

Limitaes

Executa Testes de
Caixa Branca

Executa Testes de
Caixa Preta

Viabiliza
melhor
comunicao entre
a equipe

Documentao
mais eficiente

Ouvir o cliente

Adaptatividade
Flexibilidade

5 CONCLUSO
Existem vrias atividades no processo de testes geis que podem ser
beneficiadas com o uso de ferramentas de automao. Mtodos geis defendem a
automao, portanto a busca por ferramentas de auxlio ao teste se torna uma tarefa
importante em um projeto norteado pela agilidade. O nmero de software gratuito
com a finalidade de apoiar o teste j considervel, e muitos deles j esto ganhando
certo nvel de maturidade. O uso destas ferramentas pode trazer um ganho de
produtividade e aumento da qualidade do software bem como, um maior controle
sobre o processo de teste como um todo. Uma anlise de ferramentas pagas poderia
ser feita em trabalhos futuros criando-se critrios de comparao para avaliar as
diferenas entre estas e as ferramentas gratuitas para o usurio medir se vale pena
ou no um investimento financeiro nesta rea. Percebe-se que os instrumentos de
automao existentes atualmente no englobam todas as etapas de um processo de
testes sendo que cada uma especfica para uma ou algumas das etapas em que pode
contribuir. Caso ocorra um amadurecimento maior unindo estas diversas contribuies
em uma ferramenta nica seria de grande valia.

162
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

REFERNCIAS
FOWLER, Martin; HIGHSMITH, Jim. The Agile Manifesto. Software Development
Magazine. 2001. Disponvel em: <http://www.scribd.com/doc/55710137/The-AgileManifesto-SDMagazine>. Acesso em: 01 ago. 2011.
HIGHSMITH, Jim. Agile project management: creating innovative products. Boston:
Pearson Education, Inc. 2004. p. 19.
BACH, James. Agile Test Automation. British Computer Society SIGST. 2003. White
Paper. Disponvel em: <http://www.satisfice.com/presentations.shtml> Acesso em 03
ago. 2011.
MYERS, J. Glenford. The Art of Software Testing. Segunda Edio. New Jersey: John
Wiley & Sons Inc. 2004. p. 8-11.
GRAHAM, Dorothy; VEENENDAAL, Erik van; EVANS, Isabel; BLACK, Rex. Foundations of
Software Testing: ISTQB Certification. Cengage Learning Business Press., 2008.
CRISPIN, Lisa; GREGORY, Janet. Agile Testing: A practical guide for testers. AddisonWesley Professional, 2009.
KARLSSON, Erik; MRTENSSON, Fredrik. Test processes for a Scrum team. 2009. 107 f.
Tese (Mestrado) - Lund University, Sweden. 2009.
MULLER, Matthiaas M.; TICHY, Walter F. Tichy. Case Study: Extreme Programming in a
University Environment. IEEE. 2001. Disponvel em:
<http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=919128> Acesso em 24 set.
2011.
TALBY, David; KEREN, Arie; HAZZAN, Orit; DUBINSKY, Yael. Agile Software Testing in a
Large-Scale Project. 2006. Publicado pela IEEE Computer Society.
BHATNAGAR, Yugank; BHAMBRI, Varun. Our Approach in Overcoming Testing
Challenges in Agile Environment. In: Test 2008: Agility in Testing. 2008. Nova Deli,
India.
DIZ, Jorge; NOGUEIRA, Elias. Agilidade com Ferramentas de Automao. TDC In: The
Developers Conference. 2010. So Paulo. Disponvel em:
<http://www.slideshare.net/elias.nogueira/agilidade-com-ferramentas-de-automaocomo-e-por-qu>. Acesso em 01 ago. 2011.

163
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc

AUTOMAO EM TESTES GEIS

SIXPENCE, Elton; ADO, Pedro; SMITH, Camaron. Automatizao De Casos De Teste


Como Processo De Melhoria Da Qualidade Do Software: O Caso Da Aplicao ELearning Isupac3 No Isutc. 2011. Disponvel em:
<http://www.math.ist.utl.pt/~padao/publications/11-SAS-CLME/11-SAS-ISUPAC3.pdf>
Acesso em: 16 set 2011.
SANTOS, Rildo. Engenharia de Software 100% gil (SCRUM, FDD e XP). 2010.
Disponvel em: <http://pt.scribd.com/doc/71207440/Scrum> Acesso em: 17 set 2011.
MALDONADO, Jos Carlos; BARBOSA, Ellen Francine; VINCENZI, Auri Marcelo Rizzo;
DELAMARO, Mrcio Eduardo; SOUZA, Simone do Rocio Senger de; JINO, Mario.
Introduo ao Teste de Software. In: SIMPSIO BRASILEIRO DE ENGENHARIA DE
SOFTWARE, 19., 2007. Joo Pessoa Anais... PB. Minicurso. 2007.
ALVES, Angela Maria; JUNIOR, Claudio Andr da Silva. Avaliao da Maturidade de um
Software de Automao de Testes Livres. In: CONFERNCIA IADIS IBERO-AMERICANA
WWW/INTERNET. 2008. Lisboa, Portugal
BASTOS, Aderson; RIOS, Emerson; CRISTALLI, Ricardo; Moreira, Trayah. Base de
conhecimento em teste de software. So Paulo: Martins, 2007.
FEITOSA, Daniela. Um estudo sobre o impacto do uso de desenvolvimento orientado
por testes na melhoria da qualidade de software. 2007. 55 f. Monografia (Graduao)
- Cincias da Computao, Universidade Federal da Bahia, Salvador, 2007.
RIBEIRO, Eliza Fabiane Martins. Automao em Testes de Software Utilizao da
ferramenta Selenium. 2010. Disponvel em:
<http://pt.scribd.com/doc/38644873/AutomacaoEmTestesDeSoftwareUtilizacaoDaFerramentaSelenium> Acesso em 24 set. 2011.
CAETANO, Cristiano. Automao e Gerenciamento de Testes - Aumentando a
Produtividade com as Principais Solues Open Source e Gratuitas (e-book). 2007.
Disponvel em:
<http://www.digitalworks.eti.br/DigitalWorks/Upload/Curso/automa_teste.pdf>
Acesso em 26 set. 2011.

164
Revista de Sistemas e Computao, Salvador, v. 1, n. 2, p. 139-164, jul./dez. 2011
http://www.revistas.unifacs.br/index.php/rsc