Escolar Documentos
Profissional Documentos
Cultura Documentos
Framework para Automação de Testes Funcionais Utilizando o Rational Functional Tester
Framework para Automação de Testes Funcionais Utilizando o Rational Functional Tester
Framework para Automação de Testes Funcionais Utilizando o Rational Functional Tester
CENTRO DE INFORMTICA
GRADUAO EM CINCIA DA COMPUTAO
Assinatura
Este Trabalho de Graduao resultado dos esforos do aluno Rafael Oliveira
Nbrega, sob a orientao do professor Alexandre Marcos Lins de Vasconcelos, sob o
ttulo de Framework para automao de testes funcionais utilizando o Rational Functional
Tester. Todos abaixo esto de acordo com o contedo deste documento e os
resultados deste Trabalho de Graduao.
_________________________________________
Rafael Oliveira Nbrega
_________________________________________
Alexandre Marcos Lins de Vasconcelos
-I-
Agradecimentos
Gostaria de agradecer a todas as pessoas que ajudaram direta ou
indiretamente para a realizao deste trabalho:
Agradeo a toda minha famlia por estar mais uma vez ao meu lado e
por sempre me incentivar apesar dos meus momentos de ausncia.
-II-
Resumo
Este trabalho prope a construo de um framework para automao de
testes funcionais utilizando a ferramenta Rational Functional Tester e a tcnica
para construo e organizao de scripts de teste por decomposio funcional.
A utilizao de frameworks para automatizar testes de software isola a
aplicao sob teste dos scripts de teste provendo um conjunto de funes e
bibliotecas de funes que sero utilizados durante a automao.
Esta abordagem aumenta a independncia na execuo e o reuso de
cdigo entre os scripts de automao, melhorando a robustez da execuo e a
manutenibilidade dos scripts, respectivamente.
-III-
Sumrio
1.
Introduo............................................................................................................... 1
1.1. Metodologia para realizao do trabalho .................................................. 2
1.2. Estrutura do Trabalho................................................................................... 3
2. Automao de Testes Funcionais ........................................................................ 4
2.1. Dificuldades da automao de testes de software.................................... 4
2.2. Fatores de sucesso da automao de testes de software.......................... 5
2.3. Consideraes Finais..................................................................................... 8
3. Ferramenta IBM Rational Functional Tester...................................................... 9
3.1. Viso Geral...................................................................................................... 9
3.2. Processo de Automao.............................................................................. 10
3.3. Extenso do Rational Functional Tester ................................................... 16
3.4. Consideraes Finais................................................................................... 19
4. Framework para automao de testes funcionais ............................................. 20
4.1.
Melhorias no processo ................................................................................ 20
4.2.
Arquitetura do Sistema............................................................................... 26
4.3.
Consideraes Finais................................................................................... 28
5. Resultados Obtidos ............................................................................................. 30
5.1.
Contexto ........................................................................................................ 30
5.2.
Anlise dos Resultados ............................................................................... 31
5.3.
Consideraes Finais................................................................................... 37
6. Concluses e Trabalhos Futuros........................................................................ 39
6.1.
Dificuldades Encontradas .......................................................................... 39
6.2.
Trabalhos Futuros........................................................................................ 40
Referncias.................................................................................................................... 41
APNDICE A - Comparao entre Ferramentas de Automao de Testes
Funcionais..................................................................................................................... 43
-IV-
ndice de Figuras
Figura 1 Rational Software Development Platform - Rational Functional
Tester .......................................................................................................................... 9
Figura 2 Tela Inicial do Rational Functional Tester......................................... 10
Figura 3 Processo Record & Playback........... ........................................................ 11
Figura 4 Datapool do Rational Functional Tester. ............................................ 12
Figura 5 Janela mostrada durante filmagem dos scripts. ............................... 13
Figura 6 Janela mostrada durante execuo dos scripts................................. 13
Figura 7 Log gerado pela Execuo. .................................................................. 15
Figura 8 Extenso do Processo Record & Playback............................................ 16
Figura 9 Janelas mostradas durante a adio de um ponto de verificao.. 18
Figura 10 Processo de Decomposio Funcional ............................................. 25
Figura 11 Arquitetura do Sistema ..................................................................... 26
Figura 12 Arquitetura do pacote acoes ............................................................ 27
Figura 13 Arquitetura do pacote POI ............................................................... 28
Figura 14 Comparao dos custos de execuo automtica e manual por
ciclo ........................................................................................................................... 37
-V-
ndice de Tabelas
Tabela 1 Custos Fixos da Automao de Testes.................................................... 33
Tabela 2 Custos Variveis da Automao de Testes............................................. 33
Tabela 3 Custos Variveis dos Testes Manuais ..................................................... 34
Tabela 3 Variveis do ROI da automao de testes .............................................. 36
Tabela 4 Matriz de comparao entre Ferramentas de Automao de Testes
Funcionais..................................................................................................................... 46
-VI-
1. Introduo
A atividade de teste envolve a execuo de uma implementao do
software com os dados de teste e a anlise de suas sadas e de seu
comportamento operacional, a fim de verificar se foi executada conforme o
esperado [14].
O custo para correo de um erro na fase de manuteno de sessenta a
cem vezes maior do que corrigi-lo durante o desenvolvimento [11].
Dessa forma, a atividade de testes uma etapa crtica para o
desenvolvimento de um software. Embora durante todo o processo de
desenvolvimento de software sejam utilizados mtodos, tcnicas e ferramentas a
fim de evitar que erros sejam introduzidos no produto, a atividade de teste
continua sendo de fundamental importncia para a eliminao dos erros que
persistem.
Para se desenvolver um software podemos fazer diferentes tipos de teste,
com diversos objetivos - performance, carga, funcionalidade, estresse, entre
outros [7].
Os testes funcionais so testes derivados da especificao do software ou
componente, ou aqueles que o testador se preocupa somente com a
funcionalidade do sistema e no com sua implementao, so os mais utilizados
devido necessidade que os softwares produzidos faam o que foi acordado com
o cliente na fase de anlise de requisitos [14].
J a execuo de testes de software pode ser feita tanto de forma manual
quanto automatizada. A execuo manual consiste na reproduo por uma
pessoa do teste previamente definido e documento. J a execuo automtica
consiste na automao do processo de teste manual atualmente em uso [17].
Scripts de teste devem ser construdos para reproduzir os testes que sero
executados automaticamente.
Cada uma destas formas tem suas vantagens e desvantagens, mas os
testes manuais tm um grande problema em relao ao tempo de execuo em
relao ao tempo de execuo de testes automatizados.
-1-
1.1.
1.2.
Estrutura do Trabalho
Alm desta introduo, esta monografia est dividida em mais cinco
captulos.
O captulo 2 apresenta os conceitos sobre automao de testes, suas
principais dificuldades e, abordagens e tcnicas para super-las.
O captulo 3 descreve a ferramenta de automao de testes funcionais IBM
Rational Functional Tester, utilizada como base para criao do framework.
O captulo 4 apresenta o framework para automao de testes funcionais
que utiliza a tcnica de decomposio funcional, o qual vai criar scripts que
modelam a regra de negcio em funes e bibliotecas utilizadas pelos scripts de
teste.
O captulo 5 apresenta os resultados da utilizao do framework em uma
fbrica de software.
O captulo 6 apresenta as concluses e tendncias futuras quanto
utilizao do framework de automao proposto neste trabalho.
-3-
2.1.
De acordo com Cem Kaner em [6], existem alguns problemas em relao a esta
viso sobre automao de testes de software:
1. Automatizar no barato
-4-
a. Geralmente se leva entre trs e dez vezes mais tempo para criar,
verificar e documentar minimamente os testes automatizados do que
criar e executar uma vez o teste mo. Os testes que se executa apenas
uma ou duas vezes no devem ser automatizados.
2. Esta abordagem cria riscos de novos custos
a. O custo de encontrar e de reparar erros aumenta ao passar do tempo. Se
for gasto muito tempo escrevendo scripts de teste pode se atrasar a
execuo dos testes para o final do desenvolvimento, quando os erros
so mais caros.
3. Estes testes no so poderosos
a. Os testes que so automatizados so testes que j passaram pelo
sistema. Os principais erros so aqueles encontrados durante a criao
dos casos de teste, mas eles so normalmente testes manuais, no
relacionados aos testes automatizados.
4. Na prtica, muitos grupos de teste automatizam apenas os testes simples.
2.2.
Fatores de sucesso da automao de testes de
software
No mesmo artigo [6], Kaner cita estratgias para uma automao de testes de
software de sucesso:
2. Molde a expectativa da gerncia em relao ao tempo dos benefcios da
automao.
a. H um grande benefcio em automatizar uma sute de testes: executar
estes testes cinqenta ou cem vezes durante o desenvolvimento de um
release. Mesmo se levar dez vezes mais tempo para desenvolver cada
teste do que executar cada teste mo, e mais dez vezes o tempo para a
manuteno, haver ainda um ganho de tempo entre trinta e oitenta
execues manuais.
b. Provavelmente, o benefcio da automao no ser percebido no
primeiro release em que iniciada a automao. A diminuio do
esforo se dar paulatinamente nos prximos releases.
-5-
fazem,
programao,
devem:
adotar
entender
uma
os
arquitetura
requisitos,
robusta
entender
que
de
permita
-6-
2.3.
Consideraes Finais
-8-
3.1.
Viso Geral
-9-
3.2.
Processo de Automao
-11-
3.2.1.2.
Filmar Execuo:
-12-
-13-
Incio do script
Fim do script
Incio do timer
Fim do timer
Excees
Caso ocorra alguma das quatro excees abaixo, o sistema pra a execuo e
reporta o erro ocorrido no log da execuo.
ObjectNotFoundException
o Ocorre quando algum objeto gravado no encontrado na
reproduo do script
-14-
AmbiguosRecognitionException
o Ocorre quando o Functional Tester no consegue distinguir
entre os objetos da tela, qual foi usado durante a gravao
(reconhecimento ambguo)
CallScriptException
o Ocorre quando o Functional Tester no consegue inicializar
algum script.
UnhandledException
o Ocorre quando uma exceo lanada pelos scripts de teste e
no tratada.
3.2.3.2.
Gerar Log:
-15-
3.3.
-16-
3.3.1.2.
Definir Aes:
-17-
Encontrar Objetos
Executar Aes
-18-
a ao, o RFT lanar uma exceo que ser adicionada ao log da execuo dos
scripts.
3.3.2.3.
3.4.
Consideraes Finais
para
processo,
porm
este
processo
limita
muito
desenvolvimento de scripts de teste com fcil leitura pelo desenvolvedor e uma boa
manuteno.
Os scripts possuem muita repetio de cdigo e nenhum reuso. A gerao do
cdigo feita automaticamente pela gravao das aes do usurio pela ferramenta,
no deve ser utilizada irrestritamente.
Outros fatores limitantes da ferramenta so as formas de entrada e sadas de
dados feitas, respectivamente, pelo datapool e pelo log da execuo. Estas duas
funcionalidades limitam bastante a automao de testes que necessitam uma
facilidade de atualizao das entradas dos scripts e uma rapidez na coleta dos dados
da execuo.
Como soluo destes problemas, o prximo captulo ir propor um framework
para automao de testes que faz modificaes tanto no processo quanto nas tarefas
propostas neste captulo a fim de produzir um melhor resultado na automao de
testes funcionais.
-19-
4.1.
Melhorias no processo
As melhorias no processo Record & Playback foi definido tendo como base o
trabalho de Zambelich em [17], que ser explicado a seguir:
4.1.1.
-20-
Pagamento:
-22-
4.1.2.
Implementao da Tcnica
Para implementao da tcnica foi usado como inicio o processo Record &
Playback mostrado anteriormente, modificando conforme a necessidade.
Em relao ao processo, as principais mudanas foram na macro-tarefa
Executar Script. A tarefa Executar Navegao, se necessrio foi adicionada para
permitir a independncia da execuo entre casos de testes. Esta tarefa pode ser
chamada depois do relato de alguma exceo ou pela prpria execuo dos casos de
teste.
Outra importante mudana no processo a redefinio da tarefa Relatar
Eventos e Exceo que no pra mais a execuo.
No inicio do processo, os dados de entrada e sada so lidos agora diretamente
das planilhas de projeto de caso de teste. Alm disto, a utilizao de planilhas
tambm ocorre na reportagem da execuo na ltima tarefa do processo: Gerar
Planilhas.
-24-
-25-
4.2.
Arquitetura do Sistema
-26-
4.3.
Consideraes Finais
-29-
5. Resultados Obtidos
Para testar o framework proposto no captulo 4, foi realizado um experimento
em uma sute de teste selecionada. O objetivo do experimento comparar a
efetividade da automao realizada utilizando o framework com o processo de
execuo manual utilizado no passado. Neste captulo sero descritos o projeto alvo
do experimento, o experimento realizado e avaliao dos resultados encontrados.
5.1.
Contexto
5.1.1.
Processo de Testes
Alocao de recursos
-30-
5.1.2.
Escopo do Experimento
O experimento usou como amostra uma sute de uma das aplicaes testadas
pela organizao. A aplicao em questo, denominada A1 possui 64 sutes de teste,
formando um conjunto de 7005 casos de teste. Os ciclos de teste so compostos,
normalmente, por aproximadamente 2200 casos de teste.
O ltimo ciclo de regresso realizado pela organizao em setembro de 2006
possua 2219 casos de teste, demandando um esforo considervel para sua execuo.
A automao de parte destes testes pode trazer um grande retorno e economia
de esforo para a organizao. Para a realizao do experimento foi necessrio
selecionar uma sute da aplicao A1. A sute de testes que foi alvo de automao,
denominadas aqui de S1, possui 791 casos de teste dos quais 732 foram
automatizados em trs meses.
A automao de testes modificou o processo utilizado pela empresa colocando
mais um passo entre as tarefas de Definir Projetos de Testes e Executar Testes. Agora,
existe uma tarefa para Automatizar os Testes, que consiste no desenvolvimento de
scripts de teste que iro executar automaticamente na tarefa de execuo dos testes.
5.2.
utilizando como guia mas com algumas mudanas que sero explicadas mais
adiante o artigo de VARGHESE sobre retorno de investimentos de projetos de
automao de testes de software [16].
Para realizar uma anlise comparativa entre a abordagem manual e
automatizada alguns dados e premissas devem ser considerados:
-32-
Custos Fixos
Custo da ferramenta
Esforo de script de teste
Esforo de testar e validar os scripts
Custo da infra-estrutura de automao
Esforo de documentao das sutes de teste
Total
Valores
R$ 21.150,50
R$ 9.000,00
R$ 900,00
R$ 2.000,00
R$ 900,00
R$33.950,50
Custos Variveis
Manuteno dos scripts e de sua documentao
Manuteno da infra-estrutura da automao
Custo da execuo
Total
Valores
R$ 180,00
R$ 200,00
R$ 37,50
R$417,50
-33-
Custo
da
infra-estrutura:
custo
da
manuteno
de
cinco
Valores
R$1.000,00
R$ 568,50
R$1.568,50
-34-
Varivel
Sigla
N
F
M
S
-36-
5.3.
Consideraes Finais
-38-
6.1.
Dificuldades Encontradas
-39-
6.2.
Trabalhos Futuros
-40-
Referncias
[1] FEWSTER, M., GRAHAM D., Software Test Automation, Addison-Wesley, 1999.
[2] HENDRICKSON,
E.,
Build
or
Buy
it?
Disponvel
em:
Acessado
em:
25/06/2006.
[5] JAKARTA POI - Java API To Access Microsoft Format Files. Disponvel em:
http://jakarta.apache.org/poi/. Acessado em: 11/09/2006.
[6] KANER, Cem. Improving the Maintainability of Automated Test Suites, 1997.
Disponvel em: http://www.kaner.com/lawst1.htm. Acessado em: 25/06/2006.
[7] KANER, C.; Falk, J.; Nguyen, HQ. Testing Computer Software. Second Edition,
Willey, 1999.
[8] KELLY, Michael. Introduction to IBM Rational Functional Tester 6.1. Disponvel em:
http://www-128.ibm.com/developerworks/rational/library/04/r-3228/index.html.
Acessado em: 25/06/2006
[9] MERCURY
QuickTest
Professional.
Disponvel
em:
2006.
[12]
QARUN
Product
Detail.
Disponvel
em:
http://www.compuware.com/products/qacenter/401_ENG_HTML.htm. Acessado
em: 20/09/2006.
[13]
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&O
bjectId=2861 Acessado em: 25/06/2006.
[14]
2003.
-41-
[15]
http://www.segue.com/products/functional-regressional-testing/silktest.asp.
Acessado em: 22/09/2006.
[16]
-42-
2. Testes Web
Cada vez mais a internet est presente nas aplicaes corporativas. Desta
maneira, as ferramentas de testes devem prover funcionalidades para testes de
sistemas com arquitetura cliente/servidor. Para tal, as ferramentas devem prover
suporte para tabelas HTML, frames, diversas plataformas, links, etc.
Os critrios desta categoria so:
a. Existem funes que avisam quando uma pgina acabou de carregar?
b. Existem funes que permitem esperar at carregar uma imagem?
c. Pode-se testar quando um link vlido ou no?
d. Podem-se testar os dados e as propriedades dos objetos web?
e. Existe diferenciao entre os tipos e a localizao de objetos?
f. Existe diferenciao entre os campos da pgina? Como ttulo, corpo,
etc.
3. Mapeamento de Objetos
As ferramentas de automao de testes devem saber identificar e manipular
objetos na interface com o usurio. A maioria dos objetos produzidos iro se
comportar da mesma forma de objetos padro de tela como: botes, check boxes,
botes de rdio, listas, edit boxes e combo boxes.
A ferramenta trabalha bem com estes controles padres? possvel adicionar
controles customizados com novas classes de controle? Estas so algumas questes
que sero investigadas nesta categoria ao utilizar as ferramentas.
4. Extensibilidade
Esta seo est relacionada com a possibilidade de extenso da ferramenta. Se
a ferramenta no suportar determinada funcionalidade possvel criar uma? Este
geralmente um assunto avanado e requer um bom conhecimento em linguagem
de programao.
Algumas ferramentas provem extenses permitindo criar funes mtodos e
classes, porm apenas utilizando tipos e funes j pr-definidas pela ferramenta ao
invs de permitir a extenso da ferramenta alm das suas funcionalidades.
Provavelmente um programador vai querer utilizar funcionalidade de outras
-44-
Record &
Playback
Teste de Web
Mapeamento de
Objetos
Extensibilidade
Suporte a
ambiente
Integrao
Total
QuickTest
QARun
5
5
5
5
3
3
4
4
5
5
4
4
26
26
SilkTest
Functional Tester
5
5
5
5
3
3
5
5
5
5
5
5
28
28
-46-