¿Cómo probar algoritmos en pruebas de software?

Los algoritmos en un sentido amplio se refieren a soluciones a problemas, que van desde la resolución de problemas matemáticos hasta la formulación de estrategias comerciales, todos los cuales pueden denominarse algoritmos.
El algoritmo en pruebas de software que estamos discutiendo hoy corresponde a la palabra inglesa Algorithm, que se refiere a programas o
instrucciones para que las computadoras enfrenten problemas complejos.

Con el rápido desarrollo de la inteligencia artificial y otros campos en los últimos años, los algoritmos han recibido una atención sin precedentes y también han surgido las pruebas de algoritmos. |

Para que los estudiantes tengan una cierta comprensión de las pruebas de algoritmos y las reglas antiguas, primero publicaré el esquema de este artículo de la siguiente manera:

1. ¿Qué mide la prueba del algoritmo?
2. ¿Cómo hacer la prueba del algoritmo?
3. Un caso de prueba del algoritmo complementario
4. Responda las preguntas

1. ¿Qué mide la prueba del algoritmo?

Veamos primero algunos ejemplos de aplicación exitosa de algoritmos conocidos:

1. El robot AlphaGo derrotó al ajedrecista humano, de hecho, utilizó complejos algoritmos de inteligencia artificial

2. Las aplicaciones como Toutiao y Douyin usan el algoritmo de interés para recomendar, y el empuje es todo lo que le interesa

3. Software de compra, cualquier producto que haya buscado le preocupará: recomendación directa, que también utiliza el mecanismo de recomendación de algoritmo
inserte la descripción de la imagen aquí

A diferencia de las pruebas funcionales generales, las pruebas de algoritmos tienen un enfoque diferente.

Las pruebas funcionales generales se enfocan en la corrección de los datos devueltos por el servidor después de las operaciones front-end (adición, eliminación, modificación y verificación), mientras que las pruebas de algoritmos se enfocan en si el incremento de datos (positivo o negativo) cumple con las expectativas después del algoritmo (modelo). ) está habilitado.

dar dos ejemplos

Ejemplo 1: La recomendación de publicidad en cierto software ha actualizado un conjunto de algoritmos, y se espera que aumente la tasa de conversión de recomendación en varios puntos porcentuales.

[El enfoque de la prueba es] si el nuevo algoritmo ha aumentado el porcentaje de la tasa de conversión y si el aumento ha alcanzado las expectativas.

Ejemplo 2: un software de reconocimiento de rostros ha actualizado el algoritmo de reconocimiento, lo que se espera que reduzca el tiempo de reconocimiento.

[El enfoque de la prueba es] si la tasa de precisión ha disminuido mientras se reduce el consumo de tiempo.

2. ¿Cómo probar el algoritmo?

1. El método utilizado en las pruebas funcionales ordinarias.

1) Prueba de estabilidad del algoritmo

a) De larga duración, si el algoritmo falla

b) Después de aumentar la cantidad de datos, si los resultados del modelo de algoritmo cumplen con las expectativas

2) Prueba de rendimiento del algoritmo

a) Tiempo de respuesta del modelo algorítmico

b) Consumo de CPU y disco del modelo de algoritmo

3) Prueba de compatibilidad de algoritmos

a) Establecer los datos dentro de diferentes umbrales y si los resultados del algoritmo son estables (como la edad del usuario, la región, el sexo, etc.)

El método de prueba mencionado anteriormente, ¿te parece familiar? Así es, estos métodos de prueba son básicamente los mismos que se utilizan en las pruebas funcionales ordinarias.

2. Métodos de prueba que no se utilizan en las pruebas funcionales ordinarias

1) Algoritmo pk (carreras de caballos)

Para un requerimiento, diferentes personas o equipos pueden diseñar diferentes modelos de algoritmos, cuál es más confiable, si es una mula o un caballo, puedes saberlo de un vistazo.

Este enlace es una parte clave de las pruebas de algoritmos. El diseño de casos de uso adopta principalmente el método de escenarios. Al enumerar diferentes escenarios, se prueban y verifican múltiples algoritmos por separado. Finalmente, el rendimiento de los modelos de algoritmos en todos los escenarios se selecciona exhaustivamente para seleccionar el los mejores

Puede que tengas dudas: ¿Por qué necesitas los primeros puestos?, ¿No es suficiente elegir el primer lugar?

Los casos de prueba en este enlace se enumeran a continuación a través de ejemplos, que pueden comprender mejor las razones para diseñar los casos de uso de esta manera (no se enumeran aquí por el momento).
inserte la descripción de la imagen aquí

2) Pruebas A/B

Dado que la precisión del algoritmo se verá afectada por los datos de prueba, en el entorno de prueba, la fuente de los datos generalmente se inserta manualmente en la base de datos o se importa desde la línea.

Aunque los datos de prueba estarán cerca de los datos reales, aún habrá problemas como cobertura insuficiente de tipos de datos y volumen de datos insuficiente. Por lo tanto, incluso si el modelo de algoritmo pasa la prueba de aceptación en el entorno de prueba, aún no se puede escalar por completo en el entorno de producción.

