Aplicación eficiente de la herramienta Baidu Hydra en las pruebas de compatibilidad de la interfaz de usuario móvil

Introducción: aunque la tecnología de pruebas automatizadas cambia cada día que pasa, la existencia de problemas como el costo de construcción de casos automatizados y la estabilidad de ejecución hacen que las pruebas manuales sigan siendo un medio importante de garantía de calidad móvil. En las pruebas manuales tradicionales, los casos de prueba deben ejecutarse manualmente y la mejora de la eficiencia depende de la competencia operativa de los evaluadores. Este artículo comienza con la introducción de la situación actual de las pruebas de compatibilidad de la interfaz de usuario en Baidu y presenta la herramienta Hydra, que se basa en el concepto de "una máquina con múltiples controles". Luego, desde la perspectiva de la implementación técnica, se presenta la idea de diseño general de Hydra y el diseño de algunos módulos centrales.

1. Antecedentes

1.1 Prueba de compatibilidad de la interfaz de usuario móvil

La prueba de compatibilidad de la interfaz de usuario en el terminal móvil, como sugiere el nombre, consiste en probar la consistencia de la visualización de la interfaz de interfaz de usuario de la aplicación del terminal móvil en dispositivos móviles de diferentes modelos, diferentes resoluciones y tamaños.

Como parte importante de la garantía de calidad de las aplicaciones móviles, las pruebas operativas se han llevado a cabo durante mucho tiempo de forma puramente manual. La prueba de compatibilidad manual de terminal móvil tradicional se encuentra principalmente en las siguientes dos etapas en el proceso de desarrollo de aplicaciones de Baidu:

a. En la etapa de prueba funcional
, generalmente hay 12 personas, en una pequeña cantidad de teléfonos móviles de línea comercial (alrededor de 13 unidades), y el tiempo total de prueba es de 10 a 20 horas.

b. Hay 14 personas en la fase de prueba completa (regresión) antes de conectarse
, y hay 512 teléfonos móviles en la línea comercial, y el tiempo total de prueba es de 20 a 50 horas.

1.2 Problemas enfrentados

En la prueba de compatibilidad manual actual en terminales móviles, se presentan los dos problemas siguientes:

a. Dificultad para mejorar el rendimiento
Tomemos un ejemplo simple. En una prueba de regresión, la compatibilidad de la interfaz de usuario se verifica en 10 dispositivos para 100 casos, y cada caso demora 1 minuto, por lo que se necesitan aproximadamente 17 minutos para verificar 10x100 = 1000 casos en total. Horas . Estos casos requieren probadores para operar manualmente en cada dispositivo. Entonces es necesario reducir el tiempo de la fase de prueba, solo aumentando la mano de obra de prueba.

b. Pruebas de compatibilidad insuficientes
Para las pruebas de compatibilidad de la interfaz de usuario, la marca cubierta, el modelo, la versión del sistema, la versión de la interfaz de usuario y otros factores afectarán la tasa de recuperación de la prueba, pero en la situación actual, los dispositivos móviles son únicos y están limitados a cada negocio Sí, es difícil hacer circular equipos entre líneas de negocio.

2. Una máquina con múltiples controles e Hydra

2.1 Cómo soluciona Hydra el problema de la compatibilidad manual de los terminales móviles tradicionales

La prueba de compatibilidad de la interfaz de usuario en el terminal móvil todavía se realiza mediante pruebas manuales, y existen razones objetivas que no se pueden resolver en la actualidad, tales como: la interfaz de interfaz de usuario de la aplicación del terminal móvil es iterativa rápida y el costo de generar pruebas automatizadas casos es alto; la compatibilidad de la interfaz de usuario es estable y no se puede estandarizar ni definir, es difícil recordar, etc.

