jueves, 7 de julio de 2011

Gestión de la calidad y pruebas del Software Libre

La bibliografía relacionada con la gestión de la calidad de software es muy amplia, sin embargo para entender los conceptos más comunes basta con revisar el artículo de Wikipedia relacionado con el tema [1]. Este artículo explica que las pruebas se pueden agrupar según el nivel de la prueba (unitarias, de integración, de regresión, de aceptación, pruebas alpha, pruebas beta), según los métodos utilizados (caja blanca, caja negra, caja gris) y además describe las siempre olvidadas pruebas no funcionales (rendimiento, estabilidad, usabilidad, seguridad). Por otra parte existen diferentes modelos que le permiten a los ingenieros asegurar la calidad a lo largo de todo el proceso de desarrollo del software, los modelos de calidad más mencionados son: CMMI y las Normas ISO.

Ahora bien, si por lo general es una tarea difícil gestionar la calidad de los proyectos de desarrollo de software, incluso cuando muchos aspectos de estos proyectos están controlados. ¿Cómo se gestiona la calidad en los proyectos de software libre?

Con muchas miradas, todos los errores saltarán a la vista
Normalmente, en los proyectos de software privativo la cantidad de desarrolladores es fija y estos trabajan una cantidad de horas preestablecidas para el proyecto (ejem. 8 horas al día). En contraste, en los proyectos de software libre la cantidad de desarrolladores es variable (puede aumentar o disminuir) y además estos no trabajan en un horario fijo. Entonces, ¿Realmente se toma en cuenta la calidad en los proyectos de software libre? La respuesta es un SI contundente.

Raymond explica muy bien este fenómeno en su ensayo "la catedral y el bazar" afirmando que "dada una base suficiente de desarrolladores asistentes y beta-testers, casi cualquier problema puede ser caracterizado rápidamente, y su solución ser obvia al menos para alguien"[2], esta forma de trabajo en conjunto sumada con la regla de "liberar rápido y a menudo" conforman el pilar fundamental de la calidad de los proyectos de software libre.

Sin embargo, la calidad del software no se debe directamente a que el software sea libre o privativo. De hecho Challet y Le Du explican que, si se tiene el mismo número de programadores, de la misma calidad, es de esperar que el tiempo para corregir las fallas sea el mismo, sin importar si es de código abierto o cerrado [3]. Lo que realmente marca la diferencia es la interacción que existe entre los usuarios y los desarrolladores en los proyectos de software libre. Este fenómeno estimula a los usuarios a reportar errores con más frecuencia, a la vez que impulsa a los desarrolladores a que hagan correcciones y entregas rápidas. Como resultado los programas libres son depurados de errores con mayor rapidez, lo que a la larga genera programas de mayor calidad.

Referencias
[1] Wikipedia. (2011). Software testing. http://en.wikipedia.org/wiki/Software_testing
[2] Raymond, Eric S. (1997). La Catedral y el Bazar. http://biblioweb.sindominio.net/telematica/catedral.html
[3] Nature. (2003). Openness makes software better sooner. http://www.nature.com/news/1998/030623/full/news030623-6.html

No hay comentarios:

Publicar un comentario