¿Qué pruebas aplicamos a Athento?

Para garantizar la calidad de Athento, realizamos pruebas al producto de Quality Assurance tanto en el desarrollo del producto en general como en la customización del producto en proyectos para clientes. Estas pruebas garantizan que el producto cumpla con requisitos específicos de calidad. A continuación, veremos estas pruebas y las herramientas que utilizamos para hacerlas.

Test Unitarios

 

Estas pruebas tratan de evaluar el comportamiento de módulos o trozos de código. Con ellos sabemos si el código evaluado funciona independientemente del resto del sistema. En otras palabras, los test unitarios nos ayudan a saber cómo se comporta un módulo desarrollado en distintas situaciones de datos de entrada y  a encontrar posibles errores en la implementación.

 

 

 Estos tests se realizan de forma automática. Para asegurarnos de que ningún desarrollo nuevo afecta al funcionamiento de los módulos ya desarrollados, utilizamos herramientas de Integración Continua como Jenkins o CircleCI que cada vez que se incluye un nuevo cambio en el código, lanzan todos los tests unitarios de forma automática. Si estas aplicaciones no detectan ningún fallo, se genera una release que pasa a la siguiente etapa de pruebas.

 

 

Test de Integración

Las pruebas de integración nos permiten evaluar que todas las piezas del puzzle funcionan conjuntamente de una forma adecuada.

 Es decir, a diferencia de los test unitarios en los que se prueban partes específicas del código sin tener en cuenta la interacción de unas partes del sistema con otras, en los tests de integración se prueba el sistema en su conjunto, por ejemplo: tests de integración con Bases de Datos, con APIs de terceros, con sistemas de ficheros, con otros sistemas de Back-end (como por ejemplo Elastic Search para el gestor documental), etc.
Para la realización de test de integración utilizamos algunas herramientas como Runscope para probar por ejemplo la interacción de Athento con APIs. En el caso de proyectos, estas pruebas se realizan en entornos de Pre-producción o Staging.

Test de Rendimiento

Durante las pruebas de rendimiento, el sistema se somete a pruebas de estrés y de carga masiva de datos. En estas pruebas se trata de determinar la escalabilidad del sistema (nivel de degradación ante tal carga de datos), se miden tiempos de respuestas y, por supuesto, se resuelven los errores producidos por cargas masivas de datos. Para realizar estas pruebas utilizamos herramientas como JMeter de Apache. En el caso de proyectos para clientes, durante las pruebas de rendimiento, se generan informes de escalabilidad que se entregan al cliente. Con base en estas pruebas, ha de decidirse si el sistema debe montarse en clusters o no, informando al cliente sobre los límites razonables de una arquitectura con un solo nodo. En el caso de proyectos, estas pruebas se realizan en entornos de Pre-producción o Staging.




Test Funcionales

Estas son las pruebas más cercanas a los usuarios. Son pruebas reales sobre la aplicación en un entorno de pre-producción en el que se intentan testear todas las funcionalidades de la herramienta tal y como las usarían los usuarios finales. Existen dos tipos de test funcionales que explicamos a continuación.

Smoke Test

Son pruebas que principalmente tienen que ver con la nevegación en la aplicación. Comprueban que a nivel de interfaz todo sea perfectamente funcional: los menús funcionan bien, el usuario puede rellenar todos los formularios sin problemas, las pantallas se visualizan correctamente, todos los enlaces funcionan, etcétera. Estos test los automatizamos con herramientas como Ghost Inspector.

 

Test de Aceptación

Con estas pruebas se comprueba que las aplicaciones cumplan con los requisitos de los usuarios finales, requerimientos o procesos de negocio. El objetivo de estas pruebas es que el uso de la funcionalidad sea satisfactoria para los usuarios para los que fue desarrollada. En proyectos de Athento, las planificaciones incluyen días durante los cuales se llevan a cabo las pruebas de los usuarios, se recibe su feedback y se ajusta el producto de acuerdo a él.



Coverage

Athento no puede asegurar un coverage de las pruebas del 100%, el usuario puede tener a su disposición el listado de tests que se ejecutan en el producto y puede solicitarlos en su caso