Contenido
Implementación de Pruebas Unitarias en el Desarrollo de Odoo
1. Introducción
Este documento describe la estrategia para la implementación de pruebas unitarias dentro del equipo de desarrollo, estableciendo responsabilidades y buenas prácticas para asegurar la calidad del código en los proyectos de Odoo.
2. Objetivos
- Garantizar la calidad y estabilidad del código en cada desarrollo.
- Detectar errores antes de la puesta en producción.
- Agilizar la revisión de código mediante automatización.
- Fomentar una cultura de pruebas en el equipo de desarrollo.
3. Estrategia de Pruebas
3.1 Alcance
Se deben incluir pruebas unitarias para:
- Validaciones de datos.
- Funcionalidades críticas de negocio.
- Integraciones entre módulos.
- Cálculos y procesos automatizados.
3.2 Cuándo Ejecutar las Pruebas
- Antes de hacer commit del código.
- En cada push a un repositorio remoto.
- Antes de realizar un merge a la rama principal.
- En cada despliegue de versión.
4. Flujo de Trabajo con Pruebas Unitarias
1. El desarrollador toma una tarea y desarrolla la funcionalidad.
2. Se crean y ejecutan pruebas unitarias para validar el desarrollo.
3. Se sube el código a un repositorio remoto.
4. Se activa el pipeline de CI/CD que ejecuta las pruebas automáticamente.
5. Se somete el código a un **Code Review**.
6. Si pasa las revisiones, se realiza el merge a la rama principal.
7. El código es desplegado en ambiente de pruebas antes de ir a producción.
5. Roles y Responsabilidades
5.1 Desarrolladores
- Escribir pruebas unitarias para cada nueva funcionalidad.
- Asegurar que el código pase todas las pruebas antes de hacer un commit.
- Corregir cualquier falla detectada en las pruebas.
5.2 Revisores de Código
- Verificar la calidad del código y la claridad del mismo.
- Asegurar que las pruebas unitarias sean adecuadas y efectivas.
- Proporcionar feedback constructivo en las revisiones.
5.3 Administrador de CI/CD
- Configurar y mantener pipelines automáticos para la ejecución de pruebas.
- Monitorear la estabilidad de las pruebas en cada despliegue.
- Notificar al equipo sobre pruebas fallidas y errores recurrentes.
5.4 Equipo de Consultoría
- Validar que las pruebas unitarias cubran los requisitos funcionales del negocio.
- Colaborar con los desarrolladores en la definición de escenarios de prueba relevantes.
- Evaluar los resultados de las pruebas para garantizar la alineación con las necesidades del cliente.
- Proporcionar retroalimentación sobre mejoras en la funcionalidad basada en los resultados de las pruebas.
6. Code Review y Validación de Pruebas
El Code Review es obligatorio antes de aceptar cualquier cambio en el código. Durante la revisión se deben verificar:
- Calidad del código y cumplimiento de estándares.
- Inclusión de pruebas unitarias adecuadas.
- Resultados de pruebas en el pipeline de CI/CD.
7. Automatización con CI/CD
Para garantizar la ejecución continua de pruebas, se integrará el uso de:
- GitHub Actions / GitLab CI/CD / Bitbucket Pipelines para ejecutar pruebas automáticamente en cada push.
- odoo-bin --test-enable para ejecutar las pruebas unitarias en el ambiente de Odoo.
- Herramientas de cobertura de pruebas como `coverage.py` para medir la calidad de las pruebas.
8. Definición de Escenarios de Pruebas
Para documentar cada prueba de manera estructurada, se utilizará la siguiente plantilla:
Plantilla para la Definición de Escenarios de Pruebas
Nombre del Caso de Prueba:
(Especificar el nombre descriptivo del caso de prueba, por ejemplo, "Validación de Cálculo de Impuestos en Facturas")
ID del Caso de Prueba:
(Un identificador único para rastrear la prueba, por ejemplo, "TC-001")
Descripción:
(Explicar brevemente qué se está probando y su propósito)
Requisitos Asociados:
(Listar los requisitos funcionales o técnicos relacionados con esta prueba)
Precondiciones:
(Listar los requisitos previos que deben cumplirse antes de ejecutar la prueba, por ejemplo, "Debe existir una factura con productos asignados")
Datos de Entrada:
(Especificar los datos que se utilizarán en la prueba, como valores de entrada, configuraciones específicas, etc.)
Pasos para la Ejecución:
1. (Describir paso a paso cómo ejecutar la prueba)
2. (Ejemplo: "Ingresar una factura con un producto gravado con IVA del 16%")
3. (Ejemplo: "Confirmar la factura y verificar la generación de impuestos")
Resultados Esperados:
(Describir cuál debería ser el resultado correcto si la prueba es exitosa, por ejemplo, "El impuesto debe calcularse correctamente en la factura con un valor del 16% del subtotal")
Resultado Real:
(Este campo se completa tras la ejecución de la prueba para documentar lo que realmente sucedió)
Estado de la Prueba:
✅ Pasó / ❌ Falló / ⚠ En Revisión
Observaciones y Notas:
(Registrar cualquier observación, error encontrado o recomendación de mejora)
9. Mejora Continua
- Fomentar una cultura de calidad y responsabilidad en el equipo.
10. Conclusión
La implementación de pruebas unitarias es un paso clave para mejorar la calidad del software en Odoo. Siguiendo esta estrategia, se espera reducir errores en producción, mejorar la eficiencia del equipo y fortalecer la estabilidad del sistema.