Trazabilidad, pr谩ctica clave para reducir costes y defectos en el desarrollo de software

14 marzo, 2018

la trazabilidad para el desarrollo del software

Testing de Software

En la actualidad, nadie se extra帽a de encontrar en el envase de cualquier alimento datos con la informaci贸n sobre el...




    En la actualidad, nadie se extra帽a de encontrar en el envase de cualquier alimento datos con la informaci贸n sobre el lote o la fecha de su envasado. Hace ya muchos a帽os que la trazabilidad alimentaria es una exigencia legal. En el caso del desarrollo de software, la trazabilidad es una buena pr谩ctica que sirve exactamente para lo mismo: disponer de la posibilidad de seguir el rastro a cualquier componente a trav茅s de cualquier etapa de su ciclo de vida.

    Pero, 驴qu茅 entendemos por componente y a qu茅 nivel queremos trazarlo? Empezando desde el nivel m谩s alto de abstracci贸n hasta el artefacto m谩s indivisible, la trazabilidad es deseable desde la fase de definici贸n de los requisitos de negocio hasta cualquier objeto software que vaya a terminar en un entorno productivo. Adquiriendo este tipo de trazabilidad obtendremos, entre otros beneficios, la posibilidad de:

    • Conocer el grado de impacto de una modificaci贸n: qu茅 artefactos existen en la cadena de dependencias.
    • Delimitar el alcance de cualquier prueba de regresi贸n que haya que efectuar tras el cambio.
    • Saber, sin lugar a dudas, qu茅 versiones de cada fuente terminan en qu茅 versi贸n de cada artefacto, y qu茅 requisitos se satisfacen con la versi贸n del aplicativo en la que se incluyen.

    Esta informaci贸n se convierte en s铆 misma en un resorte inestimable para la reducci贸n de defectos y por lo tanto, de costes, ya que:

    • Al conocer el impacto de las modificaciones se mitiga la posibilidad de generar defectos por cambios no previstos.
    • Poner mayor foco en las pruebas de los componentes modificados disminuye el esfuerzo, a la vez que garantiza el resultado.

    驴Cu谩nta trazabilidad es deseable?

    La respuesta a esa pregunta no es categ贸rica: es deseable un nivel de trazabilidad que genere una cantidad de informaci贸n de traceo explotable y 煤til, que no ponga trabas al proceso de desarrollo y que no retuerza herramientas, us谩ndolas para lo que no est谩n concebidas.

    En este punto surgen distintos extremos de trazabilidad:

    • Trazabilidad cero: a煤n hoy en d铆a existen organizaciones en las que la acci贸n de pasar una versi贸n a producci贸n presenta un componente importante de aventura. En estos casos, se deja el proceso en manos del gur煤 del aplicativo. 脡l sabe exactamente los pasos que hay que dar y las versiones que hay que amalgamar para que el producto funcione en el entorno productivo. Esta t茅cnica se conoce frecuentemente como la del Samur谩i.
    • Trazabilidad m谩xima: son los casos en los que resulta frecuente encontrar dentro del c贸digo fuente comentarios que hacen referencia a un ticket de Redmine, la fecha y la hora de la modificaci贸n, adem谩s, por supuesto, del responsable del cambio.

    Ninguno de los extremos es deseable. En el primer caso, se corre el riesgo claro de encontrar problemas de integraci贸n entre componentes en producci贸n. En el segundo, aunque es informaci贸n 煤til, al trasladarla al c贸digo fuente, este queda menos legible y menos mantenible. Es decir, puede ser interesante disponer de esta informaci贸n pero, desde luego, el c贸digo fuente no es el mejor lugar para verterla.

    En estos momentos existen en el mercado herramientas que nos ofrecen la posibilidad de implantar un sistema de trazabilidad, pero a la hora de ponerlo en marcha hay que considerar que se hace necesario introducir un cambio filos贸fico en la organizaci贸n. Es decir, cada actor que participe en cualquier fase del ciclo de vida del software tendr谩 que tener en cuenta la trazabilidad, de igual manera que tiene en cuenta la calidad en su d铆a a d铆a.

    As铆, desde que se crea un requisito de negocio, hasta que se descompone en requisitos funcionales y caracter铆sticas software que finalmente quedan implementadas en c贸digo, el responsable de cada uno de los componentes ha de proveer la informaci贸n necesaria para su trazabilidad.

    Herramienta, procedimientos y filosof铆a: implantar un sistema de trazabilidad presenta, indudablemente, un importante coste asociado, que se amortizar谩 r谩pidamente en forma de menor esfuerzo en release management, menor n煤mero de defectos y mejor conocimiento del cat谩logo de software. Como afirmaba Edward Young: 鈥渟ed sabios ahora: cualquier aplazamiento es una locura.鈥

    Por Francisco M. Lozano Sanju谩n
    Consultor Senior Calidad de C贸digo

    Ver m谩s historias