Inspección de tráfico en línea y tecnología de aceptación de prueba de terminal de servicio de transporte de automóviles en línea

Resumen

Didi online car-hailing tiene el compromiso de hacer mejores los viajes, la plataforma brinda a los conductores y pasajeros una buena experiencia y al mismo tiempo transporta los servicios de viaje de las masas, lo que nos hace tener mayores requerimientos de disponibilidad del servicio. Encontrar errores del sistema más rápido puede afectar a menos conductores y usuarios. La capacidad de encontrar errores es más refinada, lo que puede hacer que sea más fácil encontrar algunos errores que los usuarios no perciben fácilmente pero que en realidad afectan el uso de los productos de los usuarios. El servidor de solicitud de automóviles en línea lleva a cabo el trabajo general de la serie de enlaces del proceso de transacción central del servicio de solicitud de automóviles en línea, que cubre escenarios de transacciones de un millón de niveles, y el enlace de transacción central involucra cientos de llamadas de servicio descendente, que tiene un mayor impacto en nuestro trabajo de aseguramiento de la calidad alto desafío. Este documento propone la idea de separar los desencadenantes del tráfico de prueba de los resultados de la prueba y, en base a esta idea, se llevan a cabo dos prácticas, a saber, la inspección del tráfico en línea con el objetivo de recordar errores de código más rápido en línea y fuera de línea con el objetivo de mejorar prueba de eficiencia La aceptación del tráfico de prueba.

Antecedentes y desafíos

El servidor de transporte de vehículos en línea lleva a cabo el trabajo general de la serie de enlaces del proceso de transacción central del servicio de transporte de vehículos en línea, que cubre millones de escenarios de transacciones detallados, y el enlace de transacciones central involucra cientos de servicios posteriores. Esto insta a que nuestros métodos de garantía de calidad combinen grosor y detalle, lo que no solo puede garantizar la disponibilidad del servicio de los negocios principales, sino también garantizar el correcto funcionamiento de los escenarios de usuarios masivos. Para el aseguramiento de la calidad, en la etapa en línea, nuestro principal desafío es que la escala de los escenarios comerciales es demasiado grande y es difícil realizar una configuración detallada para el monitoreo comercial relacionado. En la etapa fuera de línea, nuestro principal desafío es que cualquier modificación puede traer una nueva carga de trabajo de prueba de funciones de docenas de categorías y miles de escenarios.Se produce una falla importante del sistema. Con este fin, el servicio de transporte de automóviles en línea utiliza la idea de la separación de la activación del tráfico de prueba y la verificación de los resultados de la prueba, establece métodos de monitoreo de tráfico a nivel de escena en línea y utiliza métodos de aceptación normalizados de herramientas múltiples fuera de línea para aprovechar al máximo el capacidades de cobertura de tráfico de múltiples herramientas, mejorando en gran medida Reducir la proporción de pruebas manuales.

En el curso de dicha garantía de calidad del servicio, descubrimos que algunos de los métodos de garantía comunes en la industria, como la automatización, la reproducción del tráfico y el monitoreo del servicio, tienen capacidad más que suficiente para verificar la lógica comercial altamente compleja.

  • Automatización : como el medio más convencional, la automatización juega un papel indispensable en la garantía de calidad del servidor de transporte de vehículos en línea. Puede tener el efecto de la detección temprana de fallas que tienen un gran impacto en la escena central. Pero su desventaja es que la cobertura de escenarios refinados y puntos de control requiere un costo muy alto. Los puntos de control refinados aquí se refieren a una gran cantidad de lógicas de interacción ascendentes y descendentes que a menudo se encuentran en la prueba de interfaz del enlace principal de transporte de automóviles en línea. transacciones confirmación.

  • Reproducción de tráfico : la reproducción de tráfico, como método de garantía para escenarios de bajo costo y alta cobertura, también se aplica a menudo al trabajo de control de calidad del servidor. Sin embargo, a menudo se basa en el entorno fuera de línea y otras dependencias, como números de cuenta, etc., y tiene un grado de simulación suficientemente alto. Al mismo tiempo, el proceso de encontrar fallas a menudo va acompañado del procesamiento de una gran cantidad de ruido de diferencia no válido, y es difícil determinar rápidamente "qué es lo que está mal" en el sistema comercial.

  • Monitoreo de negocios : El monitoreo de negocios es el método de detección de fallas más común en la etapa en línea, que muchas veces puede lograr una mejor cobertura y una detección y seguimiento más rápidos. Sin embargo, su posicionamiento generalmente se establece como un indicador básico y un indicador general de gran impacto, y generalmente se emite una alarma cuando el rendimiento del sistema supera un umbral o rango de umbral fijo.El establecimiento de cada indicador de alarma depende de la transformación técnica de el sistema empresarial para apoyar la recopilación de datos. Este método determina que no puede configurar indicadores de monitoreo con alta flexibilidad y puntualidad, y no puede monitorear de manera estable escenas pequeñas sin reglas específicas de desempeño.

