Una inspección de Fagan es un proceso que intenta encontrar defectos en documentos (como el código fuente o especificaciones formales) durante varias fases del proceso de desarrollo de software . Lleva el nombre de Michael Fagan, a quien se le atribuye la invención de las inspecciones formales de software .
La inspección de Fagan define [ cita requerida ] un proceso como una determinada actividad con criterios de entrada y salida preespecificados . En cada proceso para el cual se especifican criterios de entrada y salida, las inspecciones de Fagan se pueden utilizar para validar si la salida del proceso cumple con los criterios de salida especificados para el proceso. La inspección de Fagan utiliza un método de revisión grupal para evaluar el resultado de un proceso determinado. [ cita necesaria ]
Ejemplos de actividades para las que se puede utilizar la inspección Fagan son:
El proceso de desarrollo de software es una aplicación típica de la inspección Fagan. Como los costos de remediar un defecto son entre 10 y 100 veces menores en las primeras operaciones en comparación con corregir un defecto en la fase de mantenimiento, [1] es esencial encontrar los defectos lo más cerca posible del punto de inserción. Esto se hace inspeccionando el resultado de cada operación y comparándolo con los requisitos de resultado, o criterios de salida , de esa operación.
Los criterios de ingreso son los criterios o requisitos que se deben cumplir para ingresar a un proceso específico. [2] Por ejemplo, para las inspecciones de Fagan, los documentos de alto y bajo nivel deben cumplir con criterios de entrada específicos antes de que puedan usarse para un proceso de inspección formal.
Los criterios de salida son los criterios o requisitos que se deben cumplir para completar un proceso específico. Por ejemplo, para las inspecciones de Fagan, el documento de bajo nivel debe cumplir con criterios de salida específicos (como se especifica en el documento de alto nivel) antes de que el proceso de desarrollo pueda pasar a la siguiente fase.
Los criterios de salida se especifican en un documento de alto nivel, que luego se utiliza como estándar con el que se compara el resultado de la operación (documento de bajo nivel) durante la inspección. Cualquier falla del documento de bajo nivel para satisfacer los requisitos de alto nivel especificados en el documento de alto nivel se denomina defectos [2] (y puede clasificarse además como defectos mayores o menores ). Los defectos menores no amenazan el correcto funcionamiento del software, pero pueden ser pequeños errores como errores ortográficos o una ubicación poco estética de los controles en una interfaz gráfica de usuario .
Una inspección típica de Fagan consta de las siguientes operaciones: [2]
En la fase de seguimiento de una inspección Fagan, se deben verificar los defectos solucionados en la fase de retrabajo. El moderador suele ser responsable de verificar el retrabajo. A veces se puede aceptar un trabajo arreglado sin ser verificado, como cuando el defecto era trivial. En casos no triviales, el equipo de inspección (no sólo el moderador) realiza una nueva inspección completa. En esta fase todos los participantes coinciden en que los defectos se abordan adecuadamente.
Si la verificación falla, regrese al proceso de reelaboración.
El proceso de inspección normalmente lo realizan miembros del mismo equipo que está implementando el proyecto. Los participantes cumplen diferentes roles dentro del proceso de inspección: [3] [4]
Al utilizar inspecciones, la cantidad de errores en el producto final puede disminuir significativamente, creando un producto de mayor calidad. En el futuro, el equipo incluso podrá evitar errores, ya que las sesiones de inspección les brindarán información sobre los errores cometidos con más frecuencia tanto en el diseño como en la codificación, lo que permitirá evitar errores en la raíz de su aparición. Al mejorar continuamente el proceso de inspección, estos conocimientos se pueden utilizar aún más. [2]
Junto con los beneficios cualitativos mencionados anteriormente, se pueden lograr importantes "mejoras de costos", ya que evitar y detectar errores reducirá la cantidad de recursos necesarios para la depuración en fases posteriores del proyecto.
En la práctica, grandes corporaciones como IBM han informado de resultados muy positivos, [ cita necesaria ] , lo que indica que se pueden encontrar entre el 80% y el 90% de los defectos y se pueden alcanzar ahorros de recursos de hasta el 25%. [2]
Aunque se ha demostrado que el método de inspección de Fagan es muy eficaz, varios investigadores han sugerido mejoras. M. Genuchten [5] por ejemplo ha estado investigando el uso de un sistema de reuniones electrónicas (EMS) para mejorar la productividad de las reuniones con resultados positivos [6].
Otros investigadores proponen el uso de software que mantiene una base de datos de errores detectados y escanea automáticamente el código del programa en busca de estos errores comunes. [7] Esto nuevamente debería resultar en una mejora de la productividad.
Ron Radice, Inspecciones de software de alta calidad y bajo costo, Paradoxicon Publishing (21 de septiembre de 2001)