En cuanto al tema de la eficiencia, Hydra intenta mejorar la eficiencia de la ejecución manual de pruebas a partir de otra idea, es decir, a través del método de "una máquina con múltiples controles". Una máquina con múltiples controles, como su nombre lo indica, significa que el probador controla un dispositivo "maestro", y sus acciones de control pueden controlar múltiples dispositivos "esclavos" al mismo tiempo y realizar una verificación manual de la interfaz de usuario para lograr más pruebas. por unidad de tiempo Propósito. El problema del equipo insuficiente se resuelve conectando "una máquina con múltiples controles" a la plataforma de equipo en la nube para eliminar las limitaciones del equipo físico, como el equipo en la nube para mejorar la cobertura de las pruebas de compatibilidad.

2.2 Necesidades del usuario

¿Cuáles son las expectativas de los probadores de primera línea para una herramienta de control múltiple de una sola máquina que mejora la eficiencia de las pruebas manuales? En resumen, hay cuatro aspectos:

A. Preciso: la posición y el efecto controlados por el dispositivo "maestro" se pueden copiar con precisión en el dispositivo "esclavo". Esta es la función básica de una herramienta de control múltiple para una máquina.
B. Muchos: incluye una gran cantidad de dispositivos, una variedad de dispositivos y una variedad de aplicaciones compatibles.
c. Facilidad de uso: la experiencia de manipulación y la interacción deben ser convenientes, rápidas y acordes con los hábitos de uso.
D. Rápido: la velocidad de manipulación es rápida.

2.3 Solución de Hydra

Después de considerar exhaustivamente las necesidades de los usuarios, se determina la forma básica y la solución técnica de Hydra:

En primer lugar, consideramos el factor de "muchos". Dado que hay dos sistemas móviles principales, Android e IOS, los métodos de manejo y los conjuntos de herramientas de los dispositivos son muy diferentes; en segundo lugar, las formas de aplicación no nativas, como los programas pequeños y H5. están emergiendo cada vez más Salga, el método de conducción de las aplicaciones nativas no es adecuado para estas nuevas formas de aplicaciones. Por lo tanto, decidimos utilizar el algoritmo de imagen como algoritmo central para la "replicación" de la acción.

El uso del algoritmo de imagen conducirá al problema de una adquisición más rápida de imágenes y un cálculo de imágenes más rápido. Por lo tanto, se adopta la conexión por cable a través de la PC para satisfacer mejor las necesidades de alineación y velocidad de los usuarios.

La forma básica de Hydra es un programa de PC que permite a los usuarios conectarse a dispositivos locales a través de conexiones por cable o conectarse a dispositivos en la nube a través de una red. Todas las imágenes de las aplicaciones probadas en el dispositivo se muestran directamente en el navegador, lo que permite a los probadores verificar la interfaz de la interfaz de usuario de manera más intuitiva, recordando así los problemas de compatibilidad de la interfaz de usuario. Este método de visualización también resuelve el problema de la eficiencia de verificación causado por el aumento de equipos.

Para la consideración de los hábitos de uso de los evaluadores, Hydra también admite la operación a través de un dispositivo móvil como "maestro".

3. Arquitectura técnica de Hydra

Hydra adopta la arquitectura BS como un todo y se comunica con la pantalla frontal a través del protocolo http/websocket. El formulario de presentación específico se desacopla de la implementación de la capacidad y los nuevos tipos de presentación, como el cliente móvil, se pueden ampliar fácilmente.

Entre los componentes funcionales, el núcleo es el motor de control de grupo y el sintetizador de imágenes, que son respectivamente responsables de las partes de entrada y salida de la función de "control múltiple de una máquina".

La entrada en tiempo real del usuario en el dispositivo "maestro" se captura a través del navegador/cliente, se replica a través del motor de control de grupo y cada "dispositivo esclavo" se opera simultáneamente. La retroalimentación de la operación se muestra en el navegador/cliente del usuario a través de una "transmisión de imágenes en vivo". De esta manera, se logra una experiencia de control en tiempo real de "lo que ves es lo que obtienes".


El diseño y la implementación de varios módulos centrales en los componentes funcionales se presentarán a continuación.

