Al trabajar con pruebas automatizadas, una estructura adecuada es clave para su eficacia y viabilidad.
Historia del tema
Anteriormente, las pruebas automáticas a menudo se creaban como scripts monolíticos y estrechamente vinculados. Esto complicaba su mantenimiento y expansión. El aumento en el número de pruebas destacó la importancia de una arquitectura adecuada.
Problema
Sin una estructura clara, surgen:
Solución
Utiliza niveles claros de abstracción para tus pruebas:
Una buena práctica es usar:
# Ejemplo de estructura /tests /features test_order_creation.py /steps order_steps.py /pages order_page.py
Características clave:
¿Qué es mejor: escribir pruebas end-to-end largas o pruebas automáticas modulares cortas?
A menudo se eligen solo las end-to-end, pero es importante combinar diferentes tipos de pruebas según los objetivos: todos los niveles (Unit, API, UI) son importantes para una verificación de calidad.
¿Se pueden usar en las pruebas comprobaciones de UI por texto y localizadores al mismo tiempo?
No siempre es correcto: se pueden usar ambos métodos simultáneamente, pero solo si la variabilidad del UI y la lógica de la prueba lo justifican. A menudo es redundante y complica el mantenimiento.
¿Debería copiarse completamente la estructura del sistema del software a probar al crear pruebas automáticas?
No, la estructura de las pruebas automáticas debe estar orientada a facilitar las pruebas, no a replicar exactamente la arquitectura de la aplicación.
En un equipo, las pruebas automáticas eran escritas por una persona, las pruebas estaban en un solo archivo, cada prueba copiaba los pasos de la anterior. Al actualizar la interfaz, el error se corregía manualmente en todas las pruebas.
Pros:
Contras:
En otro equipo se implementó un patrón arquitectónico (separación de pasos, páginas, pruebas). Los nuevos empleados se adaptaban rápidamente e implementaban nuevas pruebas con rapidez, las actualizaciones se realizaban en un solo lugar.
Pros:
Contras: