Concepto: Centrarse continuamente en la calidad
Este principio introduce la idea de calidad y describe cómo tratarla en todo el proceso.
Descripción principal

Introducción

Este principio enfatiza que, para obtener calidad, debe abordarse en la totalidad del ciclo vital del proyecto. Un proceso iterativo está particularmente adaptado para conseguir calidad ya que ofrece muchas oportunidades para la medición y las correcciones.

            
Ventajas
  • Mayor calidad 
  • Perspectiva más temprana del progreso y la calidad
Patrón
  1. Asegúreles la propiedad de la calidad del producto.
  2. Haga pruebas tempranas y continuas en consonancia con la integración y las funciones demostrables.
  3. Construya la automatización de las pruebas de forma incremental.
Antipatrones
  • Revisar por igual todos los artefactos y completar todas las pruebas de unidad antes de las pruebas de integración.
  • Llevar a cabo una revisión por igual y en profundidad de todos los artefactos intermedios, porque es contraproducente ya que retrasa las pruebas de las aplicaciones y en consecuencia la identificación de problemas importantes.
  • Completar todas las pruebas de unidad antes de realizar las pruebas de integración, con lo que se vuelve a retrasar la identificación de problemas importantes.

Discusión 

Por lo tanto, mejorar la calidad no es sólo "cumplir requisitos" o crear un producto que cumpla las necesidades y las expectativas del usuario. Obtener calidad incluye la identificación de medidas y criterios que demuestran que se ha conseguido calidad, y la implementación de un proceso que garantice que el producto ha conseguido el grado de calidad deseado, y que puede repetirse y gestionarse.

Garantizar una alta calidad precisa más que la participación del equipo de pruebas; es necesario que todo el equipo sea propietario de la calidad. Implica a todos los miembros del equipo y a todos los protagonistas del ciclo vital:

  • Los analistas son responsables de garantizar que los requisitos se pueden probar, y que se especifican unos requisitos claros para las pruebas que deben realizarse.
  • Los desarrolladores deben diseñar las aplicaciones teniendo en cuenta las pruebas y deben ser responsables de las pruebas de su código.
  • Los gestores deben garantizar que los planes de prueba correctos están listos y que los recursos adecuados están preparados para la construcción del material de prueba (testware) y para la ejecución de las pruebas necesarias.
  • Los verificadores son los expertos en calidad. Guían al resto del equipo para que comprendan los problemas de calidad del software y son los responsables de todas las pruebas del producto (incluidas las funcionales, del sistema y de rendimiento).

Cuando experimentamos un problema de calidad, todos los miembros del grupo deben desear aportar su grano de arena para la solución.

Una de las mayores ventajas del desarrollo iterativo es que permite un enfoque de prueba temprana y de forma continua, como se ilustra a continuación. Para cuando se llegue al final de un proyecto, y como las funciones más importantes ya se han implementado en fases anteriores, el software más esencial puede haber estado en ejecución durante meses, y es por tanto muy probable que ya se haya probado durante meses. No es ninguna sorpresa que la mayoría de los proyectos que adoptan el desarrollo iterativo muestren que el aumento de la calidad es uno de los principales y más tangibles resultados del proceso mejorado.

El desarrollo iterativo permite pruebas tempranas. El software que se desarrolla en cada iteración se prueba a medida que se compila. Las pruebas de revisión garantizan que no se introducen nuevos defectos al añadir funciones en las nuevas iteraciones.

Las pruebas empiezan temprano y se amplían en cada iteración
El desarrollo iterativo permite pruebas tempranas. El software que se desarrolla en cada iteración se prueba a medida que se compila. Las pruebas de revisión garantizan que no se introducen nuevos defectos al añadir funciones en las nuevas iteraciones. Referencia: Material de soporte: Gestión de la calidad.

A medida que se va construyendo la aplicación de forma incremental, se debe también construir de forma incremental la automatización de las pruebas para detectar los defectos desde el principio, y para minimizar las inversiones iniciales. A medida que se diseña el sistema, se va considerando cómo deben realizarse las pruebas. Si se toman las decisiones adecuadas de diseño, se puede mejorar enormemente la capacidad de automatizar las pruebas. Asimismo, se puede generar código de prueba directamente a partir de los modelos de diseño. De esta forma se ahorra tiempo, se proporcionan incentivos para realizar pruebas desde el principio y se aumenta la calidad de las pruebas minimizando el número de errores en el software de prueba. Las pruebas automatizadas han sido un área clave de atención para, entre otros, la comunidad Agile, en la que la idea es automatizar las pruebas de todo el código de prueba y en la que las pruebas se escriben antes que el código (diseño con prueba inicial).