¿Qué son las pruebas basadas en modelos?

Las pruebas basadas en modelos son un método de prueba en el campo de las pruebas de software. Los pasos de MBT son los siguientes:

Las pruebas convencionales generalmente implican que humanos diseñen varios escenarios de prueba específicos y luego afirmen los resultados de la prueba. Casos de prueba arreglados. Falta de incertidumbre. Las pruebas basadas en modelos requieren implementar un modelo y luego formular la relación entre comportamiento y comportamiento y la relación entre comportamiento y sistema (máquina de estados finitos), y luego probar el sistema de acuerdo con el estado del sistema bajo prueba y las restricciones establecidas previamente. y se utilizan estrategias para generar muchos casos de uso (los casos de uso generados serán diferentes cada vez que se ejecuta). Los resultados de las pruebas se ven afectados por una serie de operaciones, lo que puede producir incertidumbre, y es más probable encontrar ERRORES en algunos. caminos profundos inesperados.

Las pruebas basadas en modelos incluyen principalmente las siguientes partes:

1. Programa modelo: aquí se definen algunas operaciones (acciones) que se pueden realizar en el sistema bajo prueba, como crear una máquina virtual, eliminar una máquina virtual, etc. También existen condiciones bajo las cuales se pueden ejecutar estas operaciones (xxx_enabled) y el estado del sistema bajo cada operación (estado).

2. Arnés de prueba/Paso a paso/adaptador: acceda al sistema bajo prueba e implemente específicamente las operaciones (acciones) definidas en el modelo.

3. Estrategias: durante el proceso de ejecución de la prueba, después de completar una operación (acción), esta estrategia determina qué operación se debe realizar a continuación. La estrategia más simple se puede seleccionar al azar o puede implementarla usted mismo. Algunas estrategias de selección más complejas algoritmos, como el algoritmo de programación justa de Zstack y los algoritmos de programación basados ​​en rutas de prueba históricas.

4. Test Runer: ejecutar pruebas e inspecciones

Pasos generales para pruebas basadas en modelos:

1. Analizar y comprender el software bajo prueba.

Las pruebas de software basadas en modelos requieren una comprensión profunda del software que se está probando. El trabajo de construir un modelo que pueda usarse para pruebas es principalmente determinar los objetos de prueba y las características de la prueba de acuerdo con el propósito de la prueba, y establecer modelos correspondientes para los atributos relevantes del software bajo prueba. El trabajo específico en esta etapa incluye,

Comprenda completamente las especificaciones de requisitos de software y los documentos de diseño, manuales de usuario y comuníquese completamente con el equipo de desarrollo.

1) Identificar los usuarios del sistema de software, enumerar la secuencia de entrada de cada usuario y estudiar el posible rango de valores de cada entrada, incluidos los valores legales, los valores límite, los valores ilegales y la salida esperada. Este trabajo a menudo requiere soporte de herramientas.

2) Registrar las condiciones de ocurrencia de entrada y las condiciones de ocurrencia de respuesta. La respuesta de un sistema de software se refiere a la salida que puede obtener el usuario o al cambio en el estado interno del software que es visible. Su propósito es diseñar casos de prueba que provoquen respuestas específicas y evalúen los resultados de las pruebas.

3) Estudiar la secuencia de entrada, como el momento en que ocurre la entrada, las condiciones para que el sistema de software reciba una entrada específica y la secuencia de procesamiento de la entrada.

4) Comprender el proceso de cálculo e intercambio de datos internos del software y generar datos de prueba que puedan encontrar defectos.

2. Elija el modelo de prueba apropiado

Diferentes modelos son adecuados para probar diferentes tipos de software, por lo que el modelo debe seleccionarse de acuerdo con las características del software.

1) Comprenda los modelos disponibles: diferentes campos de aplicación requieren diferentes modelos de prueba. Por ejemplo, los sistemas de conmutación telefónica utilizan principalmente modelos de estado; la operación concurrente de diferentes componentes en sistemas de software concurrentes se modela usando gráficos de estado; las cadenas de Markov pueden realizar análisis estadísticos de fallas en el software. La elección del modelo también depende de las características de funcionamiento del sistema de software. Por ejemplo, los modelos de máquinas de estado se pueden utilizar para probar sistemas de software en ejecución a largo plazo.

2) Seleccione según las características del modelo: solo si comprende completamente el modelo y el sistema de software podrá elegir un modelo apropiado para probar el software. Tomando como ejemplo las máquinas de estados, la teoría de los autómatas puede clasificar las máquinas de estados y explicar qué lenguajes pueden expresar diferentes máquinas de estados, de modo que se puedan seleccionar diferentes modelos de máquinas de estados de acuerdo con las funciones y características de la aplicación. Dado que generar datos de prueba basados ​​en una máquina de estados finitos equivale a atravesar un gráfico dirigido, los algoritmos de la teoría de grafos pueden guiar la generación de casos de prueba.

3) Influencia del personal, la organización y las herramientas: las pruebas de software basadas en modelos imponen ciertos requisitos a la estructura del conocimiento y al nivel técnico de los evaluadores. Si una organización de desarrollo utiliza modelos (como UML) para completar el análisis de requisitos y el diseño del sistema, es más fácil llevar a cabo pruebas de software basadas en modelos, porque las pruebas basadas en el análisis del sistema y el modelo de diseño a menudo pueden aplicar directamente las pruebas de software basadas en modelos. La tecnología y también los modelos o los detalles del modelo se pueden ajustar continuamente a medida que avanzan las pruebas y facilitar la planificación de las pruebas en las primeras etapas del proceso de desarrollo. Elija también un modelo específico basado en las herramientas de prueba utilizadas por la organización de desarrollo.

