Fundamentos de las pruebas de Software
RESUMEN
La calidad en sentido general, tanto de software como de otros tipos de productos, es un elemento que cada día se tiene más en cuenta a nivel mundial y su logro se relaciona directamente con el proceso que se emplee para obtenerla. Este trabajo presenta una propuesta de proceso de pruebas de software, para un Laboratorio de Calidad, inmerso en un ambiente universitario. Se detallan las actividades de los procesos fundamentales y los artefactos de salida, los niveles de prueba que se aplican y otros elementos de interés. Además se muestra una experiencia práctica de aplicación del proceso y los resultados de varios casos de estudio. Esta propuesta incluye la definición de los aspectos metodológicos y la selección de herramientas que automaticen el proceso.
Los temas de calidad de software y en particular lo referente al proceso de pruebas son abordados en las investigaciones y los trabajos de múltiples autores en la actualidad [1; 2; 3; 4]. La producción de software cada vez más complejo y con integración de tecnologías varias exige la definición de procesos que garanticen la calidad del producto final [5; 6]. El escenario de la producción de software en las universidades se torna aún más complejo, pues los estudiantes asumen un papel protagónico en la actividad de desarrollo. Esta fuerza de trabajo es muy inestable porque está inmersa en el proceso de formación, por tanto se hace necesario concebir procesos para garantizar la calidad del producto final.
El presente trabajo se realiza en uno de los centros de investigación y desarrollo del Instituto Superior Politécnico "José Antonio Echeverría", en el cual se ha definido un proceso para desarrollar software y un conjunto de herramientas que le dan soporte. A pesar de los esfuerzos realizados en la institución, los productos no tienen la calidad requerida y en ocasiones no son certificados como listos para su explotación por las entidades certificadoras externas. La inexistencia de un proceso específicamente definido para realizar pruebas de software trae como consecuencia que esta actividad no se realice o se lleve a cabo inadecuadamente. Además, impide la uniformidad en cuanto a los aspectos de la calidad medidos en soluciones semejantes de proyectos diferentes y dificulta el procesamiento de la información que se obtiene.
La calidad del software debe tenerse en cuenta durante todo el proceso de producción del mismo, por tanto deben existir actividades que velen por su cumplimiento durante todo el ciclo de vida. Es una mala práctica esperar a que el software esté terminado para entonces aspirar a obtener la calidad en el mismo. Uno de los principios de Humphrey (2005 y 2008), dicta que "la calidad de un producto está determinada por la calidad del proceso que se emplea para producirlo"
MÉTODOS
Proceso de Pruebas para el laboratorio en el entorno universitario
Los niveles de prueba que conforman la propuesta se han determinado tomando como base los propuestos en la bibliografía consultada [17; 19]. Además se han tenido en cuenta las características propias del entorno en que se enmarca la solución como por ejemplo el estado en que se encuentran los proyectos de investigación y desarrollo, los que en su mayoría ya han superado las etapas iniciales, algunos incluso están obteniendo sus soluciones finales por lo cual la realización de pruebas desde fases tempranas no es posible. Es necesario entonces definir un proceso flexible que permite adaptarse a esta situación y por supuesto que contemple los aspectos de las fases iniciales.
Nivel 1: Prueba inicial. Este nivel se ejecuta en el marco del proyecto por parte del equipo de desarrollo y debe estar enfocado a los subsistemas independientes de la solución. En el mismo se deben realizar pruebas encaminadas a comprobar cada uno de los caminos posibles buscando errores en la definición de límites para los diferentes ciclos, en la ejecución correcta de decisiones lógicas, etc.
Nivel 2: Prueba de Sistema. Esta es una fusión del segundo y tercer nivel que propone la bibliografía consultada, y que por las características del entorno se ha decido unir en esta propuesta. En este nivel se realizan las pruebas funcionales de la solución y se comprueba la correcta integración de los diferentes subsistemas. La técnica a emplear en este caso para el diseño de los CP será la de Caja Negra.
Nivel 3: Prueba de Aceptación. En este nivel las pruebas se llevan a cabo conjuntamente con los funcionales o clientes de la solución que se construye. Debido a la diversidad de temáticas en los diferentes desarrollos de la organización la especialización en alguna de ellas, de los integrantes del equipo de pruebas resulta muy complicada. Es por eso que en este nivel se propone la inclusión de los clientes o funcionales. El entorno en que se desarrollan las pruebas sigue estando enmarcado en el laboratorio propio de la organización por lo cual estas comprobaciones constituyen lo que se denomina en la bibliografía como prueba Alfa.
Nivel 4: Prueba de Explotación. Este nivel propone la realización de pruebas de explotación de la solución, en su entorno real de despliegue. El objetivo fundamental que se persigue es la comprobación de que el comportamiento de la solución es el indicado en las condiciones reales en que va a ser utilizada. Una vez más, en este nivel la técnica a emplear para el diseño de los CP es la de Caja Negra y la ejecución de los mismos corre a cargo de los integrantes del equipo de pruebas, asumiendo los diferentes roles definidos.
Flujo de Trabajo
La definición de esta propuesta está orientada a procesos ya que la obtención de resultados en cada uno de los proyectos, constituye uno de los objetivos fundamentales y prioritarios dentro de la organización. La base del proceso definido ha sido la disciplina de pruebas que propone RUP (Rational Unified Process), eliminando algunas actividades y artefactos que no eran de interés para la organización ni el equipo de calidad.
Comentarios
Publicar un comentario