Con base en el análisis anterior, el servidor de transporte de automóviles en línea espera un método de reconocimiento de fallas que pueda cubrir una lógica de verificación altamente compleja con alta certeza a un bajo costo, lo que reduce aún más el impacto de las fallas en línea.

En el trabajo de garantía de calidad de algunas empresas de transporte de automóviles en línea, adoptamos la idea de separar la activación del tráfico de prueba de la verificación de los resultados de la prueba, y entregamos el trabajo de activación del tráfico de prueba a la parte del servicio con cambios comerciales y a otras partes únicamente. Resultados de las pruebas internas realizadas Verificación. Registramos el tráfico de prueba de los evaluadores de la parte de cambio y aplicamos las reglas comerciales correspondientes para verificar los resultados de la interacción del servicio de ambas partes, y transmitimos de manera transparente la información de error (información de falla de coincidencia de tráfico, información de falla de verificación del motor de reglas) a los probadores de la parte de cambio, para ayudarlo a verificar la lógica de interacción entre el servidor de cambio y otros servidores. De esta manera, se puede realizar la prueba de circuito cerrado y la verificación de resultados del probador de la parte de modificación.

Durante este proceso, tenemos las siguientes dos experiencias exitosas:

  • Después de que el disparador de tráfico de prueba se separe de la verificación del resultado de la prueba, podemos entregar el disparador de tráfico de prueba al desarrollo/prueba de la parte de modificación, y solo enfocarnos en resolver la verificación del resultado de la prueba, para resolver el problema que algunas empresas no están cerrados dentro del equipo.

  • Hemos practicado un conjunto de métodos para reemplazar la verificación de prueba manual con la verificación de reglas.

Separación de activación de tráfico de prueba y verificación de resultados de prueba

La activación del tráfico de prueba y la verificación del resultado de la prueba no son tecnologías nuevas. En nuestros métodos tradicionales de control de calidad, como la automatización y la reproducción del tráfico, podemos dividirlo en dos pasos: activación del tráfico de prueba y verificación del resultado de la prueba. Específicamente como se muestra en la siguiente figura:

En términos de creación de solicitudes, la automatización se realiza a través de la construcción manual, mientras que la reproducción del tráfico se realiza mediante la grabación del tráfico activado por los usuarios en línea. En términos de verificación de resultados de pruebas, la automatización se logra escribiendo verificaciones de aserción, mientras que la reproducción del tráfico se logra a través de diff.