El método habitual es: sacar del 5% al ​​10% del tráfico en línea, parte de los datos se usa como grupo de control y la otra parte se usa como uno o más grupos experimentales (el algoritmo utilizado por el grupo experimental es el algoritmo superior en pk). Los datos del grupo experimental de combinación de control se marcan con diferentes marcas, y después de un período de tiempo, los elementos calculados estadísticamente se refieren a los indicadores del grupo experimental de combinación de control, y la efectividad del algoritmo se verifica de acuerdo con los indicadores clave.
inserte la descripción de la imagen aquí

En la prueba real, la selección del algoritmo a menudo no está determinada por un indicador, sino por una comparación exhaustiva de múltiples indicadores.

Al ver esto, si todavía está un poco confundido, no se preocupe, también usamos el siguiente ejemplo para ilustrarlo.

3. Ejemplo de prueba de algoritmo

Una aplicación de navegación necesita actualizar el algoritmo de recomendación de rutas de navegación, y se espera que encuentre una ruta que consuma menos tiempo y la recomiende al usuario.

En primer lugar, entendamos la palabra clave "menos tiempo" en los requisitos: el tiempo no es igual a la distancia. Es posible que la distancia sea corta, pero hay un atasco de tráfico, que en realidad lleva más tiempo que los desvíos.

Después de n días de investigación y desarrollo, el compañero de clase de algoritmos finalmente proporcionó 3 modelos de algoritmos optimizados, y ahora es el momento de las pruebas y la verificación.

Para facilitar la descripción, llamo al antiguo algoritmo de recomendación de ruta de navegación Algoritmo 0, y los nuevos algoritmos son Algoritmo 1, Algoritmo 2 y Algoritmo 3

1. Algoritmo pk (la siguiente es una lista de casos de prueba basados ​​en escenarios)

Para la misma ruta, el valor predeterminado es la hora y las condiciones meteorológicas actuales. Después de varias rondas de pruebas, se selecciona el algoritmo óptimo, asumiendo el Algoritmo 2

Para la misma ruta, establezca diferentes períodos de tiempo (horas pico de la mañana y de la tarde, días laborables, días festivos, etc.) para encontrar el algoritmo óptimo, suponiendo que sea el Algoritmo 1

Para la misma ruta, establezca diferentes condiciones climáticas (lluvia, nieve, truenos, arena, granizo, etc.) para encontrar el algoritmo óptimo, asumiendo que es el Algoritmo 3

Hay muchos otros escenarios para probar, así que no los enumeraré uno por uno aquí...

2. Prueba de estabilidad

Ejecute el modelo de algoritmo durante mucho tiempo (más de 24 horas), ya sea que tenga un rendimiento estable, asumiendo que el algoritmo óptimo aquí es el Algoritmo 1

Modelo de algoritmo de prueba de ultra larga distancia (más de 1000 km), compare si el efecto de recomendación es estable, asumiendo que el algoritmo óptimo aquí es el Algoritmo 2

……

3. Prueba de compatibilidad

Seleccione pruebas de carretera en diferentes ciudades (como Chongqing, Guizhou, etc.) y pruebe el rendimiento del algoritmo de recomendación de navegación en diferentes condiciones de carretera, como carreteras de montaña, escaladas y giros. Suponga que el algoritmo óptimo aquí es el Algoritmo 1

Seleccione carreteras con diferentes capacidades de tráfico (carreteras urbanas y rurales, etc.) y pruebe si el algoritmo de recomendación funciona en diferentes condiciones de carretera, como carreteras pequeñas y estrechas.

Rendimiento estable, asumiendo que el algoritmo óptimo aquí es el Algoritmo 3

……

4. Prueba de rendimiento

Para el consumo de tiempo de diferentes modelos de algoritmos bajo la misma ruta, se supone que el algoritmo que consume menos tiempo es el Algoritmo 3

Bajo la misma ruta, la presión de diferentes modelos de algoritmos en el servidor, asumiendo que el resultado final es que el algoritmo 2 tiene la menor presión en el servidor

……

5. Prueba AB

Después de las pruebas de los varios enlaces anteriores, se integran todos los resultados, suponiendo que el algoritmo 1 y el algoritmo 3 seleccionados finales

La escala de grises en línea es pesada, seleccione los usuarios objetivo y los usuarios seleccionados recibirán un mensaje como "si desea participar en la beta cerrada/escala de grises"

Después de un período de pruebas A/B, obtenga los datos reales y, finalmente, seleccione un algoritmo que cumpla con las expectativas después de conversaciones con arquitectos, gerentes de I + D y gerentes de productos.

Cuarto, respondiendo preguntas.

En el ejemplo anterior, se supone que finalmente se adopta el Algoritmo 2, pero es posible que tenga muchas preguntas:

1. El algoritmo 1 funciona mejor durante las horas pico de la mañana y la tarde. Solo uso el software de navegación para ir al trabajo, ¿por qué no usarlo?
2. El algoritmo 3 toma menos tiempo. Solo quiero que la ruta recomendada sea más rápida, ¿por qué no usarla?

La prueba del algoritmo debe pasar por múltiples enlaces para evaluar el efecto de manera integral, por lo que incluso si un determinado enlace funciona bien, es posible que no se seleccione al final.

Al final, se combinarán varios factores, como el efecto, el costo y la estabilidad, y al final a menudo se elegirá un compromiso.

¿Cómo probar el algoritmo en el software? ¿Lo entiendes?

Supongo que te gusta

Origin blog.csdn.net/nhb687096/article/details/131807925
Recomendado
Clasificación