Aseguramiento de la Calidad de Software (SQA) Es un enfoque sistemático de evaluación de la calidad del Software desarrollado, basado en el correcto cumplimiento de los estándares y procedimientos durante el ciclo de vida del Software. Calidad: Llenar las expectativas del cliente (usuario), cumpliendo con los estándares establecidos. Estándares: Son criterios establecidos que sirven como marco para el desarrollo del producto. Algunos ejemplos de estándares:
¿Cómo puedo medir la calidad del Software? La calidad es subjetiva, por lo que debemos establecer un estándar de lo que el cliente desea y en base a eso podremos concluir si el producto entregado es de calidad o no. Para esto debemos describir detalladamente su solicitud por medio de un documento de requerimientos y cada requerimiento debe contar con un criterio de aceptación, que será la base para crear las pruebas.
Requerimiento: Que quiere el cliente y como lo quiere. Criterio de aceptación: Como compruebo que cumplo el requerimiento del cliente.
Documentación Reglas y métodos respecto a diseño y desarrollo Estándares de código: nomenclaturas, estructuración, restricciones, convenciones de estilos, reglas de estructura de datos e interfaces documentación interna.
Procesos y procedimientos: un procedimiento es una secuencia de pasos explícitos para realizar un proceso. Todos los procesos deben tener un procedimiento documentado.
Reporte de inconformidades Acciones correctivas Plan de pruebas Revisiones formales
Un producto es probado para garantizar el cumplimiento de los estándares establecidos. Un proceso es monitoreado para garantizar el cumplimiento del procedimiento.
¿Qué rol juega QA en cada fase del desarrollo de Software?
Planeación: Apropiado proceso de apertura del proyecto. Se involucra en la redacción y revisión del plan del proyecto para garantizar que los estándares y procedimientos identificados sean apropiados, claros y auditables. Análisis: Verificar la correcta definición de requerimientos, que estén completos y que puedan ser probados. Lic. Leticia Díaz Rincón Curso Habilidades Digitales para Docentes
Diseño: Verificar que la documentación necesaria este completa y ver por el cumplimiento de estándares así como ver que cada requerimiento haya sido cubierto adecuadamente. Desarrollo: Verificar la correcta documentación. Pruebas: Desarrollar un plan de pruebas y su ejecución. Reportar inconformidades, así como dar seguimiento a la resolución de los mismos. Certificar que el producto superó las pruebas y esta listo para su entrega. Implementación: Correcto proceso de entrega al cliente y pruebas postproducción. Cierre: Base de conocimiento y retroalimentación.
QA no es lo mismo que QC, el QA debe acompañar todo el proceso de desarrollo de Software mientras que QC esta enfocado únicamente a realizar pruebas para certificar el software.
Tipo de pruebas: Las pruebas pueden ser divididas por su enfoque, nivel o pruebas no-funcionales. Un ejemplo de pruebas que fácilmente puedes utilizar inicialmente son:
¿Qué funciones cumple un analista de SQA?
Gerencial: Verifica la existencia de estándares y procedimientos claramente definidos, si no existen, debe involucrarse en su creación. Auditoria: Normaliza y audita un correcto proceso, cumpliendo los procedimientos establecidos. Verifica la entrega y mantenimiento de la documentación requerida. Control de calidad: Certifica el Software para que pueda ser implementado en un ambiente de producción mediante la ejecución de planes y casos de prueba. Mejora continua: Entrega reportes de métricas y recomendaciones para un mejor apego a los estándares y procedimientos.
Unitarias: Desarrollador, prueban porciones de código. De Integración: Desarrollador, prueban la integración del componente desarrollado. De Sistema: QA, prueba el componente en interacción con todo el sistema. De Aceptación: QA, pruebas realizadas por el cliente. De Carga: QA, prueba la respuesta de la infraestructura, cargando muchas operaciones al sistema.
Existen muchas mas que pueden utilizarse, estos son solo unos ejemplos. ¿COMO CONTROLAR LA CALIDAD DEL SOFTWARE? Para controlar la calidad del software es necesario, ante todo, definir los parámetros, indicadores o criterios de medición, ya que, como bien plantea Tom De Marco, "usted no puede controlar lo que no se puede medir". Las cualidades para medir la calidad del software son definidas por innumerables autores, los cuales las denominan y agrupan de formas diferentes. Por ejemplo, John Wiley define métricas de calidad y criterios, donde cada métrica se obtiene a partir de combinaciones de los diferentes criterios. La Metodología para la evaluación de Lic. Leticia Díaz Rincón Curso Habilidades Digitales para Docentes
la calidad de los medios de programas de la CIC, de Rusia, define indicadores de calidad estructurados en cuatro niveles jerárquicos: factor, criterio, métrica, elemento de evaluación, donde cada nivel inferior contiene los indicadores que conforman el nivel precedente. Otros autores identifican la calidad con el nivel de complejidad del software y definen dos categorías de métricas: de complejidad de programa o código, y de complejidad de sistema o estructura.
encuestas estándares para la medición de criterios periciales y herramientas automatizadas para medir los criterios de cálculo. Definir las regulaciones organizativas para realizar el control: quiénes participan en el control de la calidad, cuándo se realiza, qué documentos deben ser revisados y elaborados, etc
Conclusión: Todos los autores coinciden en que el software posee determinados índices medibles que son las bases para la calidad, el control y el perfeccionamiento de la productividad.
Una vez seleccionados los índices de calidad, se debe establecer el proceso de control, que requiere los siguientes pasos:
Definir el software que va a ser controlado: clasificación por tipo, esfera de aplicación, complejidad, etc., de acuerdo con los estándares establecidos para el desarrollo del software. Seleccionar una medida que pueda ser aplicada al objeto de control. Para cada clase de software es necesario definir los indicadores y sus magnitudes. Crear o determinar los métodos de valoración de los indicadores: métodos manuales como cuestionarios o
Documentar todo, te sirve de soporte y garantía de todo lo que haces. Hacer estimados tomando en cuenta contingencias, no todo el tiempo vas a poder dedicarte a una tarea exclusivamente ni el ambiente va a estar al 100% para que puedas trabajar continuamente y sin distracciones. Realizar reuniones cruzadas, siempre es bueno tener un punto de vista diferente y que todo el equipo sepa en que va cada uno. Definir procesos claros, establece tus reglas de trabajo y vela por que se cumplan. Solicitar aprobación formal para cada fase, ya sea con un correo, por escrito o cualquier forma que puedas archivar. Aprende a decir SI y NO, no te comprometas a lo que no puedes, es tu credibilidad la que pones en juego. Respeta tú tiempo y el de los demás, si vas a requerir trabajo extra horario, planifícalo, para no afectar tus actividades ni la de los miembros de tu equipo. Calendariza y prioriza. Respétate como profesional, si no te consideras profesional, fácilmente dejaras que te manejen a tu antojo, date a respetar y con eso mismo ganaras el respeto de los demás. Ofrece calidad y eficiencia.
Lic. Leticia Díaz Rincón Curso Habilidades Digitales para Docentes