Después de separar la activación del tráfico de prueba de la verificación del resultado de la prueba, podemos concentrar nuestra potencia de fuego y hacer esfuerzos separados en las dos dimensiones según sea necesario.

  • En la dimensión de la activación del tráfico de prueba, solo podemos centrarnos en la cobertura de la herramienta para el escenario comercial y utilizar diferentes métodos de prueba en combinación con el objetivo de mejorar la cobertura. Los métodos de prueba aquí no se limitan a los métodos de prueba instrumentales, el proceso de práctica nos dice que para las nuevas funciones iterativas, siempre tenemos una cierta proporción de activadores de tráfico para completarse manualmente. Aquí controlamos principalmente dos puntos centrales: la cobertura del tráfico de prueba en escenarios comerciales, la repetición y el costo de los desencadenantes de escenarios de prueba. Para el primero, cuando tenemos un conjunto total de escenarios de prueba, es fácil medirlo. Para este último, nos enfocamos en la cantidad de rondas de prueba que deben realizarse, el método de activación del tráfico y el costo de activación de cada ronda de prueba con el objetivo de cumplir con ciertos requisitos de calidad. Aquí analizamos las pruebas de RD/QA de manera unificada. En general, se cree que usar el método de prueba de menor costo para completar más rondas de pruebas es una buena manera en términos de eficiencia.

  • En la dimensión de verificación de resultados de pruebas, solo nos enfocamos en la cobertura de la herramienta hasta el punto de control comercial y usamos la cobertura aceptable como condición para determinar el límite de aplicación de este método. El punto de control comercial aquí es verificar que los servicios proporcionados por el código iterativo se ajusten al escenario comercial. El alcance de la verificación incluye parámetros de entrada de interfaz, viajes de negocios, llamadas descendentes, lectura de configuración, datos almacenados, etc.

Por el lado del servicio de transporte de automóviles, basados ​​en la idea de separar los desencadenantes de tráfico de prueba de los resultados de la prueba, hemos realizado dos prácticas, que se presentarán en detalle a continuación.

Inspección de tráfico en línea: 0 pruebas activan la verificación de resultados completos

El objetivo de la inspección de tráfico en línea

La inspección de tráfico en línea es una práctica para que el servidor de transporte de vehículos separe la activación del tráfico de prueba y la verificación de los resultados de la prueba. Al implementar esta idea en el entorno de producción, podemos lograr los siguientes objetivos:

  • Completar el objetivo de una activación de tráfico más completa (cobertura de escenarios) a un costo casi nulo: consideramos que cada solicitud de usuario real al sistema es una prueba del sistema, y ​​la verificación de los resultados del tráfico de usuario real se completa una vez que se verifica el estado del sistema. Evita las desventajas del alto costo de cobertura de escena de la automatización y otros medios.

  • Los elementos de tráfico cubiertos por el control de salud del servicio son más completos: además de cubrir los parámetros de entrada y salida del tráfico, también cubre el flujo ascendente y descendente, el almacenamiento, la configuración, etc. en el enlace de llamada de la interfaz, de modo que la capacidad de encontrar problemas es más fuerte.

  • Ningún rastro en el entorno de producción.

Programa general

Los métodos convencionales, como la reproducción de tráfico, generalmente creen que el tráfico histórico del sistema en línea siempre es correcto y utilizan dicho tráfico para reproducirlo fuera de línea para completar la verificación de corrección del sistema transformado. La inspección de tráfico en línea siempre se compromete a encontrar tráfico histórico problemático en el sistema en línea.Este tráfico problemático es el tráfico generado cuando se producen errores de código en el sistema en línea. De esta manera, es más rápido encontrar que el sistema en línea está "enfermo". En la solución técnica general, compartimos la capacidad de grabar el tráfico con la reproducción del tráfico, pero en el procesamiento del tráfico, nuestro camino y pensamiento son completamente opuestos.

  • Concéntrese en encontrar la parte del grupo de tráfico que no está funcionando como se esperaba.

  • El tráfico se divide en cubos (las condiciones de cubo se componen de reglas formadas por elementos de tráfico), y el objetivo del cubo es encontrar el escenario de atribución de cada tráfico.

  • Verifique el tráfico después del depósito, y el contenido de la verificación es la verificación lógica del escenario comercial al que pertenece el tráfico.

La estructura general de la inspección de tráfico en línea se muestra en la siguiente figura. El flujo de procesamiento central incluye: registro de tráfico, análisis y procesamiento de tráfico, agrupamiento y verificación de tráfico y alarma anormal.

