El aseguramiento de la calidad del software implica probar el diseño y la implementación del software de computadora y asegurarse de que cumpla con un estándar mínimo de calidad. En el núcleo del proceso de aseguramiento de la calidad se encuentran las pruebas, que es el método mediante el cual se analiza cada paso del ciclo de desarrollo para encontrar defectos, como fallas de funcionamiento o problemas de seguridad. La parte más conocida del proceso de aseguramiento de la calidad del software es la prueba de software y código; sin embargo, también cubre otros aspectos del ciclo de la ingeniería. Otros aspectos de la ingeniería de software que están sujetos a análisis de calidad incluyen las etapas de diseño e implementación.
El concepto general de aseguramiento de la calidad del software requiere que comience en la fase de planificación del software. El software mal planeado puede ser difícil o imposible de escribir de una manera que cumpla con las expectativas de la organización que lo imaginó. La gestión de la calidad en la etapa de diseño implica estudiar las ramificaciones de las especificaciones u objetivos del proyecto, así como los planes de la organización para lograr sus objetivos. El beneficio del análisis de calidad en la fase de diseño es que encuentra y elimina errores temprano, en lugar de más tarde en el ciclo de desarrollo, cuando los problemas de diseño son mucho más costosos de solucionar.
Un ingeniero de pruebas de software, también conocido como analista de calidad de software, es la persona principal responsable de llevar a cabo el proceso de prueba. Esta persona diseña y ejecuta los planes de prueba que ayudarán a una organización a mejorar la calidad de su software. Idealmente, un programador nunca debería probar su propio producto, lo que significa que dentro de un proyecto, un programador y un ingeniero de pruebas son dos personas diferentes.
Los planes de prueba son una parte crítica del sistema de aseguramiento de la calidad, particularmente la fase de prueba del software. El propósito de los planes de prueba es determinar las condiciones que marcan el éxito o el fracaso del software. Un plan de prueba típico incluirá una lista completa de programas y subprogramas, o procedimientos que deben probarse, así como las técnicas involucradas en las pruebas. Otra función crítica de un plan de prueba es determinar qué defectos son inaceptables. Los planes de prueba generalmente se diseñan antes de que se desarrolle el código de software real del proyecto.
Cuando los ingenieros de pruebas escriben programas para implementar planes de prueba, estos se denominan scripts de prueba. Los scripts de prueba son una parte esencial del proceso de aseguramiento de la calidad del software. Su propósito es automatizar la prueba del código existente de un programa para encontrar defectos. Además, los ingenieros de pruebas suelen utilizar herramientas de prueba diseñadas comercialmente para buscar posibles problemas. Los planes de prueba se implementan durante la etapa de codificación del desarrollo de software.
Hay una serie de pasos importantes involucrados en la etapa de prueba real del proceso de aseguramiento de la calidad del software. Estos incluyen pruebas unitarias, que evalúan la integridad de varias secciones del código de software, así como inyecciones de fallas, que están diseñadas para investigar cómo responden los programas a datos erróneos. Los pasos adicionales incluyen pruebas de carga o pruebas de estrés, que ven cómo funciona un programa bajo un uso intensivo, y pruebas de intrusión o seguridad para probar la resistencia de un programa al acceso no autorizado. Por lo general, un proyecto de software también se somete a pruebas de usabilidad para verificar que el programa resultante sea fácil de usar para otros.
Los especialistas que realizan pruebas de código de software generalmente se dividen en dos grupos, uno llamado probadores de caja negra y el otro conocido como probadores de caja blanca o caja de vidrio. La prueba de caja negra es un proceso más superficial que comienza en la etapa de codificación del software y no examina ningún código informático subyacente. Investiga la usabilidad, la consistencia cosmética y la aparición de errores y fallas de un software.
Las pruebas de caja blanca son un proceso que comienza desde el principio del proceso de aseguramiento de la calidad del software, en la etapa de diseño. Incluye la predicción de problemas potenciales antes de que se escriba realmente el código, así como la redacción de planes de prueba y scripts de prueba avanzados. A diferencia de las pruebas de caja negra, las pruebas de caja blanca también implican el estudio del código informático subyacente.
La garantía de calidad también se aplica a la fase de implementación del software, que es cuando el software está a punto de completarse y se instala en los sistemas informáticos para su evaluación. Esta fase a menudo se denomina prueba alfa y ocurre cuando el personal de desarrollo instala y prueba el producto casi terminado. Cuando el software se presenta a clientes potenciales fuera de la empresa, se denomina prueba beta. Si aparecen defectos después de la publicación del software y es necesario desarrollar un parche, se utilizan pruebas de regresión para garantizar que las actualizaciones no creen nuevos errores.