SIPTEST – System Intelligent Process Testing.
Estudo Ferramentas de Automação
SIPTEST - System Intelligent Testing
Link Consulting,SA | Pág. 0 de 14
Índice
1
2
Introdução................................................................................................................................................................ 2
1.1
Objectivo do documento ................................................................................................................................ 2
1.2
Contexto ......................................................................................................................................................... 2
1.3
Estrutura do documento ................................................................................................................................ 2
Ferramentas de automação de testes funcionais .................................................................................................... 3
2.1
3
4
Estudos comparativos .................................................................................................................................... 5
2.1.1
BadBoy ....................................................................................................................................................... 5
2.1.2
BlueDuck SDA ............................................................................................................................................. 6
2.1.3
SoapUI ........................................................................................................................................................ 6
2.1.4
Expert ......................................................................................................................................................... 7
2.1.5
Marathon ................................................................................................................................................... 7
2.1.6
Maveryx ..................................................................................................................................................... 8
Comparação e Conclusões ..................................................................................................................................... 10
3.1
Ferramentas de teste Web ........................................................................................................................... 10
3.2
Ferramentas de teste de aplicações Desktop............................................................................................... 11
Referências ............................................................................................................................................................ 12
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 1 de 14
1 Introdução
1.1
Objectivo do documento
Este documento apresenta o resultado da pesquisa efectuada sobre ferramentas. Capture/Replay de testes
funcionais, no âmbito do projecto SIPTEST. São nele descritas algumas das mais conceituadas ferramentas e suas
funcionalidades.
1.2
Contexto
O teste de software é um processo utilizado para identificar a exactidão, completude e qualidade do produto de
software desenvolvido. Existem diferentes tipos de testes de software que podem ser aplicados nas diversas fases
do desenvolvimento para aumentar a confiança na qualidade de uma aplicação de software, por exemplo, testes de
compatibilidade, testes de conformidade, testes funcionais, testes de regressão, testes unitários, testes de
desempenho, testes de carga/stress [1, 2]. Neste documento, serão apresentadas apenas ferramentas
Capture/Replay de testes funcionais.
TESTES FUNCIONAIS
Este tipo de testes é baseado numa análise da especificação de funcionalidade de um componente ou sistema [3, 4].
Por oposição, os testes não funcionais são testes que testam os atributos de um componente ou sistema que não se
relacionam à funcionalidade, por exemplo, confiabilidade, eficiência, usabilidade, mantenabilidade e portabilidade
[3].
CAPTURE / REPLAY
Os testes Capture/Replay são frequentemente utilizados para apoiar testes de regressão.
Nestes testes, as entradas são registadas durante interacções manuais com a aplicação a testar a fim de gerar os
scripts de teste automatizados que podem ser executados mais tarde (isto é, repetidos) [3].
1.3
Estrutura do documento
A secção 2 deste documento descreve as principais características e funcionalidades das ferramentas de
Capture/Replay objecto deste estudo. A secção 3 faz uma análise comparativa dessas ferramentas.
Na última secção apresenta-se o conjunto de referências consultadas para elaborar este documento e os portais das
ferramentas descritas e comparadas.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 2 de 14
2 Ferramentas de automação de testes funcionais
A técnica de Capture/Replay é muito utilizada em ferramentas de automação de testes funcionais por permitir a
gravação de um script de teste por interacção com a aplicação a testar, registando os valores de input e os de output
obtidos [9]. Após gravação de um script de teste com resultados positivos, este script pode ser executado mais tarde
de maneira a testar um componente ou sistema, garantindo que modificações no código interno (evolução do
componente ou sistema) não danificam o seu comportamento.
Testes funcionais seguem normalmente os seguintes passos:

Identificação de funções que o componente ou sistema deve desempenhar;

Criação de dados de input, baseados nas necessidades de uma função específica;

Determinação do output esperado considerando os dados estabelecidos;

Execução do teste;

Comparação com o resultado esperado.
Ferramentas de Capture/Replay permitem executar várias vezes scripts de teste criados para garantir que os
requisitos implementados são cumpridos ao longo da evolução da aplicação a testar. Os critérios escolhidos para a
diferenciação das ferramentas de testes Capture/Replay foram os seguintes:

