Caso de éxito de pruebas automatizadas en industria automotriz por Maximiliano Kunz, Diego Delgado y Ezequiel Bazan
Sobre la charla:
A lo largo de la charla nos introduciremos en los desafíos que representa la automatización de escenarios de usuario en un Sistema de Información y Entretenimiento (Infotainment) en un Automóvil. A este reto inicial le sumamos cómo resolvimos la interacción con los diferentes periféricos que conviven en un auto, como ser el teléfono y pendrives con música, y también funcionalidades como reconocimiento de voz (speech recognition), de escritura (handwriting) y mucho más.
Sobre Maximiliano:
Ingeniero con mas de 11 años de experiencia en testing de software y 2 años en testing automatizado, ademas es Tester Certificado ISTQB y CMAP.
Sobre Ezequiel:
Trabaja hace 8 años en software en el área de testing, y desde hace 3 años en Incluit, desempeñando tareas de Testing automatizado.
Sobre Diego:
Analista diplomado en Calidad de Software con 10 años de experiencia en el área de testing y 6 años coordinando equipos de testing automatizado.
2. Caso de éxito de pruebas automatizadas en Industria Automotriz
2. Enfoque y Solución planteada.
• Investigación
• Implementación - CI
3. En que Innovamos
• MUX
• SR
• Pixel perfect
• Interacción con Dispositivos
• Grabación de la Ejecución
• Presencia de Audio
• Lectura de Toast Messages
Agenda:
1. Descripción del Producto a Testear
• Que es infotainment
• Arquitectura del Producto
• SO: Android 5.1 Custom + MOST
• Apps: Navegador, Teléfono, Radio, SR
3. Descripción del Producto a Testear
¿Que es Infotainment?
Infotainment se utiliza para referirse a los programas de radio/televisión destinados tanto para entretener a
la gente y dar información. La palabra se forma a partir de " información " y " entretenimiento.
Ejemplo: Animal Planet, NatGeo, El Gourmet.
Infotainment en la Industria Automotriz
Es el sistema que nos permite operar:
• Radio
• Sistema Navegación
• Entradas Auxiliares (USB/Aux In)
• Teléfono
• Android Auto / Apple Car Play
11. Enfoque y Solución planteada: Alcance de Testing Automatizado
Test Automation Scope
Test Levels
Unit
Component
Integration
System
Acceptance
Test Types
Functional
Non Functional
Regression / Confirmation
Structure
Test Technique
White Box / Structure Based
Black Box / Specification Based
13. Despliegue automatizado con Jenkins
Build Server
•Flash FCB
•Enable ADB
•Authorize the device
• Flash FCB
• Habilitar ADB
• Autorizar dispositivo
Descarga
Serial
FC
B
adb
15. Interacción con Dispositivos
Auto-PairingMultiple Device
Management
App Info Device
• Se desarrolló una aplicación para
capturar la información del
dispositivo.
• El FW instala la aplicación en los
dispositivos conectados a través del
USB al servidor.
• La aplicación se ejecuta y envía la
información del dispositivo al FW.
• Esta aplicación nos
permite no codificar
los dispositivos con
los que queremos
interactuar.
• Con la información de los
dispositivos, el FW crea una
instancia de Appium Server por
dispositivo en un puerto diferente.
• Esto nos permite interactuar no solo
con el FCB, sino con todos los
dispositivos conectados al servidor.
• En un mismo caso de prueba,
podemos trabajar con múltiples
dispositivo.
• Se creó un paso para pairear un
dispositivo con el FCB
• Este paso realiza toda la interacción
necesaria en ambos dispositivos.
• Este paso valida que si un dispositivo
está paireado. Si está paireado,
continúa con el siguiente paso para
ahorrar tiempo para las
ejecuciones de prueba.
Limitación: los dispositivos para emparejar
deben tener Android nativo. La conexión con
el FCB a través de WIFI es manual.Know Issue: No con todos los dispositivos
podemos obtener el número de teléfono.
En algunos casos tenemos que agregarlo
manualmente
17. Audio Testing
A research was made to identify the approaches
for audio testing.
As a result, a POC for the first phase was
presented including:
• Allow us to test USB Audio, BT Audio, FM Tuner
and System Sounds.
• Mic recording script to record the audio in wave
format.
• Musicg library used to compare recorded sound
with expected sound using Audio Fingerprint.
Second Phase: Implement Audio-Mapping
• Using a jack to a plug cable for each
output channel.
• Connect to a 16 channel USB mixer to
convert the analog signal in digital.
• Implement in the FW a module that
verify output channel signal.
• Merge with the audio comparison of first
phase.
20. Pixel Perfect – UI Comparator Tool
La herramienta tiene la capacidad
de comparar dos imágenes píxel por
píxel. Esto podría almacenarse
localmente en la máquina o tomar
una captura de pantalla del FCB
y compararlo con las imágenes de
validación en un servidor. Esta
herramienta desarrollada en Java
mostrará una imagen formada con
cada píxel de color diferente.
22. Grabacion de la Ejecucion - Test cases Fallido
Se graba un video de cada
ejecución, si el Test Case
Pasa el video se elimina y si
el Test Case Falla el video se
guarda junto a los logs para
un posterior análisis.
23. Captura de Pantalla – Test cases Fallido
En caso de Falla del Test Case se toma una Captura de la Pantalla
MAXI
Gran parter del trabajo del equipo de automatizacion es la creacion de los archivos ".story" que reflejan cada TC automatizado, este .story es un "script" que
interactua con Selenium web driver
Selenium web driver nos permite interactuar con un sitio web y nos da la flexibilidad de seleccionar el browser (frefox, chrome, ie, etc) (nosotros lo configuramos para FireFox)
Appium actua de interfaz con dispositivos moviles, tanto dispositivos Android como IOS, en nuestro caso el dispositivo tiene Android 5.1.
por ultimo, el encargado de ejecutar los comandos es la herramienta UIAutomator que nos provee el sistema operativo Android, y es la encargada de ejecutar las acciones requeridas por cada test case.
The UI Automator testing framework provides a UiDevice class to access and perform operations on the FCB on which the target app is running.
We use their methods to access device properties such as display size and activity nodes.
The UiDevice class also lets you perform actions such as:
Press a key; Press the Back, Home or Menu buttons; Take a screenshot of the current window; Gestures
On top of existing UIAutomator features, Test automation team added support for Non-native Android gestures (Press & Hold, Swipe and Hover).