3. Construya un modelo de prueba

Tome las pruebas basadas en el modelo de máquina de estados como ejemplo para ilustrar cómo construir un modelo de prueba. Primero, se debe abstraer el estado del sistema de software. La abstracción del estado generalmente se realiza en función de las condiciones de entrada y salida, y generalmente incluye los siguientes procesos:

1) Genere una secuencia de entrada y especifique las condiciones aplicables para cada entrada, denominadas restricciones de entrada. Por ejemplo, la acción de descolgar sólo se permite cuando el teléfono no está descolgado.

2) Para cada entrada se debe explicar el contexto que produce diferentes respuestas, lo que se denomina restricciones de respuesta. Por ejemplo, cuando el teléfono está descolgado, si el estado actual es sonar, se realizará una llamada; de lo contrario, será un tono de marcado.

3) Construya el modelo de máquina de estados correspondiente en función de la secuencia de entrada, las restricciones de entrada y las restricciones de respuesta, como se muestra en el siguiente ejemplo.

4. Generar y ejecutar casos de prueba.

La generación automática de casos de prueba depende del modelo utilizado para las pruebas. Tomando como ejemplo el modelo de máquina de estados finitos, la secuencia compuesta por los marcadores de los arcos en el camino recorrido es el caso de prueba. Al construir una ruta que satisfaga los criterios de prueba, se deben considerar restricciones como los límites de longitud de la ruta, y las pruebas estadísticas también tienen en cuenta las probabilidades de migración. Los casos de prueba se pueden ejecutar después de generar una colección de casos de prueba que cumplan criterios específicos de adecuación de la prueba. Tome el modelo de máquina de estado como ejemplo ~ Primero, escriba un script que simule cada estímulo externo diferente del sistema de software, llamado script de simulación. Cada script de simulación corresponde a una migración diferente en el modelo, luego recopile los casos de prueba y tradúzcalos a prueba. guion. También puede utilizar un generador de pruebas para generar scripts de prueba directamente atravesando las transiciones de la máquina de estados. La ejecución de casos de prueba es el proceso de ejecución de scripts de prueba. Los scripts son recursos reutilizables y el mantenimiento de scripts de prueba también es parte del trabajo de prueba.

5. Recopile los resultados de las pruebas para su análisis.

El método de prueba de software basado en modelos no resuelve el problema de la identificación de fallas de prueba (Test Oracle) y aún requiere una inspección manual para ver si el resultado es correcto. Sin embargo, el problema de la identificación de fallas en las pruebas se puede resolver parcialmente mediante la verificación del estado, que es una abstracción de datos internos y es más fácil de verificar.

Además, en comparación con las pruebas tradicionales, una de las ventajas de las pruebas de software basadas en modelos es que se pueden analizar otros factores de calidad del software, como la confiabilidad, en función de los resultados de las pruebas.

Evaluación de pruebas de software basadas en modelos.

1. Ventajas de las pruebas de software basadas en modelos

Las pruebas de software basadas en modelos mejoran en gran medida el nivel de automatización de las pruebas, resuelven parcialmente el problema de la identificación de fallas de las pruebas, pueden analizar los resultados de las pruebas, favorecen la reutilización de productos de prueba y pueden aplicar teorías y tecnologías maduras para obtener resultados de análisis relativamente completos. La ingeniería de software moderna enfatiza los procesos de desarrollo incrementales e iterativos y adopta tecnología de desarrollo orientada a objetos para mejorar la calidad del desarrollo de software y acelerar el desarrollo de software. Dado que la mayoría de las especificaciones de los sistemas de software orientados a objetos se expresan mediante modelos, estos modelos contienen una gran cantidad de información que se puede utilizar para las pruebas de software. Por lo tanto, las pruebas de software basadas en modelos pueden hacer avanzar el trabajo de pruebas de software hasta la etapa inicial del desarrollo. proceso, como la planificación temprana del trabajo de prueba.

2. Desventajas de las pruebas de software basadas en modelos

Las pruebas de software basadas en modelos tienen las siguientes desventajas:

1) Los evaluadores deben tener una cierta base teórica, como conocimiento de la teoría de la máquina de estados y procesos aleatorios. También necesita saber cómo utilizar las herramientas relevantes.

2) Se requiere una cierta cantidad de inversión inicial, como selección de modelo, división de funciones de software, construcción de modelos, etc.

3) A veces es imposible superar los defectos inherentes al modelo, como la explosión del estado, que plantea requisitos de inspección, revisión y mantenimiento del modelo, y también afecta directamente a la automatización de pruebas. El problema de la explosión estatal generalmente se resuelve reduciendo la escala de la prueba y reduciendo la dificultad de la prueba mediante métodos de abstracción y exclusión.

Finalmente: se ha compilado y subido el video tutorial completo de prueba de software a continuación. Los amigos que lo necesiten pueden obtenerlo ellos mismos [garantizado 100% gratis]

Documento de entrevista de prueba de software

Debemos estudiar para encontrar un trabajo bien remunerado. Las siguientes preguntas de la entrevista provienen de los últimos materiales de entrevista de empresas de Internet de primer nivel como Alibaba, Tencent, Byte, etc., y algunos jefes de Byte han dado respuestas autorizadas. Después de terminar esto set Creo que todos pueden encontrar un trabajo satisfactorio según la información de la entrevista.

Supongo que te gusta

Origin blog.csdn.net/wx17343624830/article/details/132909692
Recomendado
Clasificación