SIPTEST – System Intelligent Process Testing.
Estudo Ferramentas de Carga e Desempenho
SIPTEST - System Intelligent Testing
Link Consulting,SA | Pág. 0 de 10
Índice
1
2
Introdução ............................................................................................................................................................... 2
1.1
Objectivo do documento ................................................................................................................................ 2
1.2
Contexto ......................................................................................................................................................... 2
1.3
Estrutura do documento ................................................................................................................................ 2
Ferramentas de testes de carga e stress ................................................................................................................. 3
2.1
Testes de carga ............................................................................................................................................... 3
2.2
Testes de stress .............................................................................................................................................. 4
2.3
Ferramentas ................................................................................................................................................... 4
3
Estudos comparativos ............................................................................................................................................. 6
4
Referências .............................................................................................................................................................. 7
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 1 de 10
1 Introdução
1.1
Objectivo do documento
Este documento apresenta o resultado da pesquisa efectuada sobre ferramentas de testes de desempenho,
nomeadamente de testes de carga e stress, no âmbito do projecto SIPTEST.
Nele são descritas algumas das mais conceituadas ferramentas e apresentadas as 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 e testes de carga/stress [1, 2]. Este documento foca-se nas ferramentas de testes de carga e de stress.
TESTES DE DESEMPENHO
O processo de teste para determinar o desempenho de um software [3].
TESTES DE CARGA
Tipo de teste de desempenho que mede o comportamento de um componente ou sistema por meio do aumento de
carga. Por exemplo, número de utilizadores paralelos e/ou número de transacções para determinar qual o tamanho
de carga que pode ser suportada pelo componente ou sistema [3].
TESTES DE STRESS
Tipo de teste de desempenho conduzido para avaliar um sistema ou componente no (ou além do) limite da carga
esperada ou especificada, ou com disponibilidade reduzida de recursos, tais como, acesso à memória ou servidores
[3].
1.3
Estrutura do documento
A secção 2 apresenta ferramentas de testes de carga e stress, descreve as suas principais características e faz uma
análise comparativa de um subconjunto dessas ferramentas.
A secção 3 apresenta um conjunto de referências para trabalhos na área de testes de carga e stress.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 2 de 10
2 Ferramentas de testes de carga e stress
2.1
Testes de carga
Os testes de carga detectam problemas relacionados com “buffer overflow”, “memory leaks” e má gestão de
memória, e determinam os limites superiores dos componentes de uma aplicação de software, por exemplo, bases
de dados, hardware e redes, etc., de forma a poder gerir e estimar a carga futura do sistema de software. Para criar
um teste de carga, o tester deverá seguir os seguintes passos:

Parametrizar e controlar os inputs do componente ou sistema a testar;

Monitorizar o componente ou sistema de maneira a conseguir detectar onde e como ocorreu um erro (por
vezes usando um debugger);

Desenvolver cenários de teste adequados (de acordo com os objectivos do teste) para testar o
componentes ou sistema a testar;