3.1 Motor de control de grupo

El objetivo de diseño del motor de control de grupo es completar una acción y ejecutarla varias veces.

La dificultad radica en:

a. Mapeo preciso de la entrada del usuario relacionada con las coordenadas en diferentes resoluciones.
B. Bajo el rendimiento de diferentes dispositivos, la secuencia de ejecución de una sola acción en diferentes dispositivos es un problema.
c) El problema del tiempo de las combinaciones de acciones múltiples. (como hacer clic para presionar prolongadamente)

El procesamiento de mapeo de coordenadas al que se hace referencia en a., se resuelve mediante un "algoritmo de imagen de alto rendimiento multiescena", que se presentará en detalle en las secciones siguientes.

Para b. Cuando el motor de control de grupo procesa las acciones de ejecución "esclavas" en paralelo, esperará a que se complete todo el procesamiento de mapeo de coordenadas y comenzará a ejecutarse de manera unificada. El efecto logrado para el usuario es que una acción responder "simultáneamente".

Establezca una cola de ejecución de acciones para el motor de control del grupo C. para el "maestro" y cada "esclavo", y registre la marca de tiempo de cada acción del "maestro". Cuando el "esclavo" ejecuta la acción, se ejecuta de acuerdo con el intervalo relativo de la acción del "maestro" para garantizar que la secuencia de ejecución sea lo más consistente posible con la entrada del usuario.

3.2 Transmisión de imágenes en vivo

El flujo de imágenes en tiempo real es una ruta de transmisión para imágenes y presentaciones de dispositivos. Su objetivo de diseño es realizar la presentación de imágenes en "tiempo real" de múltiples máquinas, lo que permite a los usuarios ver los comentarios operativos más rápido.

Entre las dificultades:
a. La velocidad de fotogramas de la imagen de salida es diferente según el rendimiento del dispositivo
b. La velocidad de fotogramas de salida de la imagen del dispositivo de red es inestable
.
D. Explosión de devolución de llamada de la pantalla frontal

Para resolver la estabilidad anterior, primero debemos dejar en claro que para la transmisión de imágenes en tiempo real, el rendimiento en tiempo real es más importante que la fluidez (velocidad de fotogramas). Debido a que la acción de entrada del usuario es un comportamiento discreto, los problemas de compatibilidad de la interfaz de usuario que generalmente deben identificarse también son estáticos. Por lo tanto, primero limitamos la velocidad de cuadros de entrada del dispositivo a 16 cuadros y redujimos/pesamos el tamaño de cada imagen de cuadro para cumplir con los requisitos básicos de "suavidad" y, al mismo tiempo, reducir los problemas de rendimiento causados ​​por la cantidad de datos. cuanto más se pueda.

Después de limitar la velocidad de fotogramas de un solo dispositivo, el problema de explosión de devolución de llamada de front-end causado por la superposición de múltiples dispositivos, a través de un protocolo de datos personalizado. Combine imágenes multicámara para reducir la velocidad de fotogramas de las imágenes recibidas por la capa de presentación. En la implementación, se utiliza una velocidad de fotogramas compuesta fija y las imágenes de entrada de todos los dispositivos se recopilan regularmente para proteger las diferencias de velocidad de fotogramas de imagen de diferentes dispositivos para la pantalla frontal.

Como se muestra arriba, tenemos n dispositivos, el dispositivo n.° 1 genera imágenes de manera estable a una frecuencia de cuadro fija, el dispositivo n.° 2 genera imágenes de manera estable a una frecuencia de cuadro más baja y el dispositivo n.° n genera imágenes de forma errática. Hydra estableció un subproceso de "composición de imágenes" separado para capturar las últimas imágenes de todos los dispositivos a la velocidad de fotogramas fija esperada (16 fps), como la imagen que se muestra al usuario y compuesta.

La figura anterior muestra el diseño de un protocolo de datos sintéticos personalizado. Cada cuadro contiene datos de todas las imágenes, y la información básica del cuadro se describe en el encabezado del cuadro, incluida la cantidad de imágenes de dispositivos que se incluyen. A continuación, en los datos de imagen individuales de todos los demás dispositivos, se incluye el encabezado. El encabezado de datos describe información sobre el dispositivo y la imagen. Al mismo tiempo, la parte de datos del marco de datos completo se comprime nuevamente para reducir la cantidad de transmisión de datos.

3.3 Algoritmo de imagen multiescena de alto rendimiento

Después de realizar el motor de control de grupo y el flujo de imágenes en tiempo real, se realiza el prototipo básico de control de grupo. Pero para mejorar la experiencia de control de grupo, es necesario combinar los algoritmos de imagen presentados en esta sección.

El mapeo de coordenadas es el núcleo de la arquitectura y debe cumplir con el rendimiento, la precisión y la versatilidad. El algoritmo que elegimos debe considerar exhaustivamente los requisitos anteriores y hacer concesiones. Dado que somos un sistema en tiempo real en su conjunto, los requisitos de rendimiento serán mayores.

En el nivel más básico, podemos elegir la conversión matemática de valores de coordenadas y convertirlos de acuerdo con la proporción del tamaño de la pantalla. Obviamente, este algoritmo es el más simple y tiene el rendimiento más alto, pero no se puede satisfacer la precisión. Porque este algoritmo solo puede convertir con precisión cuando las imágenes de todos los dispositivos son exactamente iguales. La coincidencia de plantillas de imagen es un algoritmo de imagen de alto rendimiento y alta precisión, pero no se puede reconocer después de que la imagen se deforma y su versatilidad no se puede satisfacer.

Elegimos el algoritmo de tamizado como el algoritmo de imagen básico y realizamos el mapeo de conversión a través de los puntos característicos calculados. La aplicación directa del algoritmo sift tiene un mejor rendimiento en precisión y versatilidad, pero hay un cuello de botella muy grande en el rendimiento.El tiempo promedio de procesamiento de un grupo de imágenes es de 2 segundos, lo que no puede cumplir con los requisitos en tiempo real. Por lo tanto, necesitamos optimizar la aplicación del algoritmo de tamizado:

primero, hacemos una intercepción de área de las imágenes de los dispositivos maestro y esclavo para reducir la cantidad de cálculo del algoritmo; luego, no usamos directamente los puntos característicos calculados para mapear , porque los puntos característicos La distribución de está relacionada con la imagen y la entrada de coordenadas puede ser arbitraria. Por lo tanto, calculamos la relación (ángulo de desplazamiento y distancia) entre el punto objetivo c y a y b en el control principal seleccionando los 2 puntos característicos existentes (puntos rojo y verde en la figura) a y b. Esta relación se aplica a la imagen de control esclava para el cálculo, con el fin de calcular las coordenadas del objetivo.

El algoritmo anterior puede funcionar bien en la mayoría de los escenarios, pero hay problemas con la precisión en algunos escenarios (como las listas). Por lo tanto, se requiere una mayor optimización.

Cuando se inicia un mapeo de control de grupo, primero se usa el algoritmo cnn para identificar la página y determinar si se encuentra actualmente en la página de la lista, y luego se usa el reconocimiento de objetos dnn para detectar si hay un ícono previamente entrenado en la imagen. . El proceso anterior solo se realiza una vez en un mapeo de control de grupo Basado en los resultados anteriores, se pueden adoptar diferentes estrategias al mapear cada dispositivo: si hay un ícono preestablecido, entonces use directamente dnn para identificar el objeto. A continuación, determine los parámetros del algoritmo de cribado (cuadro de selección más grande, umbral de función más alto) según esté en la página de lista.

Basándose en el algoritmo anterior, Hydra logra el mapeo de coordenadas en un promedio de 160 ms y una precisión del 97,52 %.

3.4 Reparación de consistencia

