Una inspección de Fagan es un proceso que consiste en intentar encontrar defectos en documentos (como el código fuente o las especificaciones formales) durante las distintas fases del proceso de desarrollo de software . Recibe su nombre en honor a 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 preestablecidos . En cada proceso para el que se especifican criterios de entrada y salida, se pueden utilizar las inspecciones de Fagan para validar si el resultado 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 requerida ]
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 de Fagan. Como los costos de remediar un defecto son hasta 10 a 100 veces menores en las operaciones iniciales en comparación con la reparación de un defecto en la fase de mantenimiento, [1] es esencial encontrar 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 entrada 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 nivel alto y bajo 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 Fagan, el documento de nivel inferior debe cumplir con criterios de salida específicos (como se especifica en el documento de nivel superior) 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 se pueden clasificar además como defectos mayores o menores ). Los defectos menores no amenazan el correcto funcionamiento del software, pero pueden ser pequeños errores como faltas de ortografía o una ubicación poco estética de los controles en una interfaz gráfica de usuario .
Una inspección Fagan típica consta de las siguientes operaciones: [2]
En la fase de seguimiento de una inspección Fagan, se deben verificar los defectos corregidos en la fase de retrabajo. El moderador suele ser responsable de verificar el retrabajo. A veces, el trabajo corregido puede aceptarse sin verificarse, como cuando el defecto era trivial. En casos no triviales, el equipo de inspección realiza una nueva inspección completa (no solo el moderador). En esta fase, todos los participantes están de acuerdo en que los defectos se abordaron adecuadamente.
Si la verificación falla, vuelva al proceso de reelaboración.
El proceso de inspección normalmente lo llevan a cabo miembros del mismo equipo que está implementando el proyecto. Los participantes cumplen diferentes roles dentro del proceso de inspección: [3] [4]
Mediante el uso de 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 más frecuentes, tanto en el diseño como en la codificación, lo que les permitirá evitar errores en la raíz de su ocurrencia. 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 la prevención y detección temprana de 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 reportado resultados muy positivos, [ cita requerida ] indicando 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 mantenga una base de datos de errores detectados y escanee 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)