【Pruebas de software】Pruebas de proyectos: ¿escenarios de aplicación de operación de base de datos MySQL? Debe tener un conocimiento detallado (super detallado)


prefacio

La base de datos es básicamente una parte obligatoria de la entrevista de prueba de software. El más común es SQL escrito a mano o SQL oral. El entrevistador le dará una escena, como clase, puntaje, curso, etc. Generalmente, hay principalmente declaraciones de consulta en el tabla de inspección, como consultas de varias tablas, consultas de unión, subconsultas, etc.

Como prueba, el peso de la base de datos en el trabajo diario sigue siendo relativamente grande, principalmente en los siguientes escenarios de aplicación:

1. Implementación del proyecto y preparación de datos después de la implementación

El entorno de desarrollo y configuración es bueno, pero no hay conexión con la base de datos, por lo que debemos crear una nueva base de datos y conectarla nosotros mismos.
La base de datos se ha creado, pero la tabla de datos no se ha creado, por lo que debemos crear la tabla de datos nosotros mismos.
Se han creado la base de datos y la tabla de datos, pero no hay datos en la tabla de datos, necesitamos agregar datos nosotros mismos.
Hay datos en la tabla de datos, pero la cantidad de datos no es suficiente. El desarrollo solo proporciona uno o dos datos de muestra, y las pruebas requieren una gran cantidad de creación de datos.
La gestión en segundo plano del proyecto no tiene una función de registro, por lo que debemos insertar manualmente el nombre de usuario y la contraseña en la tabla de datos.

2. Agregue, elimine, modifique y verifique en la página de inicio, verifique si la base de datos se ha actualizado en consecuencia y verifique la precisión del almacenamiento de datos

Ejemplo 1: en un proyecto de CRM, después de crear un nuevo cliente, verifique si es consistente con la información del cliente recién creada en la tabla de la base de datos.
Ejemplo 2: el pedido generado por la transacción de pago se puede verificar desde la base de datos para ver si el pedido está realmente almacenado y si la información de los datos es consistente.

3. Manipular directamente los datos para cumplir con los escenarios extremos requeridos por los casos de prueba

Por ejemplo, en algunos escenarios, como la función de crear un nuevo cliente en un proyecto de CRM, solo necesitamos verificar el valor límite de un cuadro de entrada, pero debemos seguir creando nuevos en la página de inicio, enviando y guardándolos todo el tiempo, y cada vez que creamos uno nuevo, necesitamos completar los elementos requeridos que no necesitan ser probados por el momento. , es demasiado problemático, puede modificar directamente el valor del campo correspondiente en la tabla de datos

4. Cuando las pruebas de rendimiento o las pruebas automatizadas generan una gran cantidad de datos a través de scripts, verifique si la base de datos se almacena efectivamente en lotes.

5. Optimice los casos de prueba operando la base de datos para mejorar la eficiencia de la prueba

6. Cuando se informa un error en el campo del cuadro de entrada de front-end, puede ser que el tipo de parámetro de la base de datos esté configurado incorrectamente o que la longitud del campo no sea suficiente, puede abrir la base de datos para verificar si el tipo y la longitud del parámetro del campo son correcto

7. Prueba de rendimiento, mejora el rendimiento del sistema mediante la optimización de la declaración SQL o la estructura de la tabla, como consultas lentas, etc.

8. Cree escenarios de datos y construya condiciones previas para ciertos casos de uso

Ejemplo 1: La utilidad anual estadística requiere datos de 1 a 12 meses, es imposible medir una demanda de un año y los datos se pueden insertar directamente en la base de datos.

Ejemplo 2: al registrar un número de teléfono móvil, reutilice un número de teléfono móvil cambiando el estado no único del campo de la tabla de la base de datos para el registro repetido.

Ejemplo 3: Al modificar la cantidad, el precio, etc., se utiliza para la prueba de pago. Por ejemplo, si originalmente necesita 100 RMB, se puede cambiar a 0,01 RMB modificando los datos.

Ejemplo 4: Para los puntos de membresía, puede modificar directamente los puntos en la base de datos para ver si ha alcanzado la membresía.

9. Comprender cómo operar la base de datos a través de la interfaz

10. Al realizar un análisis de estructura de prueba, puede usar la base de datos para determinar la dirección del flujo de datos, qué tabla colocar, qué campo mostrar cuándo y dónde
...

Solo se enumeran algunos escenarios comunes en el trabajo diario.

A continuación, introduzcamos la base de datos y las declaraciones SQL de uso común.

Adición, eliminación, modificación y consulta de tabla de datos

aumentar (insertar)