En el proceso de uso real, es un fenómeno relativamente común que la imagen del dispositivo sea inconsistente. El motivo puede ser que el "esclavo" no hizo clic de acuerdo con la acción del "maestro" como se esperaba, o que apareció una interfaz inesperada, como una ventana emergente del sistema. Se esperan inconsistencias en el control del grupo.Para mejorar la eficiencia, se han diseñado métodos de reparación eficientes.

En primer lugar, en el diseño de control de Hydra, admite la visualización y el control independientes de cada dispositivo en el proceso de control de grupo. Cuando hay inconsistencias entre los dispositivos individuales, se pueden reparar de inmediato y volver al proceso de operación de prueba normal. .

En segundo lugar, para los escenarios que son propensos a las inconsistencias, como las páginas de listas, se proporcionan correcciones de consistencia deslizante semiautomáticas.

Como se muestra en la figura anterior, cuando las posiciones de deslizamiento de "maestro" y "esclavo" en la página de lista no son consistentes, el cálculo de tamizado se realizará en las dos imágenes respectivamente para obtener los puntos característicos correspondientes. A través de la pendiente entre las líneas que conectan los puntos característicos, se juzga si la imagen "esclava" actual tiene inconsistencia de deslizamiento.

No se pueden utilizar todos los puntos característicos. Imaginemos una página de lista, la barra de navegación y la página de pestañas no se pueden deslizar, y solo el contenido en el medio se puede deslizar y ser inconsistente. Por lo tanto, dividimos la imagen en cuatro regiones de arriba a abajo y usamos pesos diferentes para los puntos característicos en cada región. Las regiones donde las partes superior e inferior no cambian tienen el valor de peso más bajo. La parte deslizable en el medio también se divide en dos partes, la superior y la inferior. Debido al tamaño de la pantalla, la parte inferior mostrará una pequeña inconsistencia en la altura del contenido mostrado, lo que es fácil de confundir, por lo que se le da un peso medio. El área de la mitad superior es el área que usamos principalmente para juzgar, dando el mayor peso.

Cuando los puntos característicos con diferentes pesos están conectados, realizamos un promedio ponderado de ellos, y luego podemos juzgar si hay inconsistencia en el deslizamiento de acuerdo con los resultados, y calcular la diferencia de acuerdo con la pendiente, y luego controlar automáticamente el equipo para realizar compensación de deslizamiento inverso, es decir, se completa el deslizamiento.Correcciones de consistencia.

3.5 Control de mano móvil

El método de prueba tradicional de los evaluadores es controlar directamente el dispositivo de mano, y el hábito del control del mouse y las teclas no se puede adaptar. Por lo tanto, Hydra también proporciona el modo de operación a través del control de mano móvil. Hydra ofrece dos opciones para el control manual:

  1. esquema de control remoto

Bajo este esquema, al igual que el esquema del navegador, primero seleccione un dispositivo como maestro. Luego aproveche las tecnologías front-end existentes. La imagen recopilada del dispositivo "maestro" se enviará al navegador del dispositivo de control remoto y se mostrará, y la entrada del usuario se recopilará y enviará al "maestro" real. Es como si estuviera controlando de forma remota un dispositivo "maestro".

La ventaja de esta solución es que es fácil de implementar, utiliza tecnologías front-end existentes y tiene una buena compatibilidad, que es universal tanto en Android como en IOS.

Sin embargo, las desventajas también son obvias: (1) El dispositivo de control remoto en sí mismo no se puede usar para realizar pruebas, lo que desperdiciará un dispositivo. (2) Si el tamaño de resolución del dispositivo de control remoto y el dispositivo de control principal no son consistentes, el efecto de visualización que se muestra en el dispositivo de control remoto se escalará y el efecto de visualización será deficiente.

2. Solución de cliente de Android

Esta solución es para aprovechar la apertura de la plataforma Android.Hydra proporciona un cliente Android, que se puede controlar directamente cuando se usa este dispositivo como maestro. El cliente de Hydra recopilará la entrada del usuario y controlará directamente todos los dispositivos "esclavos" en un grupo.

