Professional Documents
Culture Documents
Abstract
Producing high quality software [1] implies developing systems which fulfill all the specifiedorimplicitneedsestablishedbytheuser. Thesoftwareprocessisconformedbysevenstages:RequirementsanalysisSpecification DesignandarchitectureProgrammingTestingDocumentationMaintenance. Softwaretestingcanbemadeindifferentstagesofthisprocess.Itisimportanttoemphasize onitbeingperformedinearlystages,soastoconditiontheposteriordevelopment. Whendealingwithawebapplication,therearemanyaspectstoanalyze.Apartfromthe functionalones.Manyarerelatedtothespecificationandfunctionalcustomizationofthesystem, butthereareotheraspectsrelatedtotheperformanceoftheserver,easeofnavigation,security aspects,etc. Thegoalofthisarticleistoemphasizeonthetestingprocessoftheuseofatool[2]which simplifiestheanalysis.Wetookaspilotcasetheanalysisoftheperformanceofacontentmanager implementedbytheUNLP.
Keywords:Quality,Testing,PerformanceTests,Webapplications.
Resumen
Producirsoftwaredealtacalidad[1]implica desarrollar sistemas que cumplancon la totalidaddelasnecesidadesespecificadasoimplcitasestablecidasporelusuario. El proceso de software consta de siete etapas: Anlisis de requisitos Especificacin DiseoyArquitecturaProgramacinPruebaDocumentacinMantenimiento. Laspruebasdelsoftwarepuedenrealizarseendistintasetapasdeesteproceso.Sedestacala importancia de que las mismas se realicen en etapas tempranas, pudiendo esto, obviamente, condicionarelposteriordesarrollo. Cuando setratade unaaplicacinweb,existenvariosaspectosadicionalesaanalizar, ademsdelosfuncionales.Muchostienenqueverconlaespecificacinyadecuacinfuncionaldel sistema,perohayotrosaspectosquetienenqueverconlaperfomancedelservidor,lafacilidadde navegacin,aspectosdeseguridad,etc. Elobjetivodeesteartculoesdestacarenelprocesodetestingelusodeunaherramienta[2] quesimplifiqueelanlisis.Setom comocasopiloto,elanlisisderendimientodeunmanejador decontenidosimplementadoporlaUNLP. PalabrasClaves:Calidad,Testing,PruebasdeRendimiento,Aplicacionesweb.
Introduccin
Las pruebas de rendimiento realizados sobre computadoras, redes, software u otros dispositivos, son utilizados para determinar la velocidad y eficiencia de los mismos. Este procedimientopuedeinvolucrartantotestscuantitativos,porejemplo,medirtiemposderespuestao cantidadenmillonesdelneasdecdigo,comotestscualitativos,enloscualesseevalafiabilidad, escalabilidadeinteroperabilidad.Estaspruebasderendimientopuedenserrealizadasatravsde herramientasqueproveenpruebasdeestrs,quepermitendeterminarlaestabilidaddelsistema.[3] [4] Laslimitacionesenlostiemposderespuestadeunsitiowebyunaaplicacindeescritorio sonsimilares,ynohancambiadoeneltranscursodelosaos.Cabeaclararqueenlacasodelos sitioswebeltiempoest muyrelacionadoalavelocidaddelenlacedondeseest navegando.
SegnelautorJakobNielsen,enellibroUsabilityEngineering[5]existentreslmitesimportantes eneltiempoderespuesta:[6][7] 0,1segundo:esellmiteenelcualelusuariosientequeestamanipulandolosobjetos desdelainterfazdeusuario. 1segundo:esellmiteenelcualelusuariosientequeestnavegandolibrementesinesperar demasiadounarespuestadelservidor. 10segundos:esellmiteenelcualsepierdelaatencindelusuario,silarespuestatarda ms de 10 segundos se deber indicar algn mecanismo por el cual el usuario pueda interrumpirlaoperacin. Ennuestrocasoparticular,estetiempoestcondicionadoalossiguientespuntos: Elservidortesteadoseencuentraenlamismaredenlacualserealizaronlaspruebas. Velocidaddeconexindelservidor. Velocidaddeconexindelcliente. Tiempoenelcualelnavegadorwebtardaparadibujarlapgina(tiempomuypequeo). Rendimientodelaredenelmomentodelaprueba.
CaractersticasdelaPrueba
Enestaseccinsedescribirtantolaherramientautilizadacomolaspruebasrealizadas. Laherramienta Paraanalizareltiempoderespuestadelservidorseutiliz laherramientaJmeter[8].La versinutilizadadeJmeterduranteestetrabajoesla2.3.1. Jmeteresunaherramientaopensourcemuycompleta,implementadaenJavaquepermite realizartestdecomportamientofuncionalymedirelrendimiento.Tambinsepuedeutilizarpara realizarpruebasdeestrs,porejemplo,enunservidor,yponerapruebasurendimiento[9]. Paraestaspruebas,seconfigur unservidorProxyqueproveeJmeter,parapoderconstruir uncaminodenavegacinaleatorio,yassimularlavisitadeunusuario.
Para poder evaluar los resultados se utilizaron 3 (tres) componentes provistos por la herramienta[10][11]. SummaryReport: Permitevisualizarlosresultadosdeltestrealizado,enunatabla.Losdatos quepresentason: o Label:etiquetadelamuestra o #Muestras:cantidaddethreadutilizadosparalaURL. o Media:tiempopromedioenmilisegundosparaunconjuntoderesultados. o Min:tiempomnimoquedemoraunthreadenaccederaunapgina. o Max:tiempomximoquedemoraunthreadenaccederaunapgina o Rendimiento:rendimientomedidoenlosrequerimientoporsegundo/minuto/hora. o Kb/sec:rendimientomedidoenKbytesporsegundo. o Mediaenbytes:tamaomedioderespuestadelservidor(enbytes). AgreggateGraph: Estacomponenteessimilaralaanterior,peropermiteobtenerresultados msprecisos.Utilizamsmemoria,yaquecalculalamedianaylalneaal90%,lacual requierenquetodoslosdatosestnalmacenados.Losdatosquesepresentanson: o URL:etiquetadelamuestra o #Muestras:cantidaddeThreadutilizadosparalaURL. o Media:tiempopromedioenmilisegundosparaunconjuntoderesultados. o Mediana:valorentiempodelpercentil50. o Lneade90%:mximotiempoutilizadoporel90%delamuestra,alrestodela mismalellevomstiempo. o Min:tiempomnimodelamuestradeunadeterminadaURL. o Max:tiempomximodelamuestradeunadeterminadaURL. o %Error:porcentajederequerimientosconerrores. o Rendimiento:rendimientomedidoenlosrequerimientoporsegundo/minuto/hora. o KB/sec:rendimientomedidoenKbytesporsegundo.
Grafico de Resultados : Esta componente permite visualizar grficamente los siguientes datos:media,mediana,dispersinyelrendimiento(representadocomoelnmeroactualde requerimientos/minutosqueelservidormaneja).
Elanlisis Seanalizaronlosresultadosatravsdeunintervalodeconfianza1conunniveldeconfianza al95%. Paraunprimeranlisis,sesuponequelapoblacintieneunadistribucinNormal. Paraunsegundoanlisis,dadoquelamuestraesgrande,noserequierehacerlasuposicin dequelamuestratieneunadistribucinNormalyaqueporelTeoremaCentraldelLmite(TCL), para n grandeimplica queX tieneunadistribucin aproximadamente Normal sinimportar la naturalezadeladistribucinpoblacional[12].
Sellamaintervalodeconfianzaaunintervalodevaloresalrededordeunparmetromuestralenlosque,conunaprobabilidado niveldeconfianzadeterminado,sesituarelparmetropoblacionalaestimar.[13].
ResultadosDetallados
PruebaNro.1 Laprimerapruebafuerealizadaelda10/06/08alas16:07hs,Seconfiguraron50threads, cada1seg.LosvalorestotalesobtenidosporlacomponenteAggregateGraphsemuestranen laTabla1.
#Muestras
Media
Mediana
Lneade90%
Min
Mx
%Error
Rendimiento
Kb/sec
TOTAL
3850
5405
8,3/sec
79
Como puede verse, el tiempo promedio para acceder a una pgina es 5,405 segundos, realizndoseuntotalde3850requerimientosalservidor. Eltiempototalutilizadoparalos50threadssepuedecalcularconlasiguientefrmula:
TiempoTotal=#Muestras*Media=3850*5405=20809250milisegundos
El tiempo promedio total requerido por cada thread, se puede calcular de la siguiente manera:
((TiempoTotal/1000)/60)/cantidaddeThread=((25535400/1000)/60)/50=6,936416minutos
En segundo lugar, se evaluaron los resultados obtenidos a travs de un intervalo de confianzaal95%paramuestrasgrandes.Lafrmuladelmismoeslasiguiente: [TPZ0.95*S/n,TP+Z0.95*S/n] Donde: Tiempopromedio(TP)derespuestaes:5405 EstimadordelDesvo(S)es:(x2(x)2/n)/n1)=85971,17312 Tamaodelamuestra(n)esde:3850 Z0.95:1,96
En este caso, se puede esperar que el tiempo de respuesta promedio est entre 2 y 8 segundosparaunacantidadde50usuariossimultneosrealizando3850solicitudes.
#Muestras
Media
Mediana
Lneade90%
Min
Mx
%Error
Rendimiento
Kb/sec
TOTAL
1925
1294
15
1531
123360
1.3%
11,7/sec
111,8
Tabla2:ValorescorrespondientesalaPrueba2.
((TiempoTotal/1000)/60)/cantidaddeThread=((2490950/1000)/60)/50=1,66063enminutos
Anlisisrealizado Elanlisisparalasegundaprueba,fuerealizadodemanerasimilarque enla primera, usandolasmismasfrmulas. Elintervaloresultante,utilizandounintervalodeconfianzaparaunadistribucinNormalal 95%,es: [12941,96*8783/1925,1294+1,96*8783/1925] =[902,5390776;1687,460922]enmilisegundos =[0,902539077;1,687460922]ensegundos
Esto significa que, puede esperarse un tiempo de respuesta promedio entre 0,9 y 1,7 segundosparaunacantidadde25usuariossimultneosrealizando1925solicitudes.
#Muestras
Media
Mediana
Lneade90%
Min
Mx
%Error
Rendimiento
Kb/sec
TOTAL
7300
12526
250
29265
696594
0,42%
5,7/sec
102,5
Tabla3:ValorescorrespondientesalaPrueba3.
Anlisisrealizado Como enlas pruebasanteriores, secalcularon los intervalos enbaseaunintervalo de confianzaparaunadistribucinNormalal95%yenbaseaunintervalodeconfianzaal95%para muestrasgrandes. Losdatosobtenidosson: [11,41498972;13,63701028]ensegundosparaelprimercasoy, [7,79171985;17,26028015]ensegundosparaelsegundo.
Por lo tanto,sepuedeesperarqueeltiempo derespuestapromedioest entre 11 y 13 segundos para una cantidad de 100 usuarios simultneos realizando 7300 solicitudes y que el tiempoderespuestapromedioestentre7,8y17,2segundosparalamismacantidaddemuestras.
ResultadosGenerales
Comosemencionalcomienzodeesteartculo,Jmeterproveeunacomponentequepermite visualizarlosdatosobtenidosenformagrfica. GrficosObtenidos LasFiguras1,2y3muestranlosdatosobtenidosparalaprueba1,2y3respectivamente.
Figura1:ValorescorrespondientesalaPrueba1.
Figura2:ValorescorrespondientesalaPrueba2.
Figura3:ValorescorrespondientesalaPrueba3.
TablaComparativa LaTabla4permiteobservarunresumendelosdatosinformadosporlaspruebasanteriores:
#Thread #muestras Rendimiento TiempomediodeRespuesta Dispersin %Error
25 50 100
Tabla4:Datosobtenidosenlastrespruebas
UnresumendelosdatosestadsticosanalizadospuedenverseenlaTabla5.
#Thread ICDistribucinNormalal95% ICal95%usandoTCL
25 50 100
Tabla5:Datosestadsticosenlastrespruebas
Conclusin
Sibienlaetapadepruebasfuncionalesdeunaaplicacinsonsumamenteimportantes,ya queapartirdelasmismassepodr contarconlaaprobacindelusuariofinal,eltipodepruebas mencionadasenelpresenteartculosontambincrticas.Unamalaconfiguracindelservidorweb, o de la red donde correr el mismo (con la aplicacin residente en l) puede influenciar negativamenteelusodelamisma. Enestetrabajoseevalu lautilizacindelaherramientaJmeter,paralaetapadetesteode rendimientodelservidorwebdelsitiodelaUniversidadNacionaldeLaPlata. Al tratarse de un portal al cual acceden muchos usuarios en forma simultnea, es indispensableestarsegurosdeunabuenaconfiguracindelservidordondecorrer. Las primeras pruebas realizadas dieron tiempos de respuestas poco aceptables para una ciertacantidaddeusuariosconcurrentes.ElusodelaherramientaJMeterfuedegranayudapara realizarestaspruebas,graciasasuflexibilidaddeconfiguracinyclaridaddevisualizacindelos resultadosdelaspruebas,loqueayudaasuinterpretacin. Apartirdelanlisisdeestosdatosy,teniendoencuentalosparmetrossugeridosdesdeel reaHCI[5]sesugirialgrupodedesarrollounareconfiguracindelservidorwebhastaalcanzar losvaloresptimosdetiempoderespuesta. Referencias [1]ISO84021986 [2]http://www.opensourcetesting.org/performance.php [3]http://en.wikipedia.org/wiki/Performance_testing [4]http://en.wikipedia.org/wiki/Stress_testing_%28software%29 [5]UsabilityEngineeringautor:JakobNielsen,publicadopor:MorganKaufmann,San Francisco,1994.ISBN0125184069 [6]http://www.useit.com/alertbox/9703a.html [7]http://www.useit.com/papers/responsetime.html