-- 插入数据
INSERT INTO user_info ( user_id, user_name, PASSWORD, user_nick, card_num )
VALUES
	( 1, 'zhangsan', 'abc123', 'zhangsanfeng', 124567894651329785 ),
	( 2, 'lisi', '122bbb', 'limochou', 124567894651324567 ),
	( 3, 'wangwu', '123aaa', 'wangbaiwan', 214567894651324567 ),
	( 4, 'liuqi', '12aaa', 'liuchuanfeng', 214563356651324567 ),
	( 5, 'zhangliu', '12aaa', 'zhangwuji', 214563356658966567 );

borrar

gramática:

delete from 表名 where 条件

La declaración de eliminación no puede eliminar el valor de una columna. (Puede usar el nombre de la tabla de actualización establecer nombre de usuario = "" donde ID de usuario = 1)
Use la declaración de eliminación para eliminar solo los datos de la fila que cumple con la condición de dónde, sin eliminar otras filas en la tabla y la tabla misma.
truncar user_info_table (borrar los datos directamente)

La diferencia entre drop y delete:
drop es eliminar una columna en una base de datos, tabla de datos o tabla de datos.
delete es eliminar una fila de datos.

cambiar (actualizar)

gramática:

update [表名] set [列名]=[新值] where [列名]=[某值];

La sintaxis de actualización puede agregar y actualizar columnas en la fila de la tabla original.
La cláusula set indica qué columnas modificar y qué valores dar.
La cláusula where especifica qué filas deben actualizarse. Si no hay una cláusula where, se actualizan todas las filas.

comprobar (seleccionar)

Ejemplo 1:
La siguiente tabla está disponible

Por favor agregue una descripción de la imagen

cláusula donde niño

-- 1. 满足价格大于等于9的所有信息
SELECT * FROM order_info WHERE price >= 9;

-- 2. 查找满足product_id在1002和1003之间的
SELECT * FROM order_info WHERE product_id BETWEEN 1002 AND 1003;

-- 3. 查找user_id在1、3、5这三个数内的信息
SELECT * FROM order_info WHERE user_id IN (1,3,5);

-- 4. 查找订单状态是已支付的信息
SELECT * FROM order_info WHERE order_status = 'pay';

-- 5. 查找用户名类似于已li开头的信息
SELECT * FROM user_info WHERE user_name LIKE 'li%';

-- 6. 查找用户名中第二个字母是h的信息
SELECT * FROM user_info WHERE user_name LIKE '_h%';

-- 7. 查找用户名中第二个字母不是h的信息
SELECT * FROM user_info WHERE user_name NOT LIKE '_h%';

-- 8. 查找用户名中最后一个字母以i结尾的信息
SELECT * FROM user_info WHERE user_name LIKE '%i';

-- 9. 查找价格大于8,并且订单状态是已支付的所有信息
SELECT * FROM order_info WHERE price > 8 AND order_status = 'pay';

-- 10.查找用户表中user_nick为null的信息
SELECT * FROM user_info WHERE user_nick IS NULL;

-- 11.查找用户表中user_nick为 not null的信息
SELECT * FROM user_info WHERE user_nick IS NOT NULL;

función agregada

-- 1. 查找订单表中最大的价格,查找订单表中最小的价格
SELECT MAX(price),MIN(price) FROM order_info;

-- 2. 查找订单表中user_id=2的最小价格
SELECT MIN(price) FROM order_info WHERE user_id = 2;

-- 3. 分别列出订单表中user_id=2的最小价格和最大价格
SELECT MIN(price),MAX(price) FROM order_info WHERE user_id = 2;

-- 4. 分别列出订单表中user_id=2的最小价格和最大价格,并把最小价格的展示结果的列名改为"min_price"
SELECT MIN(price) AS min_price,MAX(price) FROM order_info WHERE user_id = 2;

-- 5. 求订单表的价格的平均值,求订单表中user_id=2的价格的平均值
SELECT AVG(price) FROM order_info;
SELECT AVG(price) FROM order_info WHERE user_id = 2;

-- 6. 分别列出订单表中user_id=2的价格的平均值、最小值、最大值
SELECT AVG(price),MIN(price),MAX(price) FROM order_info WHERE user_id = 2;

-- 7. 求订单表中user_id=1的价格的总和
SELECT SUM(price) FROM order_info WHERE user_id = 1;

-- 8. 求订单表中user_id=1或者user_id=3的价格总和
SELECT SUM(price) FROM order_info WHERE user_id = 1 OR user_id = 3;

grupo

