El seguimiento de errores es el proceso de registro y monitoreo de errores durante las pruebas de software. También se conoce como seguimiento de defectos o seguimiento de problemas.
Los sistemas grandes podrían tener cientos o miles de defectos. Cada uno debe evaluarse, monitorearse y priorizarse para su depuración. A veces, es posible que sea necesario realizar un seguimiento de los errores durante un largo período.
"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", afirma Tutorials Point. “Uno de los factores desafiantes es gestionar, evaluar y priorizar estos defectos. El número de defectos se multiplica a lo largo del tiempo y, para gestionarlos de manera eficaz, se utiliza un sistema de seguimiento de defectos para facilitar el trabajo1
Un error de software ocurre cuando una aplicación o programa no funciona como debería. La mayoría de los errores son fallas o errores cometidos por arquitectos, diseñadores o desarrolladores de sistemas. Los equipos de pruebas utilizan el seguimiento de errores para monitorear e informar sobre los errores que ocurren 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 el momento en que se reportó un error, su gravedad, el comportamiento erróneo del programa y detalles sobre cómo reproducir el error; así como la identidad de la persona que lo reportó y cualquier programador que pueda estar reparándolo”. 2
A lo largo de su vida, un mismo defecto puede pasar por varias etapas o estados. Por ejemplo:
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 la versión de un producto. Estas clasificaciones pueden variar en número, pero generalmente incluyen alguna forma de lo siguiente:
Por lo general, los estados y los niveles de gravedad se monitorean en una base de datos de seguimiento de errores. Una buena plataforma de seguimiento también se ata a sistemas de desarrollo y administración de software más grandes: el mejor para evaluar el estado de error 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 De acuerdo con un informe del Consortium for IT Software Quality (CISQ): "Incluso si solo una pequeña fracción (digamos el 10 %) de estos errores son graves, una aplicación relativamente pequeña de 20 000 líneas de código tendrá aproximadamente 200 errores graves de programación". 5
Las pruebas de software son esenciales para aislar y mitigar errores. Un buen proceso de control de calidad puede descubrir cientos o incluso miles de defectos, y los equipos de pruebas tienen que gestionarlos todos. Integrar el seguimiento de errores en el flujo de trabajo de las pruebas mejora la eficacia al ayudar a los probadores a priorizar, supervisar 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 realizar las pruebas lo más pronto posible, ya que los errores son más fáciles y mucho menos costosos de arreglar en esta etapa. Un estudio anterior de IBM reveló que los defectos detectados después de la producción o el lanzamiento pueden costar 15 veces más que los errores resueltos en las primeras fases del desarrollo.
Muchos equipos utilizan ahora una metodología conocida como pruebas continuas. En este caso, se realizan pruebas de calidad y feedback en todas las etapas del desarrollo, desde el diseño y la programación hasta el despliegue. Las tecnologías modernas como la inteligencia artificial (IA) también pueden ayudar en el proceso de prueba al detectar y analizar errores al principio del ciclo de vida.
El control de calidad es crítico para desarrollar aplicaciones sólidas. Las herramientas de gestión de cambios y seguimiento de errores de 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: “Generalmente, los equipos priorizarán dos tipos de errores: los que hacen que un sistema se bloquee y los que son menos severos pero podrían ser omnipresentes... A continuación, decide su 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”. Él dice que las organizaciones también necesitan crear un sistema donde los defectos y el tiempo que se requiere para resolverlos puedan revisarse en todos los niveles, desde el director ejecutivo (CEO) hacia abajo.7
Un buen sistema de seguimiento de errores puede ayudar en este proceso proporcionando un flujo de trabajo único para el seguimiento de defectos, la generación de informes y la trazabilidad del ciclo de vida. Debería vincularse aún más con otros sistemas de gestión para compartir visibilidad y retroalimentación 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 y la generación de informes de errores. Se integra con otros sistemas de desarrollo y administración de cambios de IBM, y ayuda a mejorar la comunicación y colaboración entre desarrolladores, operaciones y equipos más amplios.
Además, busque sistemas de prueba y seguimiento que utilicen IA para detectar errores al principio del proceso de desarrollo. Puede optimizar la cantidad y los tipos de pruebas que ejecutan los equipos, automatizar el proceso de prueba y utilizar la IA para analizar defectos pasados y prevenirlos en el futuro.
Automatice la entrega de software para cualquier aplicación on premises, en la nube o en el mainframe.
Utilice el software y las herramientas de DevOps para crear, desplegar y gestionar aplicaciones nativas de la nube en múltiples dispositivos y entornos.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de IBM de asesoramiento sobre la nube. Descubra cómo crear conjuntamente soluciones, acelerar la transformación digital y optimizar el rendimiento a través de estrategias de nube híbrida y asociaciones de 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