A continuación se detalla el plan de implementación, de la siguiente manera:

  • Registro de tráfico : el contenido del registro de tráfico son solo los elementos de tráfico que nos interesan: parámetros de entrada de interfaz, viajes de negocios, parámetros de entrada de llamadas descendentes, viajes de negocios, lecturas y escrituras dependientes de la configuración, lecturas y escrituras dependientes de la base de datos y lecturas de registros públicos y escribe La capacidad de registro de tráfico proporcionada por la herramienta de reproducción de tráfico fastdev de desarrollo propio de Didi satisface la mayoría de nuestras demandas. Al mismo tiempo, esta herramienta ha completado la cobertura de la mayoría de los servicios del servidor Didi. El contenido grabado se presenta como un flujo de bytes y debe ingresar al módulo de preprocesamiento de datos.

    Después de registrar los elementos de tráfico de la interfaz única de usuario en línea, almacene el tráfico en línea frente al ES, extraiga la información confidencial de los datos originales, cifre y use los datos cifrados para reemplazar parcialmente la información confidencial. cifrar los datos confidenciales y, finalmente, almacenar la información de registro de tráfico cifrada.

  • Análisis y procesamiento del tráfico : el preprocesamiento del tráfico incluye pasos como el flujo de bytes para completar el análisis del protocolo de la capa de aplicación, el filtrado de datos anómalos y la extracción de elementos clave del tráfico. El objetivo es obtener un tráfico normalizado que puedan utilizar los motores de reglas posteriores.

  • Clasificación y verificación del tráfico : el método de clasificación del tráfico y el contenido de verificación están relacionados con el negocio. Después de que el escritor ordena la lógica comercial, escribe las condiciones de coincidencia de la escena y los puntos de verificación de la escena.

  • a. El sistema general adopta el diseño de reglas semánticas basado en compilación dinámica. El usuario da instrucciones semánticas para definir las expectativas de tráfico de la interfaz. Una unidad de operación es principalmente responsable de hacer coincidir los escenarios comerciales y verificar las expectativas comerciales de acuerdo con el conjunto de instrucciones. El cálculo de instrucciones específicas utiliza dinámico El método de compilación llama a la función de biblioteca correspondiente para su procesamiento.

  • b.Para mejorar la velocidad de procesamiento, se adopta la computación distribuida y las tareas de computación se dividen en datos, pero los resultados finales del procesamiento se regulan de manera uniforme.

  • c. Para evitar cálculos repetidos, los resultados del procesamiento se procesan y almacenan. Antes de que comience la tarea de cálculo, las características del tráfico se procesan para averiguar si hay resultados de procesamiento relevantes. Si los hay, los resultados almacenados en caché se utilizan directamente como resultado final.

  • Alarma anormal : cuando el motor de reglas de la inspección en línea verifica los resultados y encuentra tráfico que no se ajusta a la lógica comercial, emitirá una alarma de acuerdo con la estrategia de alarma. La información de alarma incluye el seguidor, información de error de tráfico e información auxiliar para solución de problemas, etc

  • a.La estrategia de alarma considera el escenario de la aplicación comercial, y hay varias opciones para que los usuarios elijan libremente: verificación fuerte de falla, tasa de falla que alcanza el umbral y alarma de tráfico anormal.

  • B. La estrategia de alarma conduce a la agrupación de alarmas para reducir la frecuencia de las alarmas y, al mismo tiempo, puede atribuir fácilmente las alarmas.

El punto clave central aquí es segmentar el tráfico y verificar las reglas a través de reglas compuestas por muchos elementos del tráfico en sí, en lugar de un indicador macro preestablecido.

ganancias actuales

A principios de 2020, el servidor de transporte de automóviles en línea comenzó a implementar el método anterior para el trabajo de control de calidad. Para 2023, la mayoría de los servicios en el extremo del servidor han sido cubiertos. La recuperación oportuna de más de 100 errores en línea cada año hace que es una herramienta eficaz para la calidad en línea.