-- 1.首先筛选状态为已支付的订单,然后按照user_id分组,分组后每一组对支付金额进行求和,最终展示user_id和对应组求和金额
SELECT user_id,SUM(price) FROM order_info WHERE order_status = 'pay' GROUP BY user_id;

-- 2.首先筛选状态为支付的订单,然后按照user_id分组,分组后每一组对支付金额进行求和,再过滤求和金额大于10的,最终展示user_id和对应组的求和金额
SELECT user_id,SUM(price) FROM order_info WHERE order_status = 'pay' GROUP BY user_id HAVING SUM(price) > 10;

Consulta y subconsulta de combinación de tabla de datos

-- 1.查询订单表中的价格大于10元的用户的昵称(小提示:用户昵称在用户表中,订单价格在订单表中)
SELECT a.user_nick FROM user_info a INNER JOIN order_info b ON a.user_id = b.user_id WHERE b.price > 10;
SELECT user_nick FROM user_info WHERE user_id IN (SELECT user_id FROM order_info WHERE price > 10);

-- 2.查询用户名以l开头的用户买过的所有订单id和对应价格(小提示:订单id和对应价格在订单表中,用户名在用户表中)
SELECT o.order_id,o.price FROM order_info o WHERE o.user_id IN (SELECT user_id FROM user_info u WHERE u.user_name LIKE 'l%');

Ejemplo 2:
Hay 2 tablas a continuación

Por favor agregue una descripción de la imagen

Por favor agregue una descripción de la imagen

-- 1.修改供应商id为4的供应商名称为‘hongshuangxi’
UPDATE suppliers_info SET supplier_name = 'hongshuangxi' WHERE supplier_id = 4;

-- 2.查询商品重量大于0.10的商品的名称
SELECT product_name FROM products_info WHERE weight > 0.10;

-- 3.查询商品名称以字母p开头的商品的所有信息
SELECT * FROM products_info WHERE product_name like 'p%';

-- 4.查询商品重量大于0.10,小于0.20的商品名称
SELECT product_name FROM products_info WHERE weight > 0.10 AND weight < 0.20;

-- 5.按照商品分类统计各自的商品总个数,显示每个分类和其对应的商品总个数
SELECT classification,COUNT(classification) FROM products_info GROUP BY classification;

-- 6.将所有商品的名称按照商品重量由高到低显示
SELECT product_name,weight FROM products_info ORDER BY weight DESC;

-- 7.显示所有商品的信息,在右边显示有供应商的商品对应的供应商信息
SELECT * FROM products_info a LEFT JOIN suppliers_info b ON a.supplier_id = b.supplier_id;

-- 8.显示重量大于等于0.15的商品的供应商的联系人和手机号
SELECT s.contacts,s.contacts_phone_num FROM suppliers_info s INNER JOIN products_info p ON s.supplier_id = p.supplier_id and p.weight >= 0.15;
El siguiente es el diagrama de sistema de arquitectura de conocimiento de aprendizaje de ingeniero de prueba de software más completo en 2023 que compilé

1. De la entrada al dominio de la programación en Python

Por favor agregue una descripción de la imagen

2. Proyecto de automatización de interfaz de combate real.

Por favor agregue una descripción de la imagen

3. Combate real del proyecto de automatización web

Por favor agregue una descripción de la imagen

4. Combate real del proyecto de automatización de aplicaciones

Por favor agregue una descripción de la imagen

5. Hoja de vida de los fabricantes de primer nivel

Por favor agregue una descripción de la imagen

6. Probar y desarrollar el sistema DevOps

Por favor agregue una descripción de la imagen

7. Herramientas de prueba automatizadas de uso común

Por favor agregue una descripción de la imagen

Ocho, prueba de rendimiento JMeter

Por favor agregue una descripción de la imagen

9. Resumen (pequeña sorpresa al final)

Cada esfuerzo no será en vano, y cada contribución vale la pena apreciarla. Persiste en la lucha, cree en ti mismo, el éxito te espera por delante. Mientras estés dispuesto a perseguir, la felicidad te llamará.

El destino de todos está en sus propias manos, siempre que tengan sueños, coraje y acciones, pueden dar la bienvenida al amanecer del éxito. Aunque habrá barro y espinas en el camino de la vida, mientras tengas una fe firme, ¡podrás superar las dificultades!

El camino hacia el éxito no es fácil, pero solo con trabajo duro y esfuerzos incansables podemos llegar más lejos y más alto. ¡No tengas miedo al fracaso, cree en ti mismo, avanza con valentía y seguramente cosecharás la alegría del éxito!

Supongo que te gusta

Origin blog.csdn.net/shuang_waiwai/article/details/130427112
Recomendado
Clasificación