Calidad y Pruebas de Software: Conceptos Clave y Mejores Prácticas

Clasificado en Diseño e Ingeniería

Escrito el en español con un tamaño de 4,4 KB

Calidad de Software

Definiciones de Calidad

  • Larousse: Conjunto de cualidades superiores o excelentes en una cosa.
  • RAE: Propiedad inherente que permite apreciarla como mejor o peor en su aspecto intrínseco.
  • IEEE: Grado en el que el software cumple con una combinación de atributos deseados.

Otra forma de entender la calidad es hacer bien las cosas a la primera. Esto impacta directamente en los costos del ciclo de vida del software. El reworking (rehacer) no se considera en el presupuesto inicial, por lo que el costo de un producto de software se calcula como: costo de desarrollo + reworking.

Importancia de la Calidad

Tomar acciones preventivas, en lugar de correctivas, implica que la calidad no se evalúa al final, sino que se construye durante todo el proceso. Esto requiere:

  • Anticipar actividades preventivas.
  • Mejorar continuamente los procesos.
  • Satisfacer los requerimientos de los clientes.
  • Lograr rentabilidad para la empresa.
  • Tener claridad en las necesidades y expectativas.

Ciclo PDCA

El ciclo PDCA (Planificar, Hacer, Verificar, Actuar) es una metodología de mejora continua que se compone de las siguientes etapas:

  • Planear: Establecer planes.
  • Hacer: Llevar a cabo los planes.
  • Verificar: Controlar lo planeado.
  • Actuar: Corregir problemas y estandarizar soluciones.

Este ciclo se basa en la premisa de que "solo se controla lo que se mide" y "se mejora lo que se controla". Por lo tanto:

  • Planear implica definir métricas.
  • Hacer implica medir.
  • Verificar implica analizar.
  • Actuar implica corregir.

Proceso, Personas y Tecnología

Un proceso se define como un conjunto de prácticas desarrolladas para un propósito específico, que incluye herramientas, métodos y personas. El proceso es el "pegamento" que une los tres pilares del desarrollo de software: proceso, personas y tecnología.

Una visión constructiva del proceso implica que la fuerza de trabajo es capacitable y que se debe trabajar inteligentemente para lograr un proceso de respuesta eficiente.

La oposición al enfoque exclusivo en la tecnología se basa en que la tecnología sin un roadmap (hoja de ruta) no genera retornos, mientras que con un roadmap sí lo hace.

Mejoramiento y Gestión de Procesos

El mejoramiento de procesos es un esfuerzo estratégico a largo plazo. La premisa fundamental es que la calidad del producto está determinada por la calidad del proceso.

La gestión de procesos se enfoca en reducir la brecha entre el estado actual de la práctica y el estado del arte.

Pruebas de Software

Errores, Defectos y Fallas

  • Error: Sinónimo de equivocación. En código, se denominan bugs. Los errores se propagan.
  • Defecto: Resultado de un error; es su representación. Existen dos tipos:
    • Omisión: Equivocación al ingresar datos.
    • Comisión: Elemento incorrecto.
  • Falla: Defecto que se manifiesta cuando es ejecutado. Las fallas se relacionan con la comisión y la omisión, pero las omisiones no siempre se detectan.
  • Incidente: Falla no visible; síntoma asociado con una falla que alerta al usuario.

Pruebas y Casos de Prueba

Prueba: Ejercitar el software. Un caso de prueba tiene el objetivo de producir una falla.

Caso de prueba: Conjunto de entradas con una lista de salidas esperadas.

Las pruebas representan aproximadamente el 50% del tiempo de desarrollo y entre el 30% y el 40% del costo total. Por lo tanto, es crucial que las pruebas sean fuertemente estudiadas y ejecutadas. El objetivo central es detectar problemas en el software.

Verificación y Validación

  • Verificación: Contrastar lo que se dijo con lo que se hizo. Asegurar que las actividades se realicen de manera consistente. Se aplica a productos intermedios.
  • Validación: Verificar si el resultado final cumple con los requerimientos. Se realiza en productos finales.

Entradas relacionadas: