¿Qué es el aseguramiento de la calidad del software?
El aseguramiento de la calidad del software implica probar el diseño y la implementación del software y asegurar que cumpla con un estándar mínimo de calidad. El núcleo del proceso de garantía de calidad es la prueba, que es el método por el cual se analiza cada paso del ciclo de desarrollo para encontrar defectos, como fallos de funcionamiento o problemas de seguridad. La parte más conocida del proceso de garantía de calidad del software es la prueba de software y código; sin embargo, también cubre otros aspectos del ciclo de 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 garantía de calidad del software requiere que comience en la fase de planificación del software. El software mal planificado 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 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 adelante en el ciclo de desarrollo, cuando los problemas de diseño son mucho más caros de solucionar.
Un ingeniero de pruebas de software, también conocido como analista de calidad de software, es la principal persona 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 prueba son dos personas diferentes.
Los planes de prueba son una parte crítica del sistema de garantía de calidad, particularmente la fase de prueba de 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 ser probados, así como las técnicas involucradas en la prueba. 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 prueba escriben programas para implementar planes de prueba, estos se llaman scripts de prueba. Los scripts de prueba son una parte esencial del proceso de garantía de 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 garantía de 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 ve cómo funciona un programa bajo uso intensivo, y pruebas de intrusión o seguridad para probar la resistencia de un programa al acceso no autorizado. Un proyecto de software también suele someterse 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 están separados 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 del software, la consistencia cosmética y la aparición de errores y fallas de funcionamiento.
La prueba de caja blanca es un proceso que comienza desde el comienzo del proceso de garantía de calidad del software, en la etapa de diseño. Incluye la predicción de posibles problemas antes de que el código se escriba realmente, así como la escritura de planes de prueba y scripts de prueba avanzados. A diferencia de la prueba de caja negra, la prueba de caja blanca también implica el estudio del código informático subyacente.
El aseguramiento de la calidad también se aplica a la fase de implementación del software, que es cuando el software está cerca de completarse y se instala en los sistemas informáticos para su evaluación. Esta fase a menudo se conoce como prueba alfa y ocurre cuando el producto desarrollador casi instala y prueba el producto casi terminado. Cuando el software se presenta a clientes potenciales fuera de la empresa, se llama prueba beta. Si aparecen defectos después de que se lanza el software y se necesita desarrollar un parche, se utilizan pruebas de regresión para garantizar que las actualizaciones no creen nuevos errores.