Garantía de calidad del software: ¿Existe una regla general para estimar el control de calidad como porcentaje del tiempo total de desarrollo?

Para el desarrollo de aplicaciones web; Utilizo la regla de que 1/4 de todo el tiempo de desarrollo se gasta haciendo pruebas (pero no escribiendo pruebas *), control de calidad y cosas relacionadas, como leer informes de errores. Esto puede parecer alto, pero en realidad cualquier cosa compleja necesita mucha verificación. Escribir pruebas automatizadas (unidad / integración / caja negra / etc.) mantiene este tiempo bajo cuanto más complejo se vuelve un proyecto. Los proyectos sin estos se vuelven cada vez más caros de soportar (tiempo del desarrollador corrigiendo errores) cuanto más se les agrega.

Personalmente, tengo un desglose de mi ‘tiempo de codificación’ más o menos como tal;

– escribir código rubí 60%
– escribir pruebas de unidad RSpec 20%
– escritura de pruebas de integración 10%
– redacción de pruebas / pasos de control de calidad de Rainforest – 5%
– replicar informes / alertas de errores – varía enormemente, pero en promedio – 5%

No uso ninguna “regla general” por un par de razones:

  1. Cualquier proyecto que vea la necesidad de estimar el QA como una actividad separada del desarrollo está en problemas desde el principio. Las actividades de prueba deben integrarse en el equipo de desarrollo: debe realizar pruebas en cada etapa del proyecto, y no debe haber un hito como “desarrollo completo” hasta que todas las pruebas asociadas para esa fase del proyecto también se hayan completado.
  2. El esfuerzo de prueba necesario que recomendaría es específico del proyecto en función de factores contextuales: el nivel de experiencia del equipo de desarrollo, el nivel de experiencia de los recursos de prueba disponibles para el equipo, la complejidad de la aplicación y el entorno, hasta qué punto la empresa se dedica al desarrollo, el conocimiento del dominio disponible para el equipo, si el equipo tiene las herramientas adecuadas para el desarrollo y las pruebas, etc. La relación tampoco es lineal.
  3. Cada actividad tiene un componente de control de calidad más allá del componente de prueba. Si las otras actividades no se realizan teniendo en cuenta la calidad, las pruebas serán menos efectivas y tomarán más tiempo.

Estima el trabajo en función de su conocimiento de su equipo y sus capacidades, y se da cuenta de que realmente tiene un solo elemento entregable al final del día: un sistema de trabajo.