sábado, 29 de agosto de 2015

Pruebas no funcionales en Android

¿Que son las pruebas no funcionales? Para entender este tipo de pruebas es bueno tener claro que son las pruebas funcionales, estas pruebas se encargan verificar que una funcionalidad en específico, es decir un conjunto de entradas  son aplicadas a un módulo y según las salidas que este de se verifica si funciona correctamente o no. Si bien este tipo de pruebas son necesarias, no son las únicas y no muestran el comportamiento real de la aplicación bajo condiciones de producción. Por tal motivo se hace necesario realizar las pruebas no funcionales, estas se encargan de ver el comportamiento de la aplicación bajo situaciones similares a las de producción.
¿Que pruebas no funcionales existen?En una aplicación podemos evaluar los siguientes aspectos:
  • Manejo de memoria
  • Confiabilidad
  • Usabilidad
  • Mantenibilidad
  • Configurabilidad
  • Rendimiento (Estrés)
  • Seguridad
  • Portabilidad
  • Recuperación
  • Recuperación a desastres
  • Interoperabilidad
  • Compatibilidad
  • Instalabilidad
¿Como realizar pruebas no funcionales en Android?Para realizar este tipo de pruebas contamos con las siguientes herramientas:
  • Monkey:esta herramienta nos permite enviar eventos a nuestra aplicación, esta herramienta puede ser usada para realizar pruebas de estrés, ya que nos permite definir la cantidad de eventos que deseamos ejecutar, la frecuencia de estos, restricciones respecto a que paquetes realizar la prueba. Adicionalmente esta herramienta vigila los siguientes aspectos:
    • Si se bloquea la herramienta para trabajar sobre un paquete, y se intenta acceder a otro paquete, se bloqueará la acción.
    • Si la aplicación falla o lanza una excepción no controlada, la herramienta detiene la ejecución y reporta el error.
    • Si la aplicación no responde por algún error, la herramienta detiene la ejecución y reporta el error.
    Podemos ver que esta herramienta nos permite evaluar el comportamiento de la aplicación móvil (tanto en el dispositivo como en el emulador), reportando fallas en el funcionamiento de la misma, las cuales pueden ser reparadas.
  • Traceview:esta herramienta permite visualizar gráficamente los logs que generemos en nuestra aplicación, estos logs los podemos generar con funciones de rastreo o DDMS. (DDMS es una aplicación que ofrece un conjunto de funcionalidades para el debug, entre estas se encuentran métodos para perfilar la aplicación).Traceview ofrece dos formas de visualizar los datos:
    • Timeline Panel:De esta forma podemos ver el tiempo de ejecución de los métodos y diferentes hilos, como se muestra en la imagen:
      Timeline, tomado de Android developer
    • Profile Panel:Esta visualización muestra un listado de los métodos que se han ejecutado, podemos ver el tiempo de ejecución del método, el tiempo de ejecución del método y las funciones que este llame en su interior, cantidad de veces que el método es llamado. Adicionalmente para cada método se muestra el listado de métodos a los cuales este llama, y de los cuales el ha sido llamado, para diferenciar estos dos se utiliza el color purpura y amarillo como color de fondo.
      Profile Panel. Tomado de Android Developer
      Para almacenar información en el log podemos llamar a los métodos:Debug.startMethodTracing(“NombreLog”); //Iniciar el log
      Debug.stopMethodTracing(); //Detener el log
      De esta forma tenemos un control muy preciso sobre el código que deseamos evaluar.
      La información arrojada por los logs y las gráficas seria de gran ayuda en determinar el rendimiento de la aplicación ya que los tiempos nos permiten determinar cuales métodos deben ser optimizados para una más rápida ejecución.
  • Manejo de memoria: Para evaluar el consumo de memoria en nuestra aplicación podemos usar la herramienta “allocation tracker” la cual hace parte del DDMS, esta herramienta nos permitirá conectarnos a nuestra aplicación y nos mostrará el listado de objetos utilizados por la misma, el hilo, la clase y el método en el cual fueron creados.
Bibliografia:


Fuente: https://codeater.wordpress.com/2012/05/06/pruebas-no-funcionales-en-android/

No hay comentarios:

Publicar un comentario