Introducción
En el ámbito del desarrollo de software, existen diferentes modelos de ciclo de vida que proporcionan estructuras y guías para el proceso de desarrollo. Cada modelo tiene sus propias características y enfoques particulares. En este artículo, exploraremos cuatro modelos de desarrollo de software ampliamente utilizados: el modelo cascada, el modelo V, el modelo de desarrollo incremental y el modelo de prototipado. Analizaremos cómo se relacionan estas metodologías con las actividades de un software tester y proporcionaremos ejemplos para ilustrar su aplicación en la práctica.
1. Modelo Cascada
El modelo cascada es uno de los modelos de desarrollo de software más antiguos y lineales. Se basa en una secuencia lineal de fases, donde cada fase depende de la finalización de la fase anterior. Las principales fases del modelo cascada son: requisitos, diseño, implementación, pruebas y mantenimiento.
Actividades del Software Tester:
Análisis y revisión de requisitos para identificar inconsistencias y ambigüedades.
Diseño de casos de prueba en base a los requisitos establecidos.
Ejecución de pruebas funcionales y de integración.
Registro y seguimiento de defectos encontrados durante las pruebas.
Ejemplo: En un proyecto que sigue el modelo cascada, el software tester colabora con el equipo de desarrollo para analizar los requisitos y asegurarse de que sean claros y comprensibles. Luego, el tester crea casos de prueba basados en los requisitos y realiza pruebas exhaustivas en cada fase del ciclo de desarrollo. Si se encuentran defectos durante las pruebas, se registran y se informa al equipo de desarrollo para su corrección.
2. Modelo V
El modelo V es una extensión del modelo cascada y se enfoca en la relación entre las actividades de desarrollo y las actividades de prueba. Las fases de desarrollo y prueba se realizan de manera paralela y se intercalan. El modelo V visualiza esta relación en forma de una «V», donde las fases de desarrollo se encuentran en el lado izquierdo y las fases de prueba en el lado derecho.
Actividades del Software Tester:
Revisión de los requisitos y especificaciones de diseño para identificar posibles problemas y lagunas.
Diseño de casos de prueba en base a los requisitos y las especificaciones de diseño.
Ejecución de pruebas de unidad, pruebas de integración y pruebas de sistema.
Validación de que los resultados de las pruebas cumplan con los requisitos establecidos.
Ejemplo: En un proyecto que sigue el modelo V, el software tester trabaja en estrecha colaboración con los desarrolladores desde las etapas iniciales. El tester participa en la revisión de requisitos y especificaciones de diseño para comprender completamente el alcance y los detalles del sistema. Luego, el tester crea casos de prueba que cubran los requisitos y las funcionalidades establecidas. Durante las fases de desarrollo y prueba, el tester ejecuta pruebas a diferentes niveles (unidad, integración y sistema) para asegurar que el software cumpla con los requisitos.
3. Modelo de Desarrollo Incremental
El modelo de desarrollo incremental se centra en la entrega de funcionalidades de forma incremental y progresiva. El proyecto se divide en módulos o iteraciones, y cada iteración agrega nuevas funcionalidades o mejoras al sistema. Cada iteración incluye todas las fases del ciclo de vida del software: requisitos, diseño, implementación y pruebas.
Actividades del Software Tester:
Participación en las reuniones de planificación de cada iteración para comprender las nuevas funcionalidades que se deben probar.
Diseño de casos de prueba para las nuevas funcionalidades o mejoras.
Ejecución de pruebas de regresión para asegurar que las funcionalidades existentes no se vean afectadas por los cambios realizados.
Identificación y reporte de defectos encontrados durante las pruebas.
Ejemplo: En un proyecto que sigue el modelo de desarrollo incremental, el software tester se involucra desde el inicio del proyecto y colabora en la definición de los requisitos y el diseño de cada iteración. Durante cada iteración, el tester diseña y ejecuta casos de prueba específicos para las nuevas funcionalidades o mejoras. Además, se realizan pruebas de regresión para garantizar que las funcionalidades existentes sigan funcionando correctamente. El tester también registra cualquier defecto encontrado y trabaja en estrecha colaboración con el equipo de desarrollo para su resolución.
4. Modelo de Prototipado
El modelo de prototipado se centra en la creación rápida de prototipos funcionales para validar y refinar los requisitos del sistema. El objetivo principal es obtener retroalimentación temprana del cliente o usuario final. El prototipo se desarrolla en ciclos iterativos, donde se recopilan comentarios y se realizan ajustes hasta que se satisfagan los requisitos establecidos.
Actividades del Software Tester:
Participación activa en la definición y diseño del prototipo.
Diseño de casos de prueba para validar los requisitos establecidos.
Ejecución de pruebas de validación y pruebas de usabilidad del prototipo.
Recopilación de comentarios y sugerencias durante las pruebas y su comunicación al equipo de desarrollo.
Ejemplo: En un proyecto basado en el modelo de prototipado, el software tester trabaja en colaboración con los desarrolladores y los usuarios finales para definir los requisitos del prototipo y su diseño. El tester diseña casos de prueba para validar los requisitos y se centra en pruebas de validación y usabilidad. Durante las pruebas, se recopilan comentarios y sugerencias de los usuarios finales y se comunican al equipo de desarrollo para refinar y mejorar el prototipo.
Conclusión (1)
Cada modelo de desarrollo de software ofrece un enfoque único para el proceso de desarrollo, y las actividades del software tester se adaptan a cada uno de ellos. Desde la revisión de requisitos y el diseño de casos de prueba, hasta la ejecución de pruebas y la identificación de defectos, el software tester desempeña un papel crucial en garantizar la calidad del software en cada etapa del ciclo de vida. Los ejemplos proporcionados ilustran cómo las actividades del software tester se relacionan con cada modelo de desarrollo, brindando una visión clara de su aplicación en la práctica.
¿En qué otras partes del Programa de Estudios se encuentra el concepto?
2.2.1. Prueba de Componente. Objetivos de la prueba de componente.
La prueba de componente, a menudo, se realiza de forma aislada del resto del sistema, dependiendo del modelo de ciclo de vida de desarrollo de software y el sistema, lo que puede requerir objetos simulados, virtualización de servicios, arneses, stubs y controladores.
3.2. Proceso de revisión
Las revisiones varian desde informales hasta formales. El grado de formalidad de un proceso de revisión está relacionado con factores como el modelo de ciclo de vida de desarrollo de software, la madurez del proceso de desarrollo, la complejidad del producto de trabajo que se debe revisar, cualquier requisito legal o reglamentario, y/o la necesidad de un rastro de auditoría.
4.4.1. Elección de técnicas de prueba
La elección de qué técnicas de prueba se van a utilizar depende de una serie de factores, entre los que se incluye: el modelo de ciclo de vida de desarrollo de software.
5.1.2. Tareas de un Jefe de Prueba y un Tester
Dependiendo de los riesgos asociados al producto y al proyecto, y del modelo de ciclo de vida de desarrollo de software seleccionado, diferentes personas pueden asumir el rol de tester en diferentes niveles de prueba.
5.6. Gestión de defectos
La forma en la que se registran los defectos puede variar, dependiendo del contexto del componente o sistema que se está probando, el nivel de prueba y el modelo de ciclo de vida de desarrollo de software.
Conclusión (2)
Es importante, a mi criterio, ampliar nuestro rango de exploración de contenidos asociados dentro del programa de estudios ya que te permitirá además de reforzar conocimiento, identificar también la trazabilidad que tienen ciertos conceptos entre ellos.
Fuente de inspiración
Programa de estudios ISTQB CTFL v2018 | 2.1.2. Modelos de ciclo de vida del desarrollo de software en contexto.