Debido a la precisión y sensibilidad de sus alarmas, la inspección en línea se puede aplicar ampliamente a las necesidades diarias, como un medio efectivo para verificar resultados y descubrir problemas de manera oportuna durante el proceso de cambio de requisitos.

Los beneficios de usar muchos servicios de plataforma o servicios intermedios en el lado de la persona que llama al servicio son aún más impresionantes.

Planificación posterior

Se ha demostrado que la tecnología de inspección en línea actual es adecuada para el modo de control de calidad del servidor de transporte de automóviles en línea y puede reflejar el entorno de producción con mayor sensibilidad durante el proceso de cambios en la demanda en escala de grises. En la actualidad, el servidor de transporte de automóviles en línea está mejorando aún más la cobertura de inspección en línea de los requisitos iterativos y ha encontrado errores de código muchas veces en el proceso de cambiar la escala de grises, recordar rápidamente los problemas en línea y detener las pérdidas a tiempo.

Aceptación de pruebas: deduplicación de activadores de pruebas y verificación de resultados normalizados

Objetivo de la aceptación de la prueba

La aceptación de la prueba es otra práctica del servidor de transporte de vehículos en línea para separar la activación del tráfico de prueba y la verificación de los resultados de la prueba. Esta práctica se aplica principalmente al entorno fuera de línea. Los objetivos principales son:

  • Instrumentación de prueba: con el objetivo de aumentar la proporción de disparadores de tráfico instrumentados y los índices de verificación de resultados de prueba, las herramientas cubren continuamente los escenarios de prueba manual.

  • Deduplicación del disparador de tráfico de prueba: por medio de la verificación de resultados normalizados, se pueden verificar los resultados de diferentes métodos de prueba y diferentes fuentes de datos de prueba para evitar pruebas repetidas.

fondo

Debido a sus características comerciales y de servicio, el método de prueba actual del servidor de transporte de automóviles en línea es una prueba de caja blanca pura. Durante el proceso de prueba, el control de calidad debe completar una prueba de servidor de un solo sistema destinada a cubrir todos los códigos modificados y una prueba de servidor de enlace completo que cubra todas las superficies afectadas. Como tal, nos enfrentamos a los siguientes desafíos:

  • Un requisito típico nuestro tiene muchas pruebas repetidas entre diferentes roles, como RD, QA y PM, así como muchas pruebas repetidas entre diferentes QA de servicio (QA de servidor, QA de cliente, QA de política de algoritmo).

  • En la industria, tales problemas a menudo utilizan automatización/herramientas para completar todo el proceso de prueba para mejorar la eficiencia de las pruebas repetidas. En el lado del servidor Didi, nos enfrentamos a la limitación de una sola herramienta, lo que lleva al costo extremadamente alto de usar una sola herramienta para cubrir todos los escenarios de prueba y puntos de control.

En algunos modelos de prueba y aceptación comercial modificados unilateralmente, hemos practicado la viabilidad de reemplazar la verificación manual con verificación instrumental. En el negocio interno de circuito cerrado, podemos usar herramientas para activar el tráfico en lugar de activarlo manualmente para mejorar la eficiencia de la activación del tráfico.

Plan general y práctica de aplicación.

El punto clave para resolver los problemas anteriores es encontrar un medio que pueda cubrir la mayoría de los escenarios de verificación de prueba, y la tecnología de inspección en línea resuelve nuestro problema. Podemos convertir la mayoría de los escenarios de verificación de la prueba del servidor de transporte de automóviles en línea en reglas de coincidencia de tráfico + reglas de verificación para inspecciones en línea. A diferencia de las inspecciones en línea, en entornos fuera de línea, se deben considerar los activadores de tráfico de prueba. Al mismo tiempo, la consistencia de la solución técnica nos permite convertir las reglas de aceptación escritas fuera de línea para mejorar la eficiencia de las pruebas y ejecutarlas en línea directamente en reglas de inspección de tráfico en línea para verificaciones del estado del servicio en el entorno de producción.

