En el ámbito del desarrollo de software o software testing, la sigla QA significa Quality Assurance, o aseguramiento de la calidad y se refieren a un conjunto de actividades de evaluación de las distintas etapas del proceso de desarrollo para garantizar que el producto final sea de calidad.
El concepto de calidad se presta a múltiples interpretaciones, pero siempre implica que el software satisfaga las necesidades del cliente.
Más allá de las diferencias, un buen plan de QA dentro del software testing no puede desconocer la importancia de los estándares. Con esto nos referimos a reglas escritas sobre los objetivos del producto, las metodologías de diseño a seguir y convenciones necesarias para guiar la tarea de los programadores.
El plan de QA atraviesa el proceso de desarrollo desde el nacimiento de la idea hasta la implementación del software. En las primeras etapas, verifica que los objetivos estén bien planteados y los requerimientos sean precisos.
Mientras que, en las fases de diseño y codificación, vigila el cumplimiento de los estándares fijados. Finalmente, revisa que el software en funcionamiento respete los requerimientos pedidos y que la entrega al cliente se haga en las condiciones adecuadas.
El QA se basa en conjunto de pruebas de calidad entre las que se incluyen:
- Testeo unitario: se prueba que cada módulo funcione bien por separado.
- Prueba de stress: se prueba la resistencia de la aplicación enviándole una cantidad de peticiones excesiva, buscando que colapse.
- Test de integración: los módulos probados independientemente durante el testeo unitario se acoplan y se prueban en conjunto.
- Test funcional: se prueba que el software ofrezca las funciones solicitadas.
- Test de aceptación: el usuario verifica que el producto satisfaga sus expectativas.
Las pruebas de QA no sólo son beneficiosas para el usuario final, que recibirá un producto de calidad, sino también para el equipo de desarrollo, que al establecer un control permanente sobre el proceso evitará en buena medida los costos de tener que corregir errores en etapas avanzadas del proyecto.