Para aplicar este proceso a proyectos tradicionales a temas en cascada ¿también podemos utilizarlo?
R// Sí se pueden incluir. Debemos tener en cuenta el punto principal del agilismo, las entregas rápidas de valor, entonces nosotros con el Continuous Testing lo que estamos haciendo es entregar valor de forma rápida. En los proyectos con metodología tradicional, organizamos la estrategia de pruebas continuas con base en las iteraciones y las entregas programadas para así garantizar calidad temprana; hay que recordar que las pruebas estáticas, unitarias y de análisis de código se alinean con todos los enfoques y siempre se pueden realizar de forma temprana.
¿Cuál es la definición de enfoque BDD, pruebas UAT y DevOps con relación al Continuous Testing?
R// BDD (Behavior-Driven Development), desarrollo dirigido por comportamiento, es una forma de especificación de los requerimientos, también nos permite reducir la ambigüedad, ser más concretos y tener especificaciones muy claras. Por otro lado, las Pruebas UAT siempre están presentes en cualquier tipo de pruebas o procesos y por último, el DevOps es entregar pruebas continuas de valor donde estén alineados los equipos de desarrollo y operaciones. El enfoque BDD permite agilizar las pruebas desde el inicio de un proyecto, las pruebas UAT hacen parte del set de pruebas que se incluyen en pruebas continuas y, DevOps tiene dentro de su concepción las pruebas continuas para garantizar calidad en cada etapa.
¿Cuáles son los porcentajes de cobertura de las pruebas unitarias entregadas por desarrollo?
R// Una cobertura madura está entre el 70% y 80%, pero cuando no tenemos ese nivel de madurez, podemos estructurar un nivel de cobertura más bajo e ir exigiendo su crecimiento poco a poco con el objetivo que crezca paulatinamente. Por ejemplo, si se define un porcentaje de inicio de un 20%, el objetivo del proyecto es mantenerlo o mejorarlo en cada entrega, una vez ese 20% se estabilice se sube el porcentaje para mejorar la cobertura; de esta forma se vuelve un proceso continuo de mejora.
¿Qué consejos darías a las instituciones de Educación Superior para preparar mejor a sus profesionales en el tema de pruebas de software en particular las pruebas continuas?
R// Durante el tiempo de aprendizaje no se enfoca mucho en calidad por lo que es interesante incluir durante toda la etapa de ingeniería el proceso de calidad y poder definir qué enfoque se le puede dar a cada fase del proceso de producto.
Adicionalmente:
- Enseñar a programar con TDD. Es decir, hacer primero la prueba unitaria antes que programar.
- Enseñar patrones de arquitectura y diseño.
- Enseñar los principios SOLID.
- Enseñar procesos y herramientas de automatización en todos los niveles y tipos de aplicaciones.
¿Por favor ampliar el conocimiento en TDD y BDD?
R// TDD es un enfoque para hacer pruebas desde el lado del Developer únicamente (generalmente son unitarias, componentes o UI). Utilizando el estilo BDD se pueden producir reportes de pruebas muy legibles con frameworks como screenplay, cucumber, specflow y usualmente se trabaja en pruebas de nivel API o UI. En el enfoque DevOps todas las pruebas unitarias (contempladas en TDD) y el BDD son parte de la estrategia.