Cuando aplicamos las reglas de inspección de tráfico en línea al tráfico de prueba fuera de línea, hemos completado la verificación de los resultados de la prueba. Lo que debemos hacer ahora es cubrir la etapa de activación del tráfico de prueba con las herramientas de menor costo. Entre ellos, para la iteración de nuevos requisitos, dividimos los escenarios de prueba en escenarios de regresión + escenarios de prueba de nueva función. Para escenarios de regresión, la mayoría de nuestras capacidades de activación de tráfico son fundamentales. Para nuevos escenarios de prueba de funciones, este modo tiene las siguientes tres etapas en el proceso de evolución:

  • Una proporción relativamente grande de escenarios de prueba activados manualmente: en este momento, nuestro principal beneficio es la verificación de los resultados de la prueba, que se puede aplicar a escenarios como: nuevas pruebas de acceso a funciones para requisitos de prueba y requisitos de autoprueba de RD.

  • Aumentar continuamente la proporción de escenarios de prueba activados por herramientas: en esta etapa, buscamos constantemente escenarios que no puedan activarse con herramientas y reducimos continuamente la proporción de escenarios de prueba activados manualmente mejorando las capacidades de las herramientas u otros métodos.

  • Activación superior o completa basada en herramientas: el trabajo principal del control de calidad en esta etapa es diseñar casos de prueba basados ​​en requisitos y soluciones técnicas, e implementar métodos de activación basados ​​en herramientas y escribir reglas de verificación basadas en casos de uso. activación y prueba Después de la verificación, se proporciona un informe de prueba, el error se envía a I + D y los pasos anteriores se repiten hasta que se completa la entrega de la prueba.

Al mismo tiempo, las reglas escritas para la aceptación de pruebas fuera de línea se transforman en reglas para la inspección del tráfico en línea durante el proceso de lanzamiento de la demanda, y el estado de los servicios en línea se prueba durante la fase de lanzamiento/intensiva de la demanda. El proceso de entrega es el siguiente, como se muestra en la figura.

ganancias actuales

En el proceso de recopilación e implementación de pruebas, los indicadores de proceso a los que principalmente prestamos atención son la cobertura de escenarios de herramientas y la tasa de mejora de la eficiencia de las pruebas de los indicadores de resultados.

  • El servidor de transporte de vehículos en línea obtuvo inicialmente alrededor del 40 % de los beneficios de la mejora general de la eficiencia de las pruebas en los proyectos correspondientes a través del piloto comercial.

  • En la práctica, se ha encontrado que los beneficios de la mejora de la eficiencia de las pruebas son más evidentes para los servicios con enlaces largos en escenarios de prueba y requisitos con más rondas de prueba.

Resumen y Outlook

En la exploración de los métodos de prueba y garantía de calidad del servidor de transporte de automóviles en línea, debido al modelo comercial y la arquitectura del sistema, hay muchos servicios "gruesos" en el sistema, lo que conduce a una alta complejidad de prueba. Cuando el grado de acoplamiento del servicio es alto y el enlace de la llamada es enorme, la empresa tiene requisitos muy altos en cuanto a la estructura de datos, la estabilidad del entorno y las capacidades de verificación de herramientas. Confiando en una sola capacidad tradicional para resolver todos los problemas, en exploraciones anteriores, pagamos un costo humano muy alto. También nos hacemos constantemente una pregunta, ¿por qué nuestra prueba es tan difícil y la inversión tan alta? ¿Por qué debemos hacer pruebas de caja blanca? En el proceso de análisis interno continuo y referencia externa, las características comerciales y los métodos apropiados de garantía de calidad de los servicios de viaje se han ido aclarando gradualmente. En la actualidad, nuestra exploración continúa y no hemos resuelto por completo todos los problemas de las pruebas del lado del servidor, pero siempre estamos en el camino y nunca nos detenemos ~

Preste atención a la cuenta pública de Didi Technology y obtenga productos secos más técnicos

Supongo que te gusta

Origin blog.csdn.net/DiDi_Tech/article/details/131923178
Recomendado
Clasificación