Testing: ¿Cómo sé si un cambio es bueno?;

Existen distintos tipos de pruebas en testing, para medir iniciativas y el impacto que puedan tener los pequeños cambios, uno de ellos es hacer pruebas A→B.

Testing y poner a prueba el cambio: Pequeños cambios, aseguran la efectividad

Son usadas para medir la efectividad de pequeños cambios en nuestros flujos claves en las webs que mantenemos.
Si necesitamos subir la cantidad de clicks en el flujo de compra, podemos comenzar a medir en el flujo, ligeros cambios.  Los cuales van impactando positiva o negativamente antes de decidir hacer un cambio definitivo.

En un proyecto de desarrollo de software pueden aparecer errores en cualquier etapa del ciclo de vida. Incluso algunos de ellos,  permanecen sin ser descubiertos. De ahí la importancia de las pruebas en desarrollo de software.

Hay una gran probabilidad de que el código final tenga errores tanto de requerimientos, como de diseño o de funcionalidad. Para identificar estos problemas antes de que ocurran en un entorno crítico, es necesario realizar pruebas de software, una parte muy importante del proceso; sin embargo, debemos tener en cuenta que los fallos mientras la aplicación web o mobile está en funcionamiento puede llegar a ser mucho mayor.

Tipos de testing  

Los tipos de pruebas en testing, se dividen en distintos niveles, que van desde probar módulos individuales hasta pruebas de todo el sistema en su conjunto. Los distintos niveles de pruebas son los siguientes:

Pruebas manuales:

las que realiza el usuario paso a paso. El probador se pone en la piel del rol de usuario que se tenga que validar, y realiza todas aquellas operaciones que tenga definidas en un plan de pruebas

Pruebas automáticas:

consiste en el uso de otro software y la comparación de los resultados obtenidos y los esperados. Permite adicionar pruebas cuya ejecución manual sería tediosa y/o difícil.

Pruebas unitarias:

una prueba unitaria es la manera de comprobar el correcto funcionamiento de un módulo de código. Esto nos permite asegurar que todos los módulos del sistema desarrollado funcionen correctamente por separado

Pruebas de estrés (stress testing)

son realizadas sobrecargando un sistema más allá de sus especificaciones, para verificar cómo y cuándo fallará. Podemos colocar una gran carga en la base de datos, entradas (peticiones).Ejemplo. ingreso de múltiples usuarios a una web ecommerce donde verifica la calidad de acceso en el  loguin, compra, navegación, etc.

Pruebas de estres
Pruebas de estres
Prueba de renedimiento
Prueba de renedimiento

Permiten saber cómo responderá el sistema a situaciones anormales de recursos y pruebas de recuperación y de rendimiento.

Pruebas de performance

La monitorización y análisis de resultados es lo más importante en el performance testing. Tiene su complicación y sobre todo, entender el esquema de red de conexiones con los diferentes sistemas que forman la infraestructura del sistema, ya sea BBDD, Servidor Web, Proxy Web etc.

Pruebas de performance
Pruebas de performance

Performance testing es clave para asegurar el rendimiento y la calidad de un sistema, aplicaciones o conjunto de aplicaciones para asegurar el funcionamiento de la misma y saber los errores de cada parte del sistema, ya sea por parte servidora como por la parte de cliente.

Pruebas de integración:

Si hemos visto que todo individualmente funciona correctamente, ¿por qué debería fallar cuando se une? sí, por consiguiente puede fallar al unir módulos que por separado funcionan correctamente. Para evitar esto, existen las pruebas de integración, cuyo objetivo es coger módulos, a los que se aplicó las pruebas de unidad, y construir una estructura de programa que determine el diseño.

Pruebas de validación:

Se realizan al acabar las pruebas de integración, cuando ya se ha compuesto el software como sistema y se han corregido los errores de interfaz. Estas pruebas se concentran en las acciones visibles para el usuario.

Pruebas de aceptación:

El usuario lo prueba en su propio entorno y nos dice si lo acepta tal y como está o no.

Como conclusión podemos decir que las pruebas de software permiten la ejecución de un sistema con el objetivo principal de encontrar errores presentes en el mismo; así conseguimos reducirlos y mejorar la calidad del sistema, haciéndolo más eficaz frente a las necesidades de los usuarios.