Ya que conocemos lo que se debe aplicar para un desarrollo seguro, sabemos que se debe incluir un plan de pruebas cuyo objetivo sea el de validar que los nuevos desarrollos o los cambios en los sistemas están libres de defectos o fallas que puedan poner en riesgo la continuidad del negocio y la seguridad de la información.

Para esto además de las pruebas unitarias se debe abarcar todo el ciclo de vida del desarrollo haciendo pruebas en requisitos, en diseño y durante el desarrollo incluyendo además de las pruebas funcionales las no funcionales como las pruebas de rendimiento y seguridad.

Pruebas en requisitos

Con este tipo de pruebas que se realizan durante el levantamiento de requerimientos, se puede evaluar si todos los objetos funcionales están acordes con las necesidades planteadas por los usuarios finales. Además es muy importante tener en cuenta desde este punto aspectos no funcionales como el rendimiento, la infraestructura y la seguridad.

Pruebas en diseño

Antes de iniciar con el desarrollo, se debe verificar que todo lo que ha sido modelado en la etapa de diseño incluya los requisitos planteados por los usuarios finales. De esta forma se logra minimizar el reproceso que surge como resultado de nuevas funcionalidades que se quieran incorporar o insatisfacciones al final del proceso porque no hubo claridad de que lo que se estaba desarrollando realmente satisfacía las necesidades.

Además de garantizar que una nueva aplicación se funcional y cumpla con las necesidades para la cual está siendo desarrollada, es muy importante no descuidar otros aspectos que si bien pueden no estar relacionados con los usuarios finales si puede afectar directamente los objetivos del negocio. Es por esta razón que durante la fase de desarrollo se deben tener en cuenta por lo menos las pruebas funcionales, de rendimiento y de seguridad.

Pruebas funcionales

Sin lugar a dudas las más conocidas son las pruebas funcionales ya que son la que se utilizan para corroborar que las funcionalidades que componen el proyecto cumplan con los requisitos de funcionamiento planteados desde el diseño. Son pruebas que incluso se pueden realizar paralelamente con el desarrollo de la aplicación y de esta forma no esperar al final y generar más cargas de trabajo.

Pruebas de rendimiento

Con las pruebas de rendimiento se debe buscar evaluar si los nuevos desarrollos cumplen con los tiempos de respuesta esperados. Muchas veces el hecho de que una aplicación responda de forma lenta a pesar de cumplir con su objetivo, puede ser la razón para que la misma no satisfaga las necesidades del cliente.

Por lo tanto lo más recomendable es antes de poner en producción cualquier nuevo desarrollo, simular lo que podrían ser las condiciones normales de operación y ver como responde la aplicación. De esta forma se podrá evaluar cuantos usuarios concurrentes soporta, la velocidad de respuesta, la tolerancia a fallos e incluso como resulta de practico para el usuario final.

Pruebas de seguridad

Finalmente las pruebas de seguridad deben considerarse como un aspecto complementario del funcional. Con este tipo de pruebas se pueden detectar la existencia de vulnerabilidades que generen riesgos para la seguridad de la información.

Por lo tanto deben tener en cuenta aspectos como el sistema operativo sobre el que va a correr, los elementos de conectividad con otras aplicaciones, funcionalidades de red y si utiliza algún tipo de servicio web.

Además el análisis del código de la aplicación puede ayudar a detectar si se está fallando con alguno de los principios básicos del desarrollo seguro. De esta forma se pueden eliminar aquellas fallas que puedan permitir inyección de código, XSS, escalamiento de accesos entre otras vulnerabilidades comunes.

Ya que tenemos una hoja de ruta de como plantear nuestro plan de pruebas, podemos hacer frente a aquellos mitos que pueden llevar al desastre en cuanto al desarrollo de aplicaciones. Es muy importante que desde las etapas tempranas del ciclo de desarrollo se tengan en cuenta por igual requerimientos funcionales y no funcionales, ya que en la medida que se tenga una visión holística del sistema se logrará garantizar la seguridad de la información en la empresa.