Executar os testes e monitorizar o sistema.
A figura 1 representa um exemplo de um teste de carga num servidor Web. Nela é possível identificar o sistema de
monitorização, o sistema de (dois) servidores a ser testado, os inputs do sistema (3 clientes) e o output do sistema
(um repositório de dados de administrador).
Figura 1 - Esta figura representa um exemplo de um teste de carga e desempenho realizado num servidor;
nela podem ser delimitados os clientes (inputs do sistema) à esquerda da figura e o repositório de
administrador (outputs do sistema) à direita da figura [4
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 3 de 10
2.2
Testes de stress
Nos testes de stress realizam-se várias actividades para sobrecarregar os recursos existentes com excesso de
trabalho numa tentativa de quebrar o sistema. O objectivo é avaliar a estabilidade da aplicação através de testes
além da sua capacidade de forma a controlar a forma como o sistema recupera até à sua forma normal. O desafio é
criar um ambiente controlado antes de iniciar o teste para que se possa capturar com precisão e repetidamente o
comportamento do sistema nos cenários mais imprevisíveis. Um dos maiores problemas a combater é o de
assegurar que o sistema não compromete a segurança de dados sensíveis após a falha. Num teste de stress bemsucedido, o sistema voltará à normalidade, juntamente com todos os seus componentes, mesmo após um crash
[22].
2.3
Ferramentas
Existe um conjunto muito vasto de ferramentas de teste de carga e stress. Na tabela abaixo são apresentadas
algumas das mais conceituadas ferramentas deste tipo de testes. Nesta tabela são apresentadas ferramentas, com
diferentes funcionalidades e propósitos, distinguidas através de factores comparativos considerados relevantes com
base nalguns portais da Internet [5–11]. Os factores comparativos escolhidos são os seguintes:

Pago/Livre – indica se a aplicação é proprietária e paga ou se é livre (freeware);

Linguagem dos testes – factor importante para determinar a compatibilidade com outras aplicações,
linguagem e compatibilidade dos testes, plugins e sistemas operativos;

Aplicação activa – indica se a aplicação se encontra em desenvolvimento activo ou não;

Tipos de teste – tipos de testes de desempenho suportados (stress e carga);

Sistema Operativo – indica o sistema operativo em que a aplicação pode ser executada;

Alvo – indica o tipo de software que aplicação pode testar
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 4 de 10
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 5 de 10
3 Estudos comparativos
Existem alguns estudos comparativos de ferramentas de testes de carga e stress. Os estudos [6, 8, 9, 11–15]
comparam, entre muitas outras, as seguintes ferramentas, consideradas as mais conceituadas e mais usadas
(subconjunto das ferramentas referidas na tabela anterior):

MICROSOFT Web Application Stress Tool (WAS)

APPPERFECT LoadTester

PUSHTOTEST TestMaker

PILOT SOFTWARE LTD SiteTester

SOFTLOGICA LLC WAPT

HP / MERCURY INTERACTIVE LoadRunner

IBM RATIONAL Performance Tester

MICRO FOCUS QALoad

BORLAND SilkPerformer
No entanto, dependendo do objectivo final pretendido com o uso destas aplicações, os critérios de selecção variam.
Neste contexto, foram reunidos alguns exemplos e linhas orientadoras [10, 14, 16–20] sobre como escolher uma
ferramenta de testes de carga e stress que se adeqúe ao objectivo pretendido com os testes.
Adicionalmente existem alguns portais na Internet como por exemplo o do Cordell Vail, da Vail Consulting and
Associates [21], que incorporam apontadores para ferramentas úteis para a pesquisa de ferramentas de testes de
desempenho, carga e stress.
No final deste documento são apresentadas referências que poderão ser interessantes para pesquisa, comparação
e/ou escolha de ferramentas de testes de desempenho, carga e stress [23–58].
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 6 de 10
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. Standard glossary of terms used in Software Testing, Version 2.1, ISTQB.
4. Polozoff, A.: Performance Testing Protocol for WebSphere Application Server-based Applications. IBM WebSphere
Developer Technical Journal. (2002).
5. Load and Performance Tools, http://www.scribd.com/doc/10866622/Load-and-Performance-Tools.
6. Jacob, A., Shaik, R., Tennis, P.: Load test tools evaluation,
http://www.sqatester.com/testertotester/sharexperience/downloads/Load_Test_Tools_Eval.pdf.
7. Evaluation of load/stress tools for Web applications testing. Hughes Systique Coporation. 1-15 (2008).
8. Rao, R.: Top 15 performance testing tools, http://www.toolsjournal.com/toolsworld/item/156-top-performancetesting-tools.
9. Tools Comparison, http://www.xqual.com/qa/tools.html.
10. A Comparison of Open Source Load Testing Tools, http://www.jds.net.au/techtips/load-testing-toolcomparison/.
11. Web site test tools and site management tools,http://www.softwareqatest.com/qatweb1.html.
12. Vail, C.: Stress, load, volume, performance, benchmark and base line testing tool evaluation and comparison.
(2005).
13. OpenSTA, the free performance testing tool, versus the big-guns...,
http://www.testingreflections.com/node/view/361.
14. Dunmall, J., Clarke, K.: Real-World Load Testing Tips to Avoid Bottlenecks When Your Web App Goes Live,
http://msdn.microsoft.com/en-us/magazine/cc188783.aspx.
15. Functional & Load testing solution, http://www.parasoft.com/jsp/solutions/soa_solution.jsp.
16. The French Social Security Administration Switches To Web Performance Load TesterTM From Open Source,
http://www.webperformance.com/library/whitepapers/CNAV/load-testing-CNAV.html.
17. Choosing a load testing strategy, http://www.slideshare.net/Softwarecentral/choosinga-load-testing-strategy.
18. What is load testing?, http://www.load-testing-tools.com/loadtesting.html.
19. Peyton, S.: Choosing an Appropriate Performance Testing Tool, http://fyi.oreilly.com/2009/01/choosing-anappropriate-perfor.html.
20. Load Testing Metrics, http://loadstorm.com/load-testing-metrics.
21. Vail, C.: Software testing tool finder, http://www.vcaa.com/tools/.
22. Difference Between Performance Testing, Load Testing and Stress Testing – With Examples,
http://www.softwaretestinghelp.com/what-is-performance-testing-loadtesting-
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 7 de 10
stress-testing/.
Referências adicionais
23. Avritzer, A., Kondek, J., Liu, D.: Software performance testing based on workload characterization. (2002).
24. Balsamo, S., Inverardi, P., Mangano, C.: An approach to performance evaluation of software architectures.
(1998).
25. Balsamo, S., Marzolla, M.: Performance evaluation of UML software architectures with multiclass queueing
network models. (2005).
26. Berry, M., Chen, D., Koss, P., Kuck, D., Lo, S., Pang, Y., Pointer, L., Rolo, R., Sameh, A., Clementi, E., Chin, S.,
Schneider, D.: The perfect club benchmarks: Effective performance evaluation of supercomputers. (1989).
27. Dolan, Elizabeth D., Moré, Jorge J.: Benchmarking optimization software with performance profiles. (2002).
28. Jr, H Lucas: Performance evaluation and monitoring. (1971).
29. Kounev, S.: Software performance evaluation. (2008).
30. Moroz, O., Anisimov, I., Petrov, I., Zernov, D., Kondratiev, D., Gomonova, E.: Automated testing tools research.
(2007).
31. Roehrig, H., Blume, H., Ji, T L., Browne, M: Performance tests and quality control of cathode ray tube displays.
(1990).
32. Smith, Connie U., Williams, Lloyd G.: Software performance engineering. (2003).
33. Thomas, M.: Web application stress tools. (2011).
34. Tiwari, V., Malik, S.: Software performance evaluation. (1999).
35. Woodside, M.: Software performance evaluation by models. (2000).
36. Doanne, D.: Software load tester. (2002).
37. Straathof, Jeffrey A., Sherriff, Joel L., Maurer, Dawn C., Chhina, Ramendra S.: Load test system and method.
(2000).
38. Avritzer, A., Weyuker, Elaine J.: Generating test suites for software load testing. (1994).
39. Myers, Monty G.: System load testing coordination over a network. (2004).
40. Avritzer, A.: Load testing software using deterministic state testing. (1993).
41. Jiang, Zhen M., Hassan, Ahmed E., Hamann, G., Flora, P.: Automated performance analysis of load tests. (2009).
42. Weinberg, A., Alperin, E.: Software system and methods for generatinf a load test using a server access log.
(1999).
43. Menascé, Daniel A.: Load testing of Web sites. (2002).
43. Peyton, Ss: Choosing an Appropriate Performance Testing Tool.
44. Avritzer, A.: The automatic generation of load test suites and the assessment of the resulting software. (1995).
45. Schieferdecker, I., Din, G., Apostolidis, D.: Distributed functional and load tests for Web services. (2005).
46. Charles Proxy: LOAD TESTING, http://www.charlesproxy.com/documentation/usingcharles/load-testing/.
47. MSDN: Considerations for Large Load Tests, http://msdn.microsoft.com/enus/library/ms404664(v=vs.80).aspx.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 8 de 10
48. AppPerfect: Web Load Testing, http://www.appperfect.com/products/loadtesting/web-load-testing.html.
49. Neotys: http://www.neotys.com/introduction/faq-advices.html.
50. Christophe Marton: Load testing Flex applications with NeoLoad,
http://www.adobe.com/devnet/flex/articles/flex-load-testing.html.
51. Ivan Lisitsyn: Efficiency and capacity of load testing tools,
http://www.loadtestingtool.com/blog/general/efficiency-and-capacity-of-load-testingtools/.
52. Umair Khan: Website Performance And Load Testing,
http://www.streetdirectory.com/travel_guide/123174/world_wide_web/website_performance_and_load_testing.h
tml.
53. Oracle: Techniques for Testing Performance/Scalability and Stress-Testing ADF Applications,
http://www.oracle.com/technetwork/developertools/adf/learnmore/adfloadstresstesting-354067.pdf.
54. Open-source Testing: Performance test tools, http://www.opensourcetesting.org/performance.php.
55. Grig Gheorghiu: Agile Testing, http://agiletesting.blogspot.pt/2005/02/performance-vsload-vs-stresstesting.html.
56. Alan Booth, Andrew Citron: Stress testing your software without stressing your testers,
http://www.ibm.com/developerworks/library/ibm-stress/.
57. Gelperin, D., Hetzel, Bill.: The growth of software testing. (1988).
58. Wikipedia: Load testing, http://en.wikipedia.org/wiki/Load_testing.
SIPTEST - System Intelligent Process Testing
Link Consulting,SA | Pág. 9 de 10
Download

Estudo Ferramentas de Carga e Desempenho