QA y QC: dos caras de la calidad que no debes confundir
En el desarrollo de software escuchamos todo el tiempo las siglas QA y QC. Muchas personas las usan como si fueran lo mismo. Incluso en ofertas de trabajo aparecen mezcladas. Pero la realidad es que significan cosas distintas y confundirlas puede generar problemas graves en tu estrategia de calidad.
Este artículo te explica que es cada una, cual es la diferencia principal y por qué deberías dejar de intercambiarlas.
¿Qué es QA?
QA significa Quality Assurance o Aseguramiento de la Calidad. Es un conjunto de actividades planificadas y sistemáticas. Su objetivo es prevenir defectos antes de que ocurran. QA se enfoca en los procesos.
Cuando hablamos de QA, pensamos en definir estándares, crear guías de desarrollo, capacitar al equipo, hacer revisiones de código y mejorar la forma en que se construye el software. QA pregunta: ¿Estamos haciendo las cosas bien?
Una analogía útil es la medicina preventiva. No esperas a que la persona se enferme. Le das una dieta equilibrada, ejercicio y chequeos regulares para evitar la enfermedad. QA es exactamente eso.
¿Qué es QC?
QC significa Quality Control o Control de Calidad. Es un conjunto de actividades operativas que inspeccionan el producto final. Su objetivo es identificar defectos después de que el software ha sido construido. QC se enfoca en el producto.
QC incluye pruebas funcionales, pruebas de regresión, pruebas de usabilidad, reportes de bugs y cualquier verificación que se haga sobre el código ya escrito. QC pregunta: ¿El producto cumple con lo que se pidió?
Siguiendo la analogía médica, QC sería el análisis de sangre o la radiografía cuando el paciente ya tiene síntomas. Detectas el problema existente.
Diferencia principal
La diferencia central es el momento en que actúan y la naturaleza de sus acciones.
| Aspecto | QA | QC |
|---|---|---|
| Enfoque | Procesos | Producto |
| Momento | Durante todo el ciclo de vida | Al final, después de construir |
| Naturaleza | Preventiva | Correctiva |
| Responsabilidad | Todo el equipo | Generalmente un equipo de pruebas |
| Métrica principal | Cantidad de defectos evitados | Densidad de defectos encontrados |
Una forma simple de recordarlo es: QA construye calidad, QC la verifica.
Diagrama de flujo
El siguiente diagrama Mermaid muestra como se relacionan QA y QC en un flujo típico de desarrollo.
flowchart LR
A[Definir procesos] --> B[QA: Capacitación y estándares]
B --> C[Desarrollar software]
C --> D[QC: Ejecutar pruebas]
D --> E{Defectos?}
E -->|Sí| F[Reportar y corregir]
F --> C
E -->|No| G[Entregar producto]
No necesitas HTML ni etiquetas complejas. Este diagrama se renderiza sin problemas en cualquier blog que soporte Mermaid.
Por qué no hay que confundirlos
Confundir QA con QC trae consecuencias reales. La más grave es pensar que probar al final del proyecto garantiza calidad. No es así.
Si solo haces QC, detectas errores pero no evitas que se sigan produciendo. Tu equipo seguirá cometiendo los mismos fallos una y otra vez. El costo de corregir crece exponencialmente cuanto más tarde se encuentra un defecto.
Si solo haces QA, puedes tener procesos perfectos pero nunca verificar que el producto realmente funciona. Te quedas con la teoria sin validar la practica.
Como dijo Gerald Weinberg en su libro "Quality Software Management": "La calidad es valor para alguna persona. No es un atributo abstracto". No se puede asegurar calidad sin controlar el producto ni controlar el producto sin asegurar los procesos.
Ejemplo concreto
Imagina que desarrollas una API de pagos.
QA sería: definir que todos los desarrolladores deben escribir pruebas unitarias, establecer un checklist de seguridad antes de escribir código, capacitar al equipo en OWASP, revisar la arquitectura antes de implementar.
QC sería: ejecutar pruebas de integración sobre la API ya desplegada, hacer pruebas de penetración, verificar que los montos se calculen bien, reportar un bug cuando un endpoint devuelve error 500.
Ambos son necesarios. Ninguno reemplaza al otro.
Referencias
Para respaldar estas definiciones se han consultado fuentes confiables del mundo del software y la gestión de calidad.
International Software Testing Qualifications Board. (2018). ISTQB Certified Tester Foundation Level Syllabus. Version 2018 v3.1. https://www.istqb.org
Pressman, R. S. (2014). Software Engineering: A Practitioner's Approach. 8th ed. McGraw-Hill Education.
ISO. (2015). ISO 9000:2015 Quality management systems — Fundamentals and vocabulary. International Organization for Standardization.
Weinberg, G. M. (1992). Quality Software Management: Systems Thinking. Dorset House Publishing.
Cargando reacciones...
Comentarios (0)
Cargando sesión...
Aún no hay comentarios. Sé el primero en comentar.