En el área de Ingeniería de Software, metodología (Pressman, 2005) se refiere a un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo de sistemas computacionales. Regularme se conoce como Marco metodológico de trabajo.
Contenido
Metodologías tradicionales
Uno de los modelos tradicionales utilizados para el control de calidad es el propuesto por el RUP (Rational Unified Process) el cual propone cuando menos las siguientes fases:
1. Planeación de pruebas.
2. Diseño de pruebas.
3. Implementación de pruebas.
4. Evaluación de criterios de salida.
5. Cierre del proceso.
Los modelo tradicionales dividen a un proyecto en fases diseñadas para cumplir con cierta funcionalidad del software.
Las fases de un proyecto en una metodología tradicional también pueden definir diversos niveles de abstracción, en el caso de control de calidad se traduce en los diferentes tipos de prueba de acuerdo a la profundidad o enfoque que se le quiera dar. Un ejemplo de lo anterior es el modelo V.
Metodologías ágiles
Scrum
El marco de referencia de Scrum describe un conjunto de prácticas para la gestión de proyectos que afecta los procesos involucrados y reemplaza el enfoque tradicional de planificación. Su objetivo principal es que un equipo de trabajo reaccione con rapidez, sencillez y de manera apropiada en lugar de perder tiempo en la creación y actualización de planes de trabajo obsoletos. (Linz, 2014)
Conceptos principales de SCRUM:
Sprints o iteraciones:
Son unidades de trabajo que se requieren para alcanzar un requisito definido en la cartera de pedidos que debe caber en una caja de tiempo predefinida (normalmente 30 días). No se introducen cambios durante el sprint. Por lo tanto, el sprint permite a los miembros del equipo a trabajar en un ambiente a corto plazo, pero estable.
Reuniones de Scrum:
Son reuniones cortas (normalmente 15 minutos) diariamente por el equipo de Scrum. Buscan tener claridad de lo que se hizo después de la última reunión, los obstáculos que se presentan y lo que se espera para la siguiente reunión.
Demos:
Consiste en liberar los incrementos del software al cliente para que la funcionalidad que se ha implementado puede ser demostrada y evaluada por el mismo. Es importante tener en cuenta que la demo no contiene toda la funcionalidad del sistema, sino más bien sólo las funciones que pueden ser entregadas dentro del plan que se estableció.
Aun cuando esta metodología les da mayor prioridad a las actividades de desarrollo y construcción del software no descuidan el control de calidad.
La conjugación de los elementos que intervienen en la metodología Scrum los apreciamos en la figura siguiente.
XP
Es una metodología basada en una serie de valores y buenas prácticas que tienen como objetivo aumentar la productividad en las actividades de la ingeniería de software.
Para lograr su simplicidad y rapidez, XP restringe a los integrantes del equipo de trabajo a sólo trabajar en las necesidades inmediatas, en lugar de considerar las necesidades futuras. El objetivo es crear un sistema simple que pueda ser fácilmente implementado, para después irlo mejorando de acuerdo a las necesidades que se vayan requiriendo mediante iteraciones o incrementos. Los usuarios trabajan en conjunto con los desarrolladores en cada iteración.
Durante las pruebas se busca resolver la mayor cantidad de problemas pequeños antes de que se conviertan en problemas más grandes y afecten la fecha de entrega, además se pueden levantar banderas de advertencia si se detecta que algo está saliendo mal.
Modelos de mejora de procesos de pruebas.
Modelo TPI Next
En ingles Test Process Improvement Next, es un marco de referencia orientado para la mejora continua de los procesos de pruebas dentro de una empresa, permitiendo definir pasos de mejora controlables y graduales. (Bath & van Veenendaal, 2014)
Permite la obtención de la madurez del proceso de pruebas y puede ofrecer varias recomendaciones que permiten alcanzar el nivel de madurez adecuado para la empresa.
El modelo tiene 4 niveles de madurez:
- Inicial: No hay procesos.
- Controlada: Se hacen las actividades adecuadas del proceso de prueba.
- Eficiente: Se hacen el proceso de prueba de forma eficiente.
- Optimización: Adaptación continua a las circunstancias que van cambiando.
TMMi
En inglés Test Maturity Model Integration, es un marco de referencia la mejora de procesos de prueba relacionado con el CMMI (Capability Maturity Model Integration).
El modelo tiene 5 niveles de madurez:
1. Inicial: El proceso de prueba es caótico, no hay procedimientos de pruebas definidos. Las pruebas se realizan de una manera artesanal regularmente por los mismos desarrolladores, no existe un ambiente de pruebas, su objetivo es mostrar que el software funciona sin tantos problemas.
2. Gestionado: El proceso de pruebas es administrado de manera básica y las prácticas existentes se conservan en situaciones de crisis, existe un ambiente dedicado para pruebas.
3. Definido: Pruebas controladas en el ciclo de vida con hitos. Existe un área dedicada para las pruebas, con protocolos de entrenamiento, se ejecutan pruebas no funcionales y los entregables son sujetos a revisión entre pares.
4. Medido: Las pruebas son un proceso bien definido, fundamentado y medible. Las revisiones e inspecciones son consideradas como parte del proceso de prueba.
5. Optimizado: Se tiene la capacidad de mejorar continuamente los procesos de prueba basados en una compresión cualitativa de los mismos. Actividades orientadas a la prevención de la aparición de defectos.
Modelo STEP
En inglés Systematic Test and evaluation Process, es una metodología de pruebas estructurada, también usada como modelo basado en contenido para mejoras en el proceso de pruebas las cuales no se requieren que aparezcan en un orden especifico como sucede en TPI y TMMI. (Bath & van Veenendaal, 2014). Este modelo hace énfasis en la detección de los defectos desde fases tempranas del ciclo de vida y la prevención de los mismos mediante análisis sistemáticos de los mismos.
Describe 4 roles:
- Líder de pruebas.
- Analista de pruebas.
- Probador (Tester)
- Revisor
CTP
En inglés Critical Testing Process, la premisa básica de este modelo es que ciertos procesos de pruebas son críticos, estos procesos si son ejecutados de la manera correcta asegurarán el éxito del equipo de pruebas. El modelo identifica 12 procesos análisis críticos. Una evaluación de CTP identifica los procesos que son fuertes y que son débiles y proporciona prioridad recomendaciones de mejora basada en necesidades organizativas. Comúnmente se examina una serie de indicadores cuantitativos y cualitativos durante una evaluación de CTP. (International Software Testing Qualifications Board, 2011)