Cobertura de código para Android UI Test automatizado

Yana Gusti 08/07/2019

Hablemos de prueba automatizada de Android. La profesión de Ingeniero de control de calidad solía estar asociado con las personas, que «no son lo suficientemente buenas» para convertirse en desarrolladores. He escuchado varias veces que «La forma más fácil de entrar en la esfera de TI es convertirse en un probador«.

Pero, de hecho, se requiere estudiar nuevas tecnologías y mejorar constantemente para convertirse en un probador profesional.

1. Las tendencias de 2017 en las pruebas:
integración, automatización y más

La noción «Seguro de calidad” Como la rama separada de la industria de TI ha aparecido no hace mucho tiempo. Los departamentos de prueba a gran escala solo existían en grandes compañías de desarrollo de software / hardware, donde los errores eran inadmisibles.

La revolución en la creación de las normas se ha convertido en el siguiente paso. Quedó claro que ciertas reglas deben cumplirse para el correcto funcionamiento de los productos de TI. Así que los departamentos de soporte parecían recibir y las opiniones de los clientes y resolver problemas.

arriba qaPrioridades de control de calidad

Hoy en día, la mayoría de los directores ejecutivos y gerentes desean que sus productos cumplan con todos los requisitos.

Compañíascomenzó a invertir Cada vez más en el proceso de prueba, por lo tanto, la profesión de Ingeniero de control de calidad Está justo en el inicio de su desarrollo.

cobertura de código, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Presupuesto QA

Las tendencias de prueba más populares en 2016 son las siguientes:

1.pruebas integradas – involucrar a los evaluadores al comienzo del proceso de desarrollo y durante todo el ciclo de vida de un producto. Como se dice: es mucho más barato corregir un error en una documentación que durante el lanzamiento.

cobertura de código, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQABug vs característica

2.pruebas de automatización: ayuda a sustituir las pruebas de regresión, por ejemplo, el producto se desarrolla utilizando el método ágil y así sucesivamente.

cobertura de código, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Pruebas de automatización

3.servicios de nube, que proporcionan herramientas de prueba virtuales;
4.pruebas de colaboración – testing, que involucra a un gran número de usuarios (efectivo para las pruebas beta).

El uso de estas herramientas es la clave para proporcionar mejores servicios de pruebas móviles. El futuro de las pruebas pertenece a la automatización.

 

2. El futuro de las pruebas pertenece a la automatización.

Hoy en día, la automatización de procesos se vuelve popular en todas las esferas de la vida humana.

La sociedad se esfuerza por delegar todas las responsabilidades rutinarias a las máquinas. Las cosas que parecían imposibles hace unos años, en nuestro tiempo se han convertido en procesos ordinarios y las pruebas no son una excepción.

Aunque, según los datos de “ESTADO DE LAS PRUEBAS 2016”, El porcentaje de Ingenieros de automatización de control de calidad en el mercado es igual solamente8%, cada vez más clientes exigen ejecutar las pruebas automatizadas para verificar los programas.

cobertura de código, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQAObtener de qablog.practitest.com

Unidad, automatización de la interfaz de usuario, carga Las pruebas, así como el uso de herramientas de prueba automatizadas, ganan popularidad para verificar la compatibilidad en diferentes sistemas operativos y dispositivos.

Pero, como ha aparecido, eso no es suficiente. En consecuencia, si no usa las herramientas para calcular la cobertura de código, las pruebas automatizadas no garantizarán la prueba de todas las funciones, casos de prueba y escenarios.

Trébol, JaCoCo, Cobertura de código (Las herramientas estándar de cobertura de código IntellijIDEA) pueden utilizarse para este propósito. Sin embargo, la mayoría de ellos fueron diseñados para el cálculo de Cobertura de código de prueba unitaria (Por ejemplo, al iniciar la prueba a través de Clover, aparece el mensaje “Clover Test Optimization solo admite configuraciones JUnit«Se muestra por IDE).

cobertura de código, trébol, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Cobertura de prueba trébol para pruebas unitarias.

De lo contrario, no existe una solución ya hecha a gran escala para presentar la cobertura de código de las pruebas automatizadas de UI en el mercado.

3. Cómo presentar los resultados de la prueba automatizada de Android para UI

Comenzamos a investigar estos problemas en la demanda de los clientes para presentar el resultado visual de nuestras pruebas automatizadas para la prueba de aplicaciones móviles.

Después de investigar algunos artículos, blogs y foros, encontramos el gran proyecto de Oleksandr Kucherenko llamado Android Test + Espresso + JaCoCo. Ha creado AndroidJacocoTestRunner, que hemos utilizado con éxito para obtener la cobertura del código de nuestras pruebas automatizadas.

