Análisis de Resultados - haroldVirguez/VINYLS-MOBILE GitHub Wiki

📊 Resultados y Reporte de la Estrategia de Pruebas

Durante la iteración se ejecutaron dos tipos principales de pruebas: pruebas unitarias y pruebas end-to-end (E2E), con el objetivo de validar tanto la lógica interna del código como el comportamiento funcional completo de la aplicación Vinyls.


✍️ Pruebas Manuales Funcionales

Las pruebas manuales se ejecutaron sobre las historias HU01 y HU02, validando el flujo principal de navegación en la aplicación Vinyls.
Durante la ejecución, se comprobó que las vistas cargaran correctamente la información proveniente del backend, incluyendo los datos de los álbumes y sus detalles.

Resultado de la ejecución:
Todas las pruebas manuales se completaron exitosamente, sin presentar fallos en la carga de información ni en la interacción con la interfaz.

📹 Se adjunta video de la ejecución completa mostrando la navegación entre la lista y el detalle de álbumes, así como el comportamiento esperado de la aplicación.


🧪 Pruebas Unitarias (JUnit)

Las pruebas unitarias se ejecutaron sobre el flavor testE2eDebugUnitTest. Su objetivo es validar la lógica interna y la correcta integración entre los componentes del patrón MVVM, sin depender del backend ni de servicios externos.

./gradlew testE2eDebugUnitTest

Resultado:

BUILD SUCCESSFUL in 5s
31 actionable tasks: 5 executed, 26 up-to-date
  • Todas las pruebas configuradas pasaron exitosamente.
  • No se reportaron fallos ni excepciones.
  • Las pruebas se enfocaron en validar la correcta inicialización de componentes, la generación de ViewModels y la coherencia en la arquitectura MVVM.

Los resultados se almacenan automáticamente en la carpeta:

app/build/reports/tests/testE2eDebugUnitTest/index.html

El archivo index.html presenta un resumen visual con los escenarios ejecutados y tiempos de respuesta.


🤖 Pruebas End-to-End (E2E) con Espresso

Las pruebas E2E fueron implementadas con Espresso sobre el flavor e2eDebug, validando flujos completos de usuario y la integración entre vistas, ViewModels y adaptadores.

Archivo principal:

app/src/androidTestE2e/java/com/team3/vinyls/e2e/E2EAlbumsFlowTest.kt

Escenario probado (listAlbums_and_openAlbumDetail_displaysMockData):

Verifica que el listado de álbumes (RecyclerView) se renderice correctamente.

Simula el toque sobre el primer elemento.

Comprueba que la pantalla de detalle muestre el título "Mock Album 1" y los campos de descripción y tracks visibles.

Resultados:

✅ Todas las pruebas E2E pasaron exitosamente.


🤖 Pruebas End-to-End (Kraken)

Las pruebas E2E se ejecutaron con el comando:

npm run test:android

Estas pruebas simulan la interacción del usuario dentro del emulador Android, validando la navegación, la visualización de álbumes y la carga de detalles desde la mock API.
El entorno de pruebas se ejecutó con Appium (servidor en http://127.0.0.1:4723) y con las capacidades definidas en el archivo mobile.json.

Resultado de la ejecución:

2 scenarios (2 passed)
7 steps (7 passed)

Evidencia generada: Los reportes se encuentran en el módulo e2e-kraken, dentro del directorio:

./e2e-kraken/reports/index.html

El archivo index.html presenta un resumen visual con los escenarios ejecutados, tiempos de respuesta y dispositivo utilizado.


⚠️ Registro y seguimiento de errores

  • En esta ejecución no se presentaron errores en ninguno de los niveles de prueba.
  • En caso de fallos futuros, se seguirán las siguientes buenas prácticas:
    1. Crear un issue en GitHub describiendo el escenario afectado.
    2. Adjuntar los logs de Kraken/Appium y la captura de pantalla del dispositivo.
    3. Etiquetar el issue con bug, E2E, o unit-test según corresponda.

📁 Evidencia en el repositorio

Los resultados de todas las pruebas se encuentran dentro del repositorio, organizados de la siguiente forma:

Vinyls-android/
├── app/
│   └── build/reports/tests/testE2eDebugUnitTest/
│       └── index.html
└── e2e-kraken/
    └── reports/
        └── index.html

🧩 Conclusiones de la Estrategia de Pruebas

La estrategia de pruebas aplicada permitió validar el correcto funcionamiento de la aplicación Vinyls desde diferentes niveles y perspectivas.

  • Las pruebas manuales funcionales (TNT01) verificaron que las historias HU01 y HU02 cumplieran con los criterios de aceptación, asegurando que las vistas principales cargaran datos reales desde el backend.
  • Las pruebas unitarias (TNT02) garantizaron la estabilidad de la capa lógica (ViewModel y Repository), validando la transformación de datos y el manejo de errores sin depender de la interfaz.
  • Las pruebas automatizadas de interfaz (TNT03) con Espresso confirmaron la correcta comunicación entre la View y el ViewModel, comprobando que los datos de los álbumes se muestren correctamente.
  • Las pruebas E2E (TNT04) con Kraken simularon el recorrido completo del usuario, desde la lista hasta el detalle de un álbum, validando la integración de las capas View, ViewModel y Model.

En conjunto, estas pruebas ofrecen una cobertura integral del sistema, evidenciando que la aplicación es estable, funcional y coherente.
Además, los resultados positivos respaldan la calidad de la arquitectura MVVM implementada y proporcionan una base sólida para futuras iteraciones o ampliaciones del sistema.