Livre/Pago – indica se a aplicação é proprietária e paga ou se é livre (freeware);

Aplicação activa – indica se a aplicação se encontra em desenvolvimento activo ou não;

Testes de Interface – Interface Desktop (GUI) ou interfaces WEB;

Sistema Operativo – sistema operativo em que a aplicação pode ser executada;
Na tabela 1, são apresentadas as ferramentas mais significativas em termos de testes Capture/Replay . As
ferramentas são diferenciadas usando os critérios acima.
Para além das ferramentas de Capture/Replay, existem frameworks através dos quais é possível simular as acções
dos utilizadores sobre uma interface gráfica que estão listadas e comparadas na tabela 2.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 3 de 14
Tabela 1 - Esta tabela representa a pesquisa efectuada sobre ferramentas Capture/Replay.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 4 de 14
Tabela 2 - Esta tabela representa a pesquisa efectuada sobre frameworks usadas para simular acções dos
utilizadores e verificar o estado de componentes das interfaces.
2.1
Estudos comparativos
Nesta secção são apresentadas algumas das ferramentas de automação mais conceituadas e usadas, segundo os
estudos [5-10],:três ferramentas de testes de serviços Web e três de aplicações Desktop. Mais concretamente, as
ferramentas são Badboy, BlueDuck SDA e SoapUI (para testes Web) e Expect, Marathon e Maveryx (para testes a
aplicações Desktop).
2.1.1
BadBoy
A ferramenta de testes BadBoy [11] é uma ferramenta desenvolvida pela BadBoy
Software cujo objectivo é efectuar testes funcionais, carga e de regressão em interfaces Web.
Para isto, a aplicação conta com um browser integrado capaz de carregar portais da Internet.
As interacções efectuadas através deste browser são gravadas (Capture) num script de teste que pode ser
reproduzido mais tarde. A Figura 1 mostra um exemplo da interface do BadBoy.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 5 de 14
Figura 1 - Interface do BadBoy [11] onde se consegue ver o browser à direita
da imagem e os passos do teste e sumário à esquerda
Entre outras coisas, o BadBoy é capaz de gerar relatórios gráficos detalhados, importar dados de input a partir de
ficheiros externos, guardar variáveis para serem usadas em mais do que um teste e agendar testes [11].
2.1.2
BlueDuck SDA
O BlueDuck SDA [12] é uma ferramenta desenvolvida para testar interfaces Web. Esta ferramenta é mantida pela
BlueDuck Open Testing e é implementada com base na versão 3 da framework AutoIt. Com base nesta framework, o
BlueDuck SDA é capaz de reproduzir testes usando o teclado e o rato virtualmente em qualquer plataforma
Windows.
Os testes reproduzidos por esta ferramenta não são capturados através de acções do utilizador (como é o caso do
que acontece com o BadBoy), mas através da escrita de um script.
Desta maneira, o BlueDuck SDA é capaz de testar páginas Web em qualquer browser ou mesmo numa aplicação de
Desktop [12].
2.1.3
SoapUI
Esta ferramenta é desenvolvida pela SmartBear Software e suporta testes funcionais, de carga, regressão e
aceitação a serviços. Suporta a maior parte dos protocolos e é capaz de modificar parâmetros intrínsecos dos
mesmos, como por exemplo, timeouts ou tamanho dos requests.
Esta ferramenta pode ser usada como ferramenta final ou como framework por ser adaptável e open-source [13]. A
Figura 2 mostra a interface desta ferramenta.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 6 de 14
Figura 2 - Interface do SoapUI [13] onde se consegue ver a versão XML dos testes à direita da imagem e os
passos do teste e propriedades à esquerda
O SoapUI é capaz de agendar testes, simular serviços e gerar testes para uma página Web específica, além de gerar
relatórios e suportar diferentes ambientes de desenvolvimento.
2.1.4
Expert
A ferramenta Expect [14] foi das primeiras ferramentas de testes funcionais a chegar aos utilizadores de Linux.
Apesar de descontinuada, esta ferramenta permite testar programas de linha de comandos, sendo capaz de simular
inputs dos mais variados a nível do teclado.
Esta ferramenta não possui uma interface gráfica nativa e os relatórios que produz são mostrados na linha de
comandos, podendo ser útil para sistemas como servidores Linux ou teste de componentes.
2.1.5
Marathon
A Marathon [15] é uma ferramenta de testes Capture/Replay para interfaces gráficas de aplicações Desktop
desenvolvida pela Jalian Systems. Esta ferramenta testa interfaces Java/Swing e suporta testes por scripts em Jython
e JRuby. Adicionalmente, a ferramenta é capaz de identificar objectos da interface automaticamente, através da
análise de código, para conveniência do testador. A Figura 3 mostra um screenshot da criação de um teste.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 7 de 14
Figura 3 - Interface do Marathon [15] onde se consegue ver a criação de um teste
Por ser desenvolvida em Java, é multi-plataforma e tem um debugger embutido, no entanto, não suporta o
agendamento de testes criados à priori nem a construção automática de testes a partir do conhecimento dos
objectos da interface.
2.1.6
Maveryx
O Maveryx [16] é uma ferramenta de testes funcionais e de regressão para interfaces de aplicações de Desktop em
Java/Swing, capaz de correr em Windows, Linux e Mac. Esta ferramenta conta com uma interface capaz de detectar
objectos nas interfaces das aplicações que testa, de maneira a poder gerar testes automaticamente a partir, por
exemplo, de botões e formulários disponíveis. A partir da sua integração com o IDE Eclipse, a ferramenta é capaz de
detectar modificações e defeitos na interface da aplicação. Na Figura 4, é possível ver a ferramenta integrada com o
Eclipse, a correr vários testes unitários.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 8 de 14
Figura 4 - Interface do Maveryx [16] integrada com a o IDE Eclipse, onde se pode ver os testes e relatórios
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 9 de 14
3 Comparação e Conclusões
Baseado nas descrições das ferramentas obtidas nas páginas Web oficiais das mesmas [11-16], foi feita uma
comparação das ferramentas de testes de aplicações Web e aplicações Desktop. Devido a esta diferença
fundamental nas aplicações, foram feitas duas comparações, uma para cada tipo.
3.1
Ferramentas de teste Web
As ferramentas BadBoy, BlueDuck SDA e SoapUI são todas ferramentas capazes de efectuar testes funcionais a
interfaces Web. Dentro deste tipo de testes, existem algumas características pelas quais as ferramentas que testam
interfaces Web podem ser distinguidas.
CAPTURA
A ferramenta BadBoy, por possuir um browser integrado na aplicação, não é capaz de simular browsers específicos
que possam ser usados pelos utilizadores finais nem testar as diferenças entre uma página “renderizada” nestes. Por
outro lado, o BlueDuck SDA e o SoapUI não possuem uma interface de captura tão avançada pois não são capazes de
gravar os passos do utilizador a interagir com a aplicação. Contudo, as três ferramentas baseiam-se na construção de
scripts para guardar os testes automatizados.
DADOS DE INPUT
O facto de uma aplicação ser capaz de gerar dados de input, seguir regras para os mesmos (expressões regulares,
por exemplo) ou mesmo importar os dados de um ficheiro ou base de dados externos é um factor importante na
diferenciação das ferramentas.
Concretamente, as ferramentas BlueDuck SDA e BadBoy são capazes de importar dados de ficheiros externos e de
guardar variáveis para serem usados em diferentes testes, enquanto o SoapUI e o BlueDuck SDA são capazes de
gerar testes automaticamente ao possuírem detecção de objectos da interface.
AMBIENTE DE EXECUÇÃO
O agendamento de testes, opções de debug e suporte para múltiplos ambientes de desenvolvimento são aspectos
cruciais na escolha de uma ferramenta de testes Capture/Replay.
O Badboy e o SoapUI são capazes de agendar testes ao contrário do BlueDuck DAS. As três ferramentas são capazes
de fazer debug aos testes e de editar opções avançadas nos protocolos usados pelas aplicações Web. O SoapUI
suporta um maior número de protocolos e é a única que suporta simulação de serviços e vários ambientes de
desenvolvimento (Debug e Release). Das três ferramentas analisadas, o Badboy é a única capaz de executar testes
de desempenho aquando na própria navegação pela página Web e executar testes passo por passo. A ferramenta
BlueDuck SDA não é capaz de correr out-of-the-box em Windows, Linux e Mac, no entanto, é a única a usar o mesmo
sistema de teste para aplicações Web e Desktop.
RESULTADOS E OUTRAS INFORMAÇÕES
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 10 de 14
As três ferramentas analisadas são capazes de gerar relatórios sobre os testes executados. De notar, no entanto, que
os relatórios do BadBoy são apresentados, em parte, graficamente e apresentam dados de desempenho das páginas
testadas. Os relatórios do BlueDuck SDA são mais configuráveis e esta ferramenta permite gravar os testes em
screenshots e vídeos AVI. Adicionalmente, as ferramentas BadBoy e SoapUI são ainda capazes de efectuar testes de
carga, além dos testes Capture/Replay. O SoapUI é uma ferramenta capaz de ser usada também como framework.
3.2
Ferramentas de teste de aplicações Desktop
As ferramentas Expect, Marathon e Maveryx são todas ferramentas capazes de efectuar testes funcionais a
aplicações Desktop. Dentro deste tipo de testes, existem algumas características pelas quais estas ferramentas
podem ser distinguidas.
CAPTURA E INPUT
Tal como as ferramentas de testes Web, a captura dos movimentos de cada teste é um factor a ter em conta
aquando da comparação deste tipo de ferramentas. Quanto à ferramenta Expect, esta não suporta nativamente
testes por GUI, apenas por linha de comandos. Da mesma maneira, as ferramentas Marathon e Maveryx não são
capazes de capturar os movimentos do testador a partir da interface, no entanto, ambas as ferramentas são capazes
de detectar objectos automaticamente nas interfaces das aplicações a testar e gerar testes automaticamente. Os
dados usados nestes testes são configuráveis e reutilizáveis entre os scripts dos testes podendo ser carregados de
ficheiros externos.
AMBIENTE DE EXECUÇÃO
A ferramenta Expect pode ser usada como qualquer ferramenta de Linux e ser invocada num ficheiro de script com
parâmetros especificados. O Marathon usa Jython ou JRuby (escolha do testador) para linguagem dos scripts de
teste. O Maveryx e o Marathon podem ser corridos em qualquer ambiente que suporte Java ao contrário do Expect
que apenas corre em Linux. O uso de aplicações baseadas em Java permite que a aplicação seja cross-platform, no
entanto, induz a que ferramentas como o Marathon e o Maveryx apenas sejam capazes de testar interfaces
Java/Swing.
RELATÓRIOS E OUTRAS INFORMAÇÕES
Em termos de relatórios produzidos, os que aparentam ter resultados mais significativos são os da ferramenta
Maveryx. Esta ferramenta também é conhecida por apresentar relatórios inline (no código), algo impraticável em
Expect e que requereria modificação avançada na ferramenta Marathon. Adicionalmente, a ferramenta Maveryx
também está disponível como plug-in do IDE Eclipse, ao contrário das outras duas ferramentas.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 11 de 14
4 Referências
1. Myers, G., Sandler, C.: The art of software testing. (2004).
2. Weyuker, E.: Testing component-based software: A cautionary tale. Software, IEEE. 5459 (1998).
3. Veenendaal, E.V.: Standard glossary of terms used in Software Testing, Version 2.1.
ISTQB. 1, 1-51 (2010).
4. Kaner, Falk, Nguyen: Testing Computer Software. Wiley Computer Publishing. 42
(1999).
5. OpenSource Functional testing tools. http://www.opensourcetesting.org/functional.php.
(2012).
6. Capture Playback. http://c2.com/cgi/wiki?CapturePlayback. (2012).
7. List of testing tools.
http://research.cs.queensu.ca/~shepard/testing.dir/under.construction/tool_list.html.
(2012).
8. SoftwareQAtest: Web Site Test Tools and Site Management Tools.
http://www.softwareqatest.com/qatweb1.html. (2012).
9. SAPE: Software and Programmer Efficiency Research Group. http://sape.inf.usi.ch/guicapturereplay-tools. (2012).
10. Sjösten-Andersson, E., Pareto, L.: Costs and Benefits of Structure-aware
Capture/Replay tools. (2006).
11. Badboy Software Home Page: Badboy Testing tool, http://www.badboy.com.au
12. BlueDuck Open Testing: BlueDuck SDA, http://blueducksda.sourceforge.net
13. SmartBear Software: SoapUI - The Home of Functional Testing, http://www.soapui.org
14. The Expect Home Page, http://expect.sourceforge.net
15. Jalian Systems: Marathon Home Page, http://www.marathontesting.com
16. Maveryx Java Testing Software, http://www.maveryx.com
17. Ranorex: Avoiding common pitfalls when working with capture/replay. http://www.ranorex.com/blog/avoidingcommon-pitfalls-when-working-withcapture-replay. (2012).
18. GerrardConsulting: Selecting and Evaluating CAST Tools. http://gerrardconsulting.com/index.php?q=node/532.
(2012).
19. Chapter 6 Tool Support for Testing. CTFL.
Referências adicionais
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 12 de 14
20. A. William: Capture and Replay – presentation.
21. N. Haché: GUI Testing – presentation.
22. B. Marick: Classic testing mistakes. http://www.exampler.com/testingcom/writings/classic/mistakes.html.
(1997).
23. OWASP: Capture-Replay. https://www.owasp.org/index.php/Capture-replay.
(2009).
24. Napatech: Capture Replay.
http://www.napatech.com/applications/test_and_measurement/capture_replay.html.
25. Cem Kaner, James Bach, Bret Pettichord: Lessons Learned in Software Testing: A Context-Driven Approach.
Lesson 113 - Capture Replay fails. (2002).
26. Oracle Forums: Advice needed for functional test.
https://forums.oracle.com/forums/thread.jspa?threadID=666203. (2007).
27. StackOverflow: Functional Testing tools – Seeking advice.
http://stackoverflow.com/questions/8329305/functional-testing-tools-seekingadvice. (2011).
28. Chris McMahon: Automation testing: Seven tips for functional test design.
http://searchsoftwarequality.techtarget.com/tip/Automation-testing-Seven-tipsfor- functional-test-design. (2011).
29. IBM: Tips and tricks for functional testing HTML applications.
http://publib.boulder.ibm.com/infocenter/rfthelp/v8r1/index.jsp?topic=/com.ibm.rational.test.ft.doc/topics/Tips_a
nd_Tricks.html.
30. Peci.Org: Understanding the FT Guide.
http://www.peci.org/ftguide/ftg/HowToUseFTGuide/How_to_Use_the_Functional_Testing_Guide.htm. ().
31. SQA Forums: New to functional testing – looking for advice.
http://www.sqaforums.com/showflat.php?Cat=0&Board=UBB46&Number=384
236&Searchpage=1&Main=384162&Words=+phanikumargk28&topic=&Search=true. (2007).
32. Software Testing Help: Top 20 practical software testing tips you should read before testing any application .
http://www.softwaretestinghelp.com/practicalsoftware-testing-tips-to-test-any-application/. (2008).
33. Info Tech Blog: 5 Tips for Starting Automated Functional Testing. http://blog.infotech.com/new-research/5-tipsfor-starting-automated-functionaltesting/.(2010).
34. TechRepublic: Tips and Tricks of Functional Testing Licenses. http://www.techrepublic.com/whitepapers/tipsand-tricks-of-functional-testinglicenses/298273.
35. Gagan Talwar: Integration Testing Tips. http://help.utest.com/testers/crashcourses/ functional/integrationtesting-tips. (2012).
36. SmartBear Software: 6 Tips to Get Started with Automated Testing (whitepaper).(2010).
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 13 de 14
Download

Estudo Ferramentas de Automação - Link