Archive for the ‘Jale’ Category

Pruebas de Rendimiento

En el contexto del ciclo de desarrollo de software las Pruebas de Rendimineto (“Performance Testing” en ingles) son algo diferentes de las pruebas funcionales manuales y desde mi punto de vista, mucho mas divertidas. Son una variante de las pruebas automatizadas, pero crear un paquete de regresion automatizado de pruebas funcionales no es tan divertido como crear un paquete de scripts para pruebas de rendimiento.

Explicome; a grandes rasgos el ciclo de pruebas de software se podria dividir en las siguientes fases:

Pruebas de Unidad : generalmente echas por el programador mismo y para verificar que cada unidad basica de codigo funciona como debe.

Pruebas de Componente: Cada componente por separado del codigo es probado independientemente.

Pruebas de Integracion: Todos los componentes son probados una ves que son integrados entre si.

Pruebas de aceptacion de usuario: Donde el usuario valida el software, aunque muchas veces no es el usuario quien lo hace…

Pruebas de Rendimiento: Donde se valida el rendimiento del software, son una parte de las pruebas de aceptacion de usuario.

Pruebas de Regresion: Se pueden hacer en cualquier momento en cualquier fase, generalemente echas para asegurarse que todo siga jalando como deberia.

Esto a grandes rasgos,  diferentes corporaciones o modelos del ciclo de desarrollo de software incluyen mas o menos fases y con el mismo o diferente nombre pero todas son basicamente lo mismo.

Usualmente el Tester formal (Probador no suena muy chido… ) inicia su participacion activa desde las pruebas de componente, en ocaciones desde antes ( es lo recomendado pero en la practica no sucede muy seguido) y todas las fases mencionadas anteriormente en las que se ve involucrado son pruebas funcionales a excepcion de las pruebas de rendimiento y algunos tipos de pruebas de aceptacion de usario, aunque un paquete de regresion podria incluir pruebas de rendimiento… pero bueno.

Las pruebas funcionales son todas aquellas que buscan que el software sea eficaz en su funcionalidad, es decir, que cuando quieras una suma de dos numeros te de el resultado correcto, que el color que debe mostrarse se muestre, que el link funcione como debe, que la encriptacion se realize, que la transferencia de datos funcione y demas cosas similares.

Las pruebas de rendimiento por el contrario se realizan despues de que el software a sido sometido a todo el ciclo de pruebas funcionales y se encuentra estable, es decir, se asume que no se encontrara ningun error funcional. Se realizan en ambientes similares al ambiente de produccion que albergara a la aplicacion y el objetivo de estas pruebas es asegurarse que el software sea eficiente en situaciones reales y extraordinarias ( que sea capaz de aguantar la carrilla ruda).

En una prueba de rendimiento se crean escenarios donde un usario comun realiza una actividad tipica en la aplicacion, se realizan scripts automatizados que simularan las actividades del usuario y se crean combinaciones reales de los mismos, despues se corren esos escripts por unidades, decenas, cientos o miles simultaneamente sobre la aplicacion para medir que esta se comporte como debe. Existen muchos tipos de pruebas de rendimiento, desde la de Linea Base que es de un solo usuario en la aplicacion, hasta las de Punto de Ruptura donde se forza la aplicacion hasta que truena.

Para mi son mas divertidas porque el tester no solo tiene que preocuparse por la aplicacion sino por todos los componentes que interactuan con la misma; servidores, balanceadores, ruters, servicios web, bases de datos, etcetera…  lo que falla no necesariemente es la aplicacion, pero tal ves la capacidad del servidior, la base de datos, el algoritmo del balanceador que carga mas a un servidor que otro, o incluso que existen goteras de memoria (memory leaks) porque algun proceso no libera los recursos que utiliza.

Todo este choro mareador es solo por lo siguiente:  Cuando entre a mi actual empleo hace un año entre como Tester de pruebas de rendimiento, me cambiaron despues de unos meses a otros proyectos… y sobretodo desde que entre al ultimo… quiero regresar a las pruebas de rendimiento!.

Anuncios