Introducción al Testing: Pruebas no funcionales

Las pruebas no funcionales son aquellas que verifican requisitos basados en la operación de un software, no en la funcionalidad en sí. Este tipo de pruebas, pueden ayudarnos a determinar la carga que soporta el producto, si su rendimiento es el correcto o si está estable a nivel de contacto con el servidor.


Cuando hacemos pruebas no funcionales, podemos determinar métricas muy interesantes, como si nuestro sistema es un cuello de botella cuando llama a la base de datos o que rendimiento aporta de cara al usuario final, como bien se sabe, un mal rendimiento nos hace perder clientes.

Un claro ejemplo del tipo de pruebas no funcionales que se pueden realizar es el siguiente:
  • Pruebas de carga: Las pruebas de carga consisten en simular una serie de accesos sobre un software y medir el resultado. Estas pruebas se realizan bajo demanda
    esperada y también en condiciones de sobrecarga.



    Estas ayudan a identificar la máxima capacidad operativa
    de un software, identificando cuellos de botella y las
    causas de posible degradación del desempeño o servicio.
 

  • Pruebas de infraestructura: comprueban valores como la disponibilidad, la continuidad, la escalabilidad o la fiabilidad de un software, entre otras muchas casuísticas posibles.

  • Pruebas de seguridad: relacionadas con el hacking ético, detectar vulnerabilidades y auditoria de buenas prácticas, comprueban los atributos o características de seguridad del sistema, si es un sistema seguro o no, si puede ser vulnerado, si existe control de acceso por medio de cuentas de usuario, si pueden ser vulnerados estos accesos.

  • Pruebas de rendimiento: determinan problemas de concurrencia, escalabilidad o carga, entre otras cosas.

  • Pruebas de estrés: Están relacionadas con las pruebas de carga, ya que si se eleva por encima de los parámetros esperados, a estas pruebas se les conoce como pruebas de estrés. Con las pruebas de estrés se pueden identificar los puntos de ruptura, límites para uso seguro de la aplicación, confirmar las especificaciones de diseño, identificar las formas en que el sistema falla, entre otras muchas validaciones.

  • Pruebas de volumen: Comprueban que el funcionamiento de la aplicación con ciertos volúmenes de datos es adecuado. Estas pruebas no están limitadas a bases de datos, también se pueden usar, por ejemplo, para medir el desempeño de una interfaz en el supuesto de que un archivo supera un tamaño estipulado.

    El objetivo es ver si dado ciertos volúmenes de datos la aplicación funciona con normalidad, cuales son los límites máximos de volúmenes de datos para la operación e identificar condiciones de falla.

  • Pruebas de usabilidad: son aquellas que validan cuanto es de fácil el usar el software de cara a los usuarios finales, de esta manera consideramos un software adecuado y que, posiblemente, se posicione por encima de sus competidores principales.

Hay muchas más, como las de escalabilidad,resistencia, recuperación o configuración, entre otras.

La importancia de las pruebas no funcionales es muy grande ya que si no se realizan se pueden ocasionar problemas muy graves y potencialmente catastróficos tras la salida a producción, como lentitud, falta de coordinación entre herramientas de terceros, bloqueos de BBDD...

Sin embargo, también podemos decir que la realización de este tipo de pruebas es muy costosa y que se deben de evaluar los riesgos antes de comprometer los recursos previstos, aunque siempre vamos a tener un ROI más que adecuado que hará que la inversión merezca la pena.

0 Comentarios