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
Lea cómo el escritorio como servicio (DaaS) permite a las empresas lograr el mismo nivel de rendimiento y seguridad que la implementación de las aplicaciones en las instalaciones.
Regístrese para recibir la guía sobre la nube híbrida
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 encuentran:
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. Dependiendo 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 los comentarios 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 fundamental para desarrollar aplicaciones sólidas. Las herramientas de gestión de cambios 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”. Dice que las organizaciones también necesitan crear un sistema en el que los defectos y el tiempo necesario para resolverlos puedan revisarse en todos los niveles, desde el director general hasta el final.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 los comentarios, 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 de cambios 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.
Software de gestión de cambios que ayuda a mejorar la productividad de los desarrolladores a la vez que da cabida a las metodologías, procesos y herramientas que mejor se adaptan al proyecto y al equipo.
Consiga que los resultados de las pruebas lleguen antes a desarrollo. Reduzca el riesgo y el coste corrigiendo los defectos antes.
Obtenga conocimientos completos de las herramientas populares de integración continua y entrega continua para aumentar la velocidad, la calidad y el control de sus aplicaciones.
La ingeniería de plataformas es lo que sigue en DevOps. Acelere el tiempo de comercialización (TTM) con la experiencia de los desarrolladores.
Conozca los tipos, los beneficios y la evolución de las pruebas de software.
IBM Developer proporciona las herramientas para ayudar a los desarrolladores a crear y mantener componentes de software.
Descubra cómo las pruebas continuas integradas aceleran el desarrollo de aplicaciones.
Todos los vínculos residen fuera de ibm.com
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