Desafortunadamente, Espresso tiene la variedad de problemas al escribir código. Por ejemplo, esta biblioteca no proporciona los métodos de desplazamiento preparados, etc.

Esta es la razón por la que nuestro equipo ha decidido elaborar el proyecto de Oleksandr para que pueda interactuar con la biblioteca de Robotium. Gracias a la simplicidad y claridad del código fuente de AndroidJacocoTestRunner, solo se tuvieron que cambiar algunas líneas:

 

  • cambia la ruta a AndroidJacocoTestRunner en build.gradle
defaultConfig {
    applicationId "com.example.android"
    minSdkVersion 15
    targetSdkVersion 21
    versioncode 1
    versionName "$ {getBuildName ()}"
    testInstrumentationRunner
    "com.example.android.AndroidJacocoTestRunner"
}
  • cambiar la dependencia de espresso a robotium y sincronizar build.gradle
androidTestCompile'com.jayway.android.robotium: robotium-solo: 5.4.1 '

Una vez que el proyecto se ha limpiado y reconstruido, se le notifica al IDE sobre la configuración exitosa 🙂

El equipo comenzó a escribir código. Código de las pruebas que se escriben con Robotium, no se diferencia de un código habitual y nos da la oportunidad de obtener un resultado gráfico y no hay necesidad de escribir ninguna condición adicional.

Por ejemplo, el prueba de autorización en la aplicación Ha sido creado:

 

clase pública TestLogin extiende
ActivityInstrumentationTestCase2 <SplashActivity> {
   privado Solo Solo;
   TestLogin público () {
      super (SplashActivity.class);
   }
   @Anular
   public void setUp () lanza Exception {
      super.setUp ();
      solo = nuevo Solo (this.getInstrumentation (),
      getActivity ());
   }
   @SmallTest
   public void testProfile () lanza Exception {
   // comprueba Cerrar sesión o no
      if (solo.waitForView (R.id.search_button)) {
         solo.clickOnText ("Personal");
         solo.scrollToBottom ();
         solo.clickOnText ("Logout");
      }
      solo.typeText (0, "nombre de usuario");
      solo.clickOnView (solo.getView (R.id.etPassword_ASM));
      solo.typeText (1, "123456");
      solo.clickOnText ("LOG IN");
   }
   @Anular
   public void tearDown () lanza Exception {
      solo.finishOpenedActivities ();
   }
}

Para obtener un resultado demostrativo, la prueba puede iniciarse de dos maneras:
1. desde la línea de comando:gradlew: aplicación: connectedAndroidTest
cobertura de código, Robotium, JaCoCo, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Ejecutar pruebas de Robotium

2. De IDE – crear prueba de Android enEditar configuración, escoger AndroidJacocoTestRunner y presiona «Ejecutar». comienzogradlew: app: jacocoTestReport Con una línea de comando para obtener un resultado gráfico.

cobertura de código, Robotium, JaCoCo, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Ejecutar pruebas de Robotium

El resultado en forma de tabla (archivo «index.html») se puede encontrar en el directorio <Nombre del proyecto> appbuildreportscoveragedebug:

cobertura de código, Robotium, JaCoCo, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Resultado de las pruebas de automatización con cobertura de código.

También existe la posibilidad de conseguir Resumen de la prueba:

cobertura de código, Robotium, JaCoCo, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Resultado de las pruebas de automatización con cobertura de código.

y ver qué prueba no ha pasado y por qué:

cobertura de código, Robotium, JaCoCo, tendencias en pruebas, integración, automatización, cobertura de pruebas, interfaz de usuario, pruebas de automatización, Android, EasyQA

Resultado de las pruebas de automatización con cobertura de código.

Conclusiones

El uso de las herramientas para calcular la cobertura de código de las pruebas automatizadas aumenta la velocidad y la eficiencia deTrabajo de ingeniero de control de calidad..

No es necesario crear informes manuales y demostrar la efectividad de su trabajo. El cliente recibe el resultado claro, el evaluador renuncia a la obligación de informar manualmente. Así que ambos lados están satisfechos :).

Aunque las pruebas automatizadas son mucho más complicadas que las manuales. Así que aprende, ya que es interesante, extraordinario y prometedor. ¡Y continuaremos investigando este tema en nuestros próximos artículos!

También puedes usar nuestro Herramienta de gestión de pruebas EasyQA para usar varias funciones útiles para mejorar la calidad del software, tales como:

 

  • construir compartir
  • atrapar choques
  • consigue construir directamente desde GitHub o GitLab
  • Informe de error de la aplicación y otros.

Registre una cuenta nueva gratis!