El seguimiento de errores es el proceso de registro y monitorización de bugs o errores durante las pruebas de software. También se conoce como seguimiento de defectos o seguimiento de problemas.
Los grandes sistemas pueden tener cientos o miles de defectos. Cada uno de ellos debe ser evaluado, monitorizado y priorizado para su depuración. A veces, puede ser necesario hacer un seguimiento de los fallos durante un largo periodo de tiempo.
"El seguimiento de defectos es un proceso importante en la ingeniería de software, ya que los sistemas complejos y críticos para el negocio tienen cientos de defectos", dice Tutorials Point. "Uno de los factores desafiantes es la gestión, evaluación y priorización de estos defectos. El número de defectos se multiplica a lo largo de un periodo de tiempo y, para gestionarlos eficazmente, se utiliza un sistema de seguimiento de defectos que facilita el trabajo".1
Un error de software ocurre cuando una aplicación o programa no funciona de la manera en que debería funcionar. La mayoría de los errores son fallos o errores cometidos por arquitectos, diseñadores o desarrolladores de sistemas. Los equipos de pruebas utilizan el seguimiento de errores para monitorizar e informar sobre los errores que se producen a medida que se desarrolla y prueba una aplicación.
"Un componente importante de un sistema de seguimiento de errores es una base de datos que registra datos sobre errores conocidos", dice Wikipedia. "Los hechos pueden incluir la hora en que se notificó un fallo, su gravedad, el comportamiento erróneo del programa y detalles sobre cómo reproducir el fallo, así como la identidad de la persona que lo notificó y de los programadores que puedan estar solucionándolo." 2
Durante su vida útil, un solo defecto puede pasar por varias etapas o estados. Entre ellos se incluyen:
Los errores se gestionan en función de la prioridad y la gravedad. Los niveles de gravedad ayudan a identificar el impacto relativo de un problema en una versión del producto. Estas clasificaciones pueden variar en número, pero generalmente incluyen alguna de las siguientes:
Por lo general, los estados y los niveles de gravedad se monitorizan en una base de datos de seguimiento de errores. Una buena plataforma de seguimiento también se vincula a sistemas de desarrollo de software y gestión más grandes: mejor para evaluar el estado de los errores y el impacto potencial en la producción y los plazos generales.
Se estima que los desarrolladores de software cometen entre 100 y 150 errores por cada mil líneas de código.4 Según un informe realizado por el Consortium for IT Software Quality (CISQ): "Incluso si solo una pequeña fracción (digamos el 10 por ciento) de estos errores son graves, entonces una aplicación relativamente pequeña de 20 000 líneas de código tendrá aproximadamente 200 errores de codificación graves". 5
Las pruebas de software son esenciales para aislar y mitigar los errores. Un buen proceso de control de calidad puede descubrir cientos o incluso miles de defectos, y los equipos de pruebas necesitan gestionarlos todos. La integración del seguimiento de errores en el flujo de trabajo de pruebas mejora la eficiencia al ayudar a los evaluadores a priorizar, monitorizar e informar sobre el estado de cada error.
"El seguimiento de defectos ayuda a garantizar que los errores detectados en el sistema se solucionan", afirma Yvette Francino, consultora de Agile. "Las herramientas de seguimiento no solo permiten garantizar el mismo, sino que también proporcionan valiosas métricas. En función de la herramienta que se utilice, el equipo puede vincular los defectos al código modificado, las pruebas u otros datos que permitan la trazabilidad o el análisis de las tendencias de los defectos. Si un determinado módulo está plagado de defectos, puede que haya llegado el momento de revisarlo y reescribirlo". 6
Lo ideal es que las pruebas se realicen lo antes posible, cuando los errores son más fáciles y mucho menos costosos de corregir. Un estudio anterior de IBM descubrió que los defectos encontrados después de la producción o después del lanzamiento pueden costar 15 veces más corregirlos en comparación con los errores que se resuelven al principio del desarrollo.
Muchos equipos utilizan ahora una metodología conocida como pruebas continuas. En este caso, las pruebas de calidad y el feedback se realizan en todas las etapas de desarrollo, desde el diseño y la codificación hasta la implementación. Las tecnologías modernas, como la inteligencia artificial (IA), también pueden ayudar en el proceso de prueba al detectar y analizar errores en las primeras etapas del ciclo de vida.
El control de calidad es crítico a la hora de desarrollar aplicaciones sólidas. Las herramientas de gestión del cambio y seguimiento de errores de las pruebas de software permiten a los equipos descubrir defectos, medir su alcance e impacto y resolverlos.
En Harvard Business Review, Nicholas Bowen describe un proceso para gestionar los defectos. El primer paso es clasificar y priorizar: "Por lo general, los equipos dan prioridad a dos tipos de errores: los que provocan la caída del sistema y los que son menos graves pero que pueden ser generalizados... A continuación, decide el tiempo de respuesta objetivo para cada nivel de gravedad. Si el sistema de gestión de calidad es nuevo, entonces la atención inicial debe centrarse en corregir los errores más graves en cuestión de horas o días. A medida que utiliza su sistema, puede recopilar datos sobre dos métricas clave: las tasas de errores entrantes y la productividad de los solucionadores de errores, y ajustar sus objetivos según sea necesario”. También afirma que las organizaciones deben crear un sistema en el que se puedan revisar los defectos y el tiempo necesario para resolverlos a todos los niveles, desde el CEO hasta los empleados.7
Un buen sistema de seguimiento de errores puede ayudar en este proceso al proporcionar un flujo de trabajo único para la monitorización de defectos, la elaboración de informes y la trazabilidad del ciclo de vida. Además, debe vincularse con otros sistemas de gestión para compartir la visibilidad y el feedback, tanto dentro del desarrollo de software como en la organización en general. IBM Rational ClearQuest, por ejemplo, proporciona una plataforma centralizada para el seguimiento de errores e informes. Se integra con otros sistemas de desarrollo y gestión del cambio de IBM, y ayuda a mejorar la comunicación y la colaboración entre desarrolladores, operaciones y equipos más amplios.
Además, busque sistemas de prueba y seguimiento que utilicen IA para detectar errores en las primeras etapas del proceso de desarrollo. Puede optimizar la cantidad y los tipos de pruebas que realizan los equipos, automatizar el proceso de pruebas y utilizar la IA para analizar los defectos del pasado y prevenirlos en el futuro.
Automatice la entrega de software para cualquier aplicación en entornos locales, en la nube o en el mainframe.
Utilice el software y las herramientas de DevOps para crear, implementar y gestionar aplicaciones nativas de la nube en varios dispositivos y entornos.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.
1 https://www.tutorialspoint.com/software_testing_dictionary/defect_logging_and_tracking.htm
2 https://en.wikipedia.org/wiki/Bug_tracking_system
3 https://www.tutorialspoint.com/software_testing_dictionary/defect_life_cycle.htm
4 https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
5 https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2018-report/The-Cost-of-Poor-Quality-Software-in-the-US-2018-Report.pdf
6 https://techbeacon.com/app-dev-testing/pros-cons-defect-tracking
7 https://hbr.org/2019/09/why-fixing-software-bugs-should-be-the-ceos-problem