Entonces, ¿cómo capturar la entrada del usuario?

El cliente creará una ventana flotante de doble capa en el teléfono móvil por adelantado. Cuando el usuario controla el teléfono móvil (por ejemplo, el usuario hace clic en las coordenadas (400, 1000) aquí, las coordenadas de la acción táctil serán interceptadas por la capa n.° 1. Si el usuario hace clic en un botón virtual como Atrás, entonces el It es interceptado por la capa n.° 2. Cuando se obtienen las coordenadas de la acción y la información clave, el cliente envía esta información al motor de control de grupo y "copiar" activa todas las máquinas "esclavas" para que se ejecuten. la acción del usuario ha sido interceptada, estas acciones no pueden surtir efecto directamente. Por lo tanto, el cliente Hydra también incluye un motor de ejecución en miniatura, que puede interpretar las acciones del usuario y realizar operaciones en el dispositivo actual.

Con base en las dos soluciones anteriores, es posible permitir usuarios para usar dispositivos móviles Viene con la capacidad de controlar múltiples máquinas en una sola máquina.

Cuarto, el efecto de aterrizaje de Hydra.

Hydra se ha implementado en múltiples líneas de negocios dentro de Baidu y ha logrado retornos positivos en varios escenarios comerciales, como regresión de aplicaciones, pruebas de publicidad y actividades operativas, con una mejora de eficiencia semanal promedio de 20% a 70%.

Por supuesto, Hydra también tiene ciertas limitaciones, que no son aplicables en algunos escenarios o el efecto no es obvio:

1. No es adecuado para escenarios de control de grupo, como el inicio de sesión de diferentes cuentas, que debe implementarse con un esquema de entrada personalizado externo.
2. Es un clic en un ícono con un fondo dinámico, como un video, que tiene un cuello de botella relativamente grande en el reconocimiento.
3. Es un caso de uso con un enlace de operación largo y un tipo de operación complejo.Después de un cierto período de control de grupo, la probabilidad de inconsistencia aumentará.
4. Algunas operaciones de gestos complejas como zoom, rotación, etc. aún no son compatibles. Estamos continuamente optimizando y mejorando los problemas anteriores.

Cinco, mejorar aún más la eficiencia de las pruebas manuales: caja de herramientas

Por lo general, cuando completamos la prueba manual del terminal móvil, necesitamos probadores para encontrar las herramientas necesarias para completar la prueba, aprender y usarlas. Este proceso de prueba tiene un cierto costo de aprendizaje y el efecto es difícil de garantizar. Hydra es una herramienta para mejorar la compatibilidad manual en terminales móviles. Este modo de uso también refleja nuestro pensamiento en el campo de las pruebas manuales en terminales móviles: se necesita un "puente" entre los probadores y el equipo, que es una caja de herramientas que se puede usar -of-the-box para lograr objetivos de prueba específicos.

Además, puede ser un proceso de prueba que estandarice el proceso de prueba manual, y esta estandarización se refleja en la definición de tareas de prueba, el uso de herramientas, la recopilación de datos de prueba y la verificación de resultados. Según el escenario de prueba, se pueden seleccionar recomendaciones para el conjunto de herramientas utilizado en cada etapa. También se puede conectar con sistemas externos de gestión de casos y seguimiento de errores para formar un circuito cerrado. De esta manera, para las pruebas manuales, no solo se pueden mejorar las tareas de prueba locales, sino también la eficiencia general de finalización.

Enlace original: https://mp.weixin.qq.com/s/OHmWsHS-_ANrNXj8c5bDNg

 

¡La cuenta pública técnica oficial de Baidu Architect
Baidu está en línea!
Productos secos técnicos · Información de la industria · Salón en línea · Conferencias de la industria Información de
reclutamiento · Información de introducción · Libros técnicos · Periféricos de Baidu
¡Bienvenidos todos los estudiantes a prestar atención!

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4939618/blog/4955327
Recomendado
Clasificación