Iteración 2 - daprieto1/MISO-4208 GitHub Wiki
Estrategia de pruebas
Contexto
Teniendo en cuenta que para la iteración 1 se realizó la fase exploratoria de las aplicaciones, en la iteración 2 nos enfocaremos en generar pruebas automatizadas para la aplicación web y para las 2 aplicaciones móviles. Adicionalmente, para la herramienta de automatización se incluirá la generación de reportes de ejecución de las pruebas.
Objetivos
- Realizar pruebas automatizadas para los casos de aceptación de las aplicaciones móviles y web
- Realizar reporte de ejecución de las pruebas automatizadas generadas con la herramienta de automatización
- Soportar N proveedores sin depender del JSON para generar N archivos de salida apartir de un solo archivo de entrada.
- En la herramienta mostrar los resultados de las pruebas ejecutadas.
- Encontrar corner cases sobre las aplicaciones móviles haciendo uso Random Testing para su descubrimiento.
Presupuesto
Se cuenta con un equipo de ingenieros los cuales cuentan con una disponibilidad semanal de 9 horas para la implementación del proyecto. Estas horas estarán distribuidas de la siguiente manera: 3 horas de capacitación semanal de cada uno de los integrantes del equipo 1 horas de planeación 5 horas realizando la ejecución de las actividades planeadas Total de horas invertidas en la iteración 2 108 horas. Máquinas personales de los integrantes del equipo
Infraestructura
-
Emuladores sobre las siguientes máquinas
- Windows 10, RAM 8 GB, Procesador Core i5 2.20 GHz
- Windows 10, RAM 8 GB, Procesador Core i5 2.25 GHz
- MacBook Pro 16GB Ram, 512 GB estado solido, core i7
-
Dispositivos móviles de los integrantes del equipo
- Pixel XL
- Samsung S5
- Sony Z3
Calendario e integración con desarrollo
- No se va a realizar integración con desarrollo debido a que las pruebas se están realizando sobre AUT's que ya están terminados y compilados.
- Por otro lado para el caso de las aplicaciones móviles se realiza un proceso de BDT, debido a que se están construyendo pruebas de aceptación automatizadas después de que el proceso de desarrollo ha terminado.
Niveles y tipos de pruebas
Nivel Sistema
- Dado que ya se cuenta con las apliaciones desarrolladas realizaremos pruebas a nivel de sistema.
- Dentro de los tipos de pruebas que realizaremos dentro de este módulo se encuentran:
- Funcional: Probando los casos de uso seleccionados.
- Automatizadas: Se ejecutarán pruebas automatizadas sobre algunos casos de uso de las apliaciones.
- UHabit y k9 Mail: se realizará una prueba de RandomTesting usando un monkey testing de Android con ejecuciones aleatorias.
Nivel de Aceptación
- Automatizadas:
- Para las aplicaciones móviles se escribirán escenarios de pruebas auto-documentados para los casos de aceptación usando Gherkin y Calabash para su ejecución
- Para la aplicación web se escribirán escenarios de pruebas auto-documentados para los casos de aceptación usando Gherkin y Cucumber para su ejecución
Conclusiones de la presentación
- Incluir random testing en la herramienta de automatización como un módulo adicional.
- Publicar issues en Github, puede ser parte de la estrategia de pruebas o puede hacerse desde la herramienta de automatización
- Crear un editor de Gherkin para editar pruebas escritas en Gherkin que serán ejecutas en Calabash
- Crear un editor de random testing para aplicaciones mobiles.
- Por debajo de 1 Millón de pruebas de un monkey y solo 1 ejecución es muy poco para tener resultados relevantes.