La inspección en ingeniería de software se refiere a la revisión por pares de cualquier producto de trabajo por parte de personas capacitadas que buscan defectos mediante un proceso bien definido. Una inspección también puede denominarse inspección Fagan en honor a Michael Fagan, el creador de un proceso de inspección de software muy popular.
Una inspección es uno de los tipos de prácticas de revisión más comunes que se encuentran en los proyectos de software. El objetivo de la inspección es identificar defectos. Los productos de trabajo que se inspeccionan comúnmente incluyen especificaciones de requisitos de software y planes de prueba . En una inspección, se selecciona un producto de trabajo para su revisión y se reúne un equipo para una reunión de inspección para revisar el producto de trabajo. Se elige un moderador para moderar la reunión. Cada inspector se prepara para la reunión leyendo el producto de trabajo y anotando cada defecto. En una inspección, un defecto es cualquier parte del producto de trabajo que impida que un inspector lo apruebe. Por ejemplo, si el equipo está inspeccionando una especificación de requisitos de software, cada defecto será un texto en el documento con el que un inspector no esté de acuerdo.
El proceso de inspección se desarrolló [1] a mediados de la década de 1970 y posteriormente se ha ampliado y modificado.
El proceso debe tener criterios de entrada que determinen si el proceso de inspección está listo para comenzar. Esto evita que productos de trabajo no terminados ingresen al proceso de inspección. Los criterios de entrada pueden ser una lista de verificación que incluya elementos como "Se ha revisado la ortografía del documento".
Las etapas del proceso de inspección son: planificación, reunión de revisión, preparación, reunión de inspección, revisión y seguimiento. Las etapas de preparación, reunión de inspección y revisión pueden repetirse.
El moderador finaliza el proceso cuando se cumplen unos criterios de salida predefinidos. El término inspección se refiere a uno de los elementos más importantes de todo el proceso que rodea la ejecución y finalización exitosa de un proyecto de ingeniería de software.
Durante una inspección se utilizan los siguientes roles:
Una revisión de código puede realizarse como un tipo especial de inspección en la que el equipo examina una muestra de código y corrige cualquier defecto que pueda tener. En una revisión de código, un defecto es un bloque de código que no implementa correctamente sus requisitos, que no funciona como pretendía el programador o que no es incorrecto pero podría mejorarse (por ejemplo, podría hacerse más legible o podría mejorarse su rendimiento). Además de ayudar a los equipos a encontrar y corregir errores, las revisiones de código son útiles tanto para capacitar a los programadores en el código que se está revisando como para ayudar a los desarrolladores junior a aprender nuevas técnicas de programación.
Las revisiones por pares se consideran una práctica recomendada de la industria para detectar defectos de software de manera temprana y aprender sobre artefactos de software. Las revisiones por pares se componen de recorridos e inspecciones de software y son parte integral de las actividades de ingeniería de productos de software. Una colección de conocimientos, habilidades y comportamientos coordinados facilita la mejor práctica posible de las revisiones por pares. Los elementos de las revisiones por pares incluyen el proceso de revisión estructurado, las listas de verificación de productos con estándares de excelencia, los roles definidos de los participantes y los formularios e informes.
Las inspecciones de software son la forma más rigurosa de revisión por pares y utilizan plenamente estos elementos para detectar defectos. Los recorridos por software se basan selectivamente en los elementos para ayudar al productor a obtener el conocimiento más profundo de un artefacto y alcanzar un consenso entre los participantes. Los resultados medidos revelan que las revisiones por pares producen un atractivo retorno de la inversión obtenido a través del aprendizaje acelerado y la detección temprana de defectos. Para obtener los mejores resultados, las revisiones por pares se implementan dentro de una organización a través de un programa definido de preparación de una política y un procedimiento, capacitación de profesionales y gerentes, definición de mediciones y llenado de una estructura de base de datos, y mantenimiento de la infraestructura de implementación.