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.