what is software quality assurance
¿Qué es la garantía de calidad del software?
Aseguramiento de la calidad del software (SQA) es un proceso que asegura que todos los procesos, métodos, actividades y elementos de trabajo de ingeniería de software sean monitoreados y cumplan con los estándares definidos. Estos estándares definidos pueden ser uno o una combinación de cualquiera como ISO 9000, modelo CMMI, ISO15504, etc.
SQA incorpora todos los procesos de desarrollo de software desde la definición de requisitos hasta la codificación hasta su lanzamiento. Su principal objetivo es garantizar la calidad.
Lo que vas a aprender:
- Plan de garantía de calidad del software
- Actividades de SQA
- Estándares de garantía de calidad del software
- Elementos de garantía de calidad del software
- Técnicas SQA
- Conclusión
- Lectura recomendada
Plan de garantía de calidad del software
Abreviado como SQAP, el plan de aseguramiento de la calidad del software comprende los procedimientos, técnicas y herramientas que se emplean para asegurarse de que un producto o servicio se alinea con los requisitos definidos en el SRS (especificación de requisitos de software).
El plan identifica las responsabilidades de SQA de un equipo, enumera las áreas que necesitan ser revisadas y auditadas. También identifica los productos de trabajo de SQA.
El documento del plan SQA consta de las siguientes secciones:
- Sección de propósito
- Sección de referencia
- Sección de gestión de configuración de software
- Sección de informes de problemas y acciones correctivas
- Sección de herramientas, tecnologías y metodologías
- Sección de control de código
- Registros: sección de recopilación, mantenimiento y retención
- Metodología de prueba
Actividades de SQA
A continuación se muestra la lista de actividades de SQA:
# 1) Creación de un plan de gestión de SQA:
La actividad más importante incluye establecer un plan adecuado con respecto a cómo se llevará a cabo el SQA en su proyecto.
Junto con el enfoque de SQA que va a seguir, las actividades de ingeniería que se llevarán a cabo, y también incluye asegurarse de tener la combinación de talentos adecuada en su equipo.
# 2) Establecer los puntos de control:
El equipo de SQA establece diferentes puntos de control según los cuales evalúa la calidad de las actividades del proyecto en cada punto de control / etapa del proyecto. Esto asegura una inspección de calidad regular y un funcionamiento según el cronograma.
# 3) Aplicar técnicas de ingeniería de software:
La aplicación de algunas técnicas de ingeniería de software ayuda al diseñador de software a lograr especificaciones de alta calidad. Para recopilar información, un diseñador puede utilizar técnicas como entrevistas y FAST (Técnica del sistema de análisis funcional).
Posteriormente, basándose en la información recopilada, el diseñador de software puede preparar la estimación del proyecto utilizando técnicas como WBS (estructura de desglose del trabajo), SLOC (línea fuente de códigos) y estimación de FP (punto funcional).
# 4) Ejecución de revisiones técnicas formales:
Se realiza un FTR para evaluar la calidad y el diseño del prototipo.
En este proceso, se lleva a cabo una reunión con el personal técnico para discutir sobre los requisitos reales de calidad del software y la calidad del diseño del prototipo. Esta actividad ayuda a detectar errores en la fase inicial de SDLC y reduce el esfuerzo de retrabajo en las fases posteriores.
# 5) Tener una estrategia de pruebas múltiples:
Por estrategia de pruebas múltiples, queremos decir que no se debe confiar en un enfoque de prueba único, sino que se deben realizar múltiples tipos de pruebas para que el producto de software se pueda probar bien desde todos los ángulos para garantizar una mejor calidad.
# 6) Cumplimiento del proceso de cumplimiento:
Esta actividad insiste en la necesidad de seguir el proceso durante el proceso de desarrollo de software. El proceso de desarrollo también debe ceñirse a los procedimientos definidos.
copiadora de dvd gratis para windows 10
Esta actividad es una combinación de dos subactividades que se explican en detalle a continuación:
(i) Evaluación del producto:
Esta actividad confirma que el producto de software cumple con los requisitos que se descubrieron en el plan de gestión del proyecto. Asegura que los estándares establecidos para el proyecto se sigan correctamente.
(ii) Seguimiento del proceso:
Esta actividad verifica si se tomaron los pasos correctos durante el desarrollo del software. Esto se hace comparando los pasos realmente tomados con los pasos documentados.
# 7) Control del cambio:
En esta actividad, utilizamos una combinación de procedimientos manuales y herramientas automatizadas para tener un mecanismo de control de cambios.
Al validar las solicitudes de cambio, evaluar la naturaleza del cambio y controlar el efecto del cambio, se asegura que la calidad del software se mantenga durante las fases de desarrollo y mantenimiento.
# 8) Mida el impacto del cambio:
Si el equipo de control de calidad informa algún defecto, entonces el equipo en cuestión corrige el defecto.
Después de esto, el equipo de control de calidad debe determinar el impacto del cambio que trae esta corrección de defectos. Deben probar no solo si el cambio ha solucionado el defecto, sino también si el cambio es compatible con todo el proyecto.
Para ello, utilizamos métricas de calidad de software que permiten a los gerentes y desarrolladores observar las actividades y los cambios propuestos desde el principio hasta el final de SDLC e iniciar acciones correctivas donde sea necesario.
# 9) Realización de auditorías SQA:
La auditoría de SQA inspecciona todo el proceso SDLC real seguido de compararlo con el proceso establecido.
También verifica que todo lo informado por el equipo en los informes de estado se haya realizado o no. Esta actividad también expone cualquier problema de incumplimiento.
# 10) Mantenimiento de registros e informes:
Es fundamental mantener la documentación necesaria relacionada con SQA y compartir la información SQA requerida con las partes interesadas. Los resultados de las pruebas, los resultados de las auditorías, los informes de revisión, la documentación de solicitudes de cambio, etc. deben conservarse para referencia futura.
# 11) Maneje las buenas relaciones:
De hecho, es muy importante mantener la armonía entre el QA y el equipo de desarrollo.
A menudo escuchamos que los probadores y desarrolladores a menudo se sienten superiores entre sí. Esto debe evitarse ya que puede afectar la calidad general del proyecto.
Estándares de garantía de calidad del software
En general, SQA puede exigir la conformidad con uno o más estándares.
Algunos de los estándares más populares se analizan a continuación:
ISO 9000: Este estándar se basa en siete principios de gestión de la calidad que ayudan a las organizaciones a garantizar que sus productos o servicios estén alineados con las necesidades del cliente ”.
En la siguiente imagen se describen 7 principios de ISO 9000:
Nivel CMMI: CMMI significa Integración del modelo de madurez de capacidades . Este modelo se originó en la ingeniería de software. Puede emplearse para dirigir la mejora de procesos a través de un proyecto, departamento o toda una organización.
5 niveles CMMI y sus características se describen en la siguiente imagen:
Una organización es evaluada y se le otorga una calificación de nivel de madurez (1-5) según el tipo de evaluación.
Integración del modelo de madurez de prueba (TMMi): Basado en CMMi, este modelo se centra en los niveles de madurez en la gestión y las pruebas de calidad del software.
En la siguiente imagen se muestran 5 niveles de TMMi:
A medida que una organización avanza hacia un nivel de madurez superior, logra una mayor capacidad para producir productos de alta calidad con menos defectos y cumple estrictamente con los requisitos comerciales.
Elementos de garantía de calidad del software
Hay 10 elementos esenciales de SQA que se enumeran a continuación para su referencia:
- Estándares de ingeniería de software
- Revisiones técnicas y auditorías
- Pruebas de software para control de calidad
- Recopilación y análisis de errores
- Gestión del cambio
- Programas educativos
- Gestión de proveedores
- Gestion de seguridad
- La seguridad
- Gestión de riesgos
Técnicas SQA
Hay varias técnicas para SQA. La auditoría es la técnica principal que se adopta ampliamente. Sin embargo, también tenemos algunas otras técnicas importantes.
Varias técnicas de SQA incluyen:
- Revisión de cuentas: La auditoría implica la inspección de los productos del trabajo y su información relacionada para determinar si se siguió o no el conjunto de procesos estándar.
- Revisando : Una reunión en la que el producto de software es examinado por las partes interesadas internas y externas para buscar sus comentarios y aprobación.
- Inspección de código: Es el tipo de revisión más formal que realiza pruebas estáticas para encontrar errores y evitar el crecimiento de defectos en las etapas posteriores. Lo hace un mediador / compañero capacitado y se basa en reglas, lista de verificación, criterios de entrada y salida. El revisor no debe ser el autor del código.
- Inspección de diseño: La inspección del diseño se realiza mediante una lista de verificación que inspecciona las siguientes áreas del diseño de software:
- Requisitos generales y diseño
- Especificaciones funcionales y de interfaz
- Convenciones
- Trazabilidad de requisitos
- Estructuras e interfaces
- Lógica
- Rendimiento
- Manejo y recuperación de errores
- Testabilidad, extensibilidad
- Acoplamiento y cohesión
- Simulación: La simulación es una herramienta que modela la situación de la vida real para examinar virtualmente el comportamiento del sistema en estudio.
- Prueba funcional: Es una técnica de control de calidad que verifica lo que hace el sistema sin considerar cómo lo hace. Este tipo de prueba de caja negra se centra principalmente en probar las especificaciones o características del sistema.
- Estandarización: La estandarización juega un papel crucial en el aseguramiento de la calidad. Disminuye la ambigüedad y las conjeturas, asegurando así la calidad.
- Análisis estático: Es un análisis de software que se realiza mediante una herramienta automatizada sin ejecutar realmente el programa. Esta técnica se utiliza mucho para garantizar la calidad en software médico, nuclear y de aviación. Las métricas de software y la ingeniería inversa son algunas formas populares de análisis estático.
- Tutoriales: El tutorial de software o tutorial de código es una especie de revisión por pares en la que el desarrollador guía a los miembros del equipo de desarrollo para que revisen el producto y realicen consultas, sugieran alternativas, hagan comentarios sobre posibles errores, violaciones de estándares o cualquier otro problema.
- Prueba de ruta: Es un técnica de prueba de caja blanca donde se garantiza la cobertura completa de la sucursal ejecutando cada ruta independiente al menos una vez.
- Pruebas de estrés: Este tipo de prueba se realiza para verificar qué tan robusto es un sistema probándolo bajo una carga pesada, es decir, más allá de las condiciones normales.
- Six Sigma: Six Sigma es un enfoque de garantía de calidad que apunta a productos o servicios casi perfectos. Se aplica ampliamente en muchos campos, incluido el software. El objetivo principal de six sigma es la mejora de procesos para que el software producido esté libre de defectos en un 99,76%.
Conclusión
SQA es una actividad general que se emplea durante todo el ciclo de vida del software.
La garantía de calidad del software es muy importante para que su producto o servicio de software tenga éxito en el mercado y sobreviva a la altura de las expectativas del cliente.
Hay varias actividades, estándares y técnicas que debe seguir para asegurarse de que el software entregable sea de alta calidad y se alinee estrechamente con las necesidades comerciales.
¡Espero que haya tenido una idea clara sobre el concepto de Garantía de calidad del software a través de este artículo informativo!
Lectura recomendada
- Certificaciones de control de calidad y pruebas de software - Parte 2
- ¿Cuáles son los atributos de calidad?
- Dios falso de la calidad versus verdaderos seres humanos: ¿quién es responsable de la calidad del software?
- Diferencia entre garantía de calidad y control de calidad (QA vs QC)
- Guía de currículum vitae de prueba de software perfecta (con muestra de currículum vitae de Software Tester)
- Cómo utilizar la técnica Poka-Yoke (prueba de errores) para mejorar la calidad del software
- Comprensión mutua en las pruebas: clave para ofrecer un software de calidad
- Trabajo de asistente de control de calidad de pruebas de software