En anteriores ocasiones os hemos hablado del testing de software. Hoy queremos profundizar en las razones para hacer pruebas de software. Se trata de una de las actividades más importantes en el desarrollo de un proyecto. Entre otras cosas, porque hace posibles los procesos, los métodos de trabajo y las herramientas necesarias para garantizar su calidad. Por eso, el testing de software es una inversión. Es una de nuestras especialidades junto al desarrollo de software ERP.
Se trata, por ejemplo, de poder detectar a tiempo cualquier error y garantizar que los productos cumplen con determinadas premisas. Por eso, el testing debe existir en todas las fases del proyecto. Es decir, desde la toma de requerimientos al cliente hasta las reuniones de seguimiento y la entrega del producto final. A la larga, si omitimos estas pruebas de software, el coste económico será mayor. Para evitarlo, podemos apostar por QA Quality Assurance.
Ahorro de costes y tiempo
Durante la planificación de un proyecto, el equipo de QA dispone de unos días para hacer pruebas. El testing de software lo que consigue es asegurar la calidad del producto. No podemos olvidar que, detectar errores en la fase final y corregirlos implica un mayor esfuerzo en cuanto a horas y una inversión económica mayor. Por eso es clave prevenir los errores de antemano.
Para cada actualización de software hay que hacer tests de regresión que garanticen que el producto sigue funcionando correctamente y que ninguna de las modificaciones ha producido errores colaterales. Los tests de regresión necesitan de una automatización para ahorrar tiempo de proyecto y mejorar su fiabilidad. Todas las pantallas que interactúen con backend o servicios serán las primeras en ser automatizadas. Además, con un ciclo de integración continua se consigue minimizar el tiempo y el esfuerzo requerido para las pruebas de regresión, acelerar los desarrollos y actualizaciones de producto y reducir el TTM (Time to Market). Por descontado, también minimizar los errores en la ejecución.
En definitiva, el testing de software es esencial en todas las fases de desarrollo de un producto. Se trata de detectar errores a tiempo para poder subsanarlos antes de la entrega del producto. Dicho de otro modo, en un proyecto de desarrollo de software pueden aparecer errores en cualquiera de las etapas del ciclo de vida. El código final puede tener errores de requerimientos, diseño o funcionalidad. Para identificarlos es necesario realizar pruebas de software. Estas tienen tres objetivos:
- Detectar errores específicos.
- Descubrir errores no detectados con anterioridad.
- Tener un buen caso de prueba.
Tipos de pruebas
Según la forma de ejecutarse encontramos diversos tipos de pruebas.
- Pruebas manuales: las realiza el usuario paso a paso.
- Pruebas automáticas: se usa otro software y se comparan los resultados obtenidos con los esperados.
Las pruebas se dividen además en distintos niveles:
- Pruebas unitarias: es la manera de comprobar el correcto funcionamiento de un módulo de código. Permite asegurar que todos los módulos del sistema desarrollado funcionan correctamente por separado.
- Pruebas de integración: si todo funciona correctamente a nivel individual no debería fallar cuando se une. Por eso, para evitar que haya fallos al integrar un módulo con otro hay que echar mano de las pruebas de integración.
- Pruebas de validación: al acabar las pruebas de integración, cuando ya se haya compuesto el software como sistema y se hayan corregido los errores de interfaz. Estas pruebas se concentran en las acciones visibles para el usuario.
- Pruebas de sistema: se comprueba el nivel de seguridad del sistema, se hacen pruebas de resistencia que permiten saber cómo responderá el sistema a situaciones anormales de recursos y pruebas de recuperación y de rendimiento.
- Pruebas de aceptación: el usuario lo prueba en su propio entorno y dice si lo acepta tal y como está o no.