En este artículo, hablamos principalmente de la habilidad más común y fundamental de un ingeniero de pruebas, la capacidad de diseñar casos de prueba.
caso de prueba
Un caso de prueba es un documento diseñado para enfocarse en cómo producir resultados específicos usando la tecnología de prueba determinada en el plan de prueba para refinar y refinar las condiciones de prueba determinadas paso a paso.
En términos sencillos, es convertir las acciones que desea probar en qué circunstancias, qué acciones realizar, qué métodos de datos usar y qué tipo de resultados desea obtener al final en un caso de prueba. Por lo tanto, cada caso de prueba debe tener sus condiciones previas, sus eventos y parámetros correspondientes, y finalmente los resultados esperados. Este es un caso de prueba calificado.
Por ejemplo, la función de inicio de sesión, ahora básicamente todos los sitios web, aplicaciones, etc. botón de inicio de sesión y vea Ha iniciado sesión correctamente. Esta es la operación más simple y constituye nuestro primer y más normal caso de prueba. También incluye varios elementos mencionados anteriormente:
Condición previa : un usuario existente
Acciones y parámetros: Introduzca el nombre de usuario y la contraseña correctos y haga clic en Iniciar sesión
· Resultado esperado: inicio de sesión exitoso
Este es, por supuesto, un caso de prueba completo, pero por supuesto no es suficiente para un módulo de inicio de sesión, este es solo uno de los casos de prueba calificados en este módulo. Entonces, ¿cómo escribir más casos de prueba? Ahora es el momento de mirar nuestro verbo: diseñar. El diseño en realidad corresponde a un conjunto de métodos, solo con el método correcto podemos diseñar casos de prueba calificados.
diseño de caso de uso
Métodos de diseño de casos de prueba más comunes
· Método de división de clases de equivalencia
· Método del valor límite
· Método de diseño de diagramas causa-efecto
· Método de diseño de tablas de decisión
· Método experimental ortogonal
· Error de cálculo
· Método de escena
En cuanto a los principios, principios y cómo usarlo, hay mucha información en Internet, por lo que no hablaré de eso aquí. Hay tantos métodos, así que cómo elegir al diseñar. Aquí hay un chiste que está circulando en Internet.
Elija la equivalencia para la clasificación de entrada, agregue límites para un rango determinado, combine condiciones para determinar la causa y el efecto, determine si las condiciones están aisladas, use la ortogonalidad para el agotamiento infinito, use el método de escenarios comerciales complejos, confíe en la experiencia para adivinar errores y cubra completamente el prueba.
¿Se pueden utilizar todos estos métodos? La respuesta es No. En mi prueba de cognición, los métodos más utilizados son el valor límite, la clase de equivalencia, el método de escenarios y la adivinación de errores. Entonces, para resumir, nuestras ideas de diseño en el trabajo real son probablemente:
· Usar el método de división de clases de equivalencia para dividir la mayoría de los casos de prueba de diseño de escenarios
En cualquier caso, se debe utilizar el método de análisis de valor límite.La experiencia demuestra que los casos de prueba diseñados con este método tienen la mayor capacidad para encontrar errores de programa.
· La complejidad comercial del programa es relativamente alta, por lo tanto, use el método de escenarios para complementar parte de los casos de prueba
· Si está muy familiarizado con el negocio, puede agregar algunos casos de prueba basados en su experiencia donde es probable que ocurran errores
Basándonos en este método de diseño, que sigue siendo la interfaz de inicio de sesión original, podemos diseñar aproximadamente los siguientes casos de prueba:
1. Para un usuario existente, ingrese el nombre de usuario y la contraseña correctos, haga clic en Iniciar sesión y verifique si el inicio de sesión es exitoso;
2. No ingrese ningún contenido, haga clic en Iniciar sesión directamente, verifique si el inicio de sesión falla y si la información del aviso es correcta;
3. Para un usuario existente, ingrese el nombre de usuario correcto y la contraseña incorrecta, haga clic en Iniciar sesión, verifique si el inicio de sesión falla y la información solicitada es correcta;
4. Usuarios existentes A y B, ingrese el nombre de usuario de A y la contraseña de B, haga clic en Iniciar sesión, verifique si el inicio de sesión falla y si la información solicitada es correcta, ingrese un nombre de usuario inexistente y cualquier contraseña, haga clic en Iniciar sesión, verifique si el inicio de sesión falla y la información del aviso es correcta;
5. Para los usuarios que ya existen pero tienen un estado anormal (como desactivado, congelado, bloqueado), ingrese el nombre de usuario y la contraseña correctos, haga clic en Iniciar sesión, verifique si el inicio de sesión falla y la información del aviso es correcta;
6. Para un usuario existente, el nombre de usuario está en minúsculas, ingrese el nombre de usuario en mayúsculas y la contraseña correcta, haga clic en Iniciar sesión y verifique si el inicio de sesión falla;
7. Para un usuario existente, la contraseña está en minúsculas, ingrese el nombre de usuario correcto y la contraseña en mayúsculas, haga clic en Iniciar sesión y verifique si el inicio de sesión falla;
8. Si la contraseña se encripta y se muestra automáticamente o si contiene funciones ocultas/que se muestran, y verifique si se puede usar normalmente;
9. Si se distinguen los derechos de usuario y si el administrador y el usuario normal inician sesión correctamente y saltan correctamente;
10. Si el cuadro de ingreso de nombre de usuario y contraseña tiene un límite de longitud y si es consistente con el requisito de longitud durante el registro;
11. Si el código de verificación se mostrará automáticamente si la falla de inicio de sesión alcanza una cierta cantidad de veces;
12. Si hay un código de verificación, ingrese el nombre de usuario y la contraseña correctos y el código de verificación correcto para verificar si el inicio de sesión es exitoso;
13. Si hay un código de verificación, ingrese el nombre de usuario y la contraseña correctos y el código de verificación incorrecto para verificar si el inicio de sesión falla;
14. Cuando haya un código de verificación, haga clic en la imagen del código de verificación (o cambie un botón) para cambiar el código de verificación y si el código de verificación reemplazado está disponible;
15. Si hay un código de verificación, haga clic en la imagen del código de verificación (o cambie un botón) para reemplazar el código de verificación, inicie sesión con el código de verificación antes del reemplazo y verifique si el inicio de sesión falla;
16. Si el código de verificación de la página de actualización sigue a la actualización;
17. Si el código de verificación ha caducado, ingrese el código de verificación actual para verificar si el inicio de sesión falla;
18. Después de que falla el inicio de sesión, si el nombre de usuario se guarda y la contraseña está vacía;
19. Si existe una función de recordar el nombre de usuario y recordar la contraseña, y si está disponible;
20. Si la tecla de acceso directo está disponible y si la contraseña no se puede pegar;
21. Si TAB y ENTER pueden saltar automáticamente al control y enviar automáticamente;
22. Si es compatible con el inicio de sesión de terceros (WeChat, Alipay, QQ, Weibo, etc.) y si la verificación de inicio de sesión es correcta;
23. Si es compatible con el inicio de sesión del código de verificación del teléfono móvil, si el teléfono móvil puede recibir mensajes de texto y si el inicio de sesión puede ser exitoso;
24. Se agotó el tiempo de espera del código de verificación en el teléfono móvil. Si usa el código de verificación de tiempo de espera agotado para iniciar sesión, ¿puede iniciar sesión correctamente?
25. Si redirigir a la página de inicio de sesión después de que expire la sesión del usuario;
26. Después de que el usuario cierre la sesión, si la operación puede continuar a través del botón Atrás;
27. Si tiene la función de olvidar la contraseña y si está disponible.
Bien, solo enumeré algunos, pero si tuviera que calificar este conjunto de casos de uso en este punto, lo calificaría con 80. Debe haber amigos que me quieran despedir por mi nombre real, ya tan comprensivo, que mas necesitas? ¿Por qué sólo 80 puntos? Esto involucra la tercera dimensión de nuestro tema de discusión de hoy, el adjetivo "excelente".
Hable acerca de excelentes casos de prueba
Para un conjunto de casos de prueba, solo los casos de prueba completos, repetibles, verificables y completos son los mejores casos de prueba.
Prueba de registro de datos
La llamada prueba de registro de datos incluye principalmente elementos de prueba que no podemos ver en el front-end, la página o la aplicación. Permítanme dar algunos ejemplos:
· Si el campo de la contraseña de la base de datos está encriptado o no
Si la cantidad de fallas de inicio de sesión se registra en la base de datos y en el caché, y si la lógica es correcta
· Si el estado de la base de datos se modifica correctamente en escenarios como la falla de inicio de sesión y la congelación
Si el registro de errores está completo y es fácil de solucionar
Si el objeto es fácil de localizar y fácil de automatizar
Si hay un aumento en los puntos ocultos para el análisis del comportamiento del usuario
Pruebas de interfaz de usuario
Para las pruebas diarias, la prueba de la interfaz y la experiencia del usuario también es muy necesaria. El uso de TAB y ENTER es en realidad una especie de experiencia del usuario, por lo que si desea realizar una prueba más exhaustiva, también debe considerar la prueba de la interfaz.
Si el diseño es razonable y alineado
Si el diseño de la interfaz es coherente con los requisitos y los documentos de diseño de la interfaz de usuario
· Si hay errores tipográficos o de puntuación
· ¿ Es adecuada la correspondencia de colores de la página?
· Si el texto del error es claro y fácil de entender
Si el efecto visual de la interfaz es apropiado y si la visualización de la animación de la interfaz es fluida.
prueba de compatibilidad
Si es compatible con diferentes sistemas operativos (Windows, MAC OS, LINUX)
· Bajo diferentes versiones del mismo sistema operativo, si se puede mostrar normalmente y la función es correcta
Si es compatible con diferentes navegadores (Chrome, IE, FireFox, etc.)
Si diferentes versiones del mismo navegador son compatibles
· Si el terminal móvil es compatible
Si es compatible para mostrar al acercar y alejar la interfaz
Si la visualización de la interfaz es correcta en diferentes idiomas
Si tiene un modo de lectura de alto contraste (preparado para personas con problemas de visión)
Pruebas de rendimiento
Las pruebas de rendimiento se pueden dividir en rendimiento del lado del servidor y rendimiento de front-end, que también deben considerarse de manera integral. Al mismo tiempo, los indicadores y escenarios de rendimiento también varían con diferentes módulos, diferentes empresas y diferentes necesidades. Daré brevemente algunas comparaciones aquí Ejemplo genérico:
· Máxima interfaz de inicio de sesión de usuario simultáneo (tiempo de respuesta en 3 s)
· Métricas de rendimiento para servidores bajo pruebas de carga específicas
Indicadores de estabilidad y rendimiento de los servicios durante las pruebas de estrés
· Lógica de procesamiento distribuido del servicio, lógica de balanceo de carga, caché y uso de colas
· La máxima concurrencia de la interfaz que se puede soportar
Procesamiento de GC , si hay desbordamiento de memoria, etc.
Si la base de datos tiene [url=]SQL[/url] lento y punto muerto bajo alta concurrencia
· Velocidad de carga de la página
· Tamaño del recurso de la página, ya sea para aplicar Sprite
· Análisis YSLOW, rendimiento estático
Prueba de seguridad
Por último, pero no menos importante, está nuestra prueba de seguridad que más se pasa por alto. En muchos casos, tendemos a ignorar las amenazas que trae la seguridad, pero de hecho, una vez que ocurre un problema de seguridad, la pérdida será mucho mayor que el impacto de un error determinado. Primero, presentemos brevemente las medidas de prueba de seguridad que se deben tomar en la interfaz de inicio de sesión, y luego hablaremos sobre todos los aspectos de las pruebas de seguridad en detalle más adelante.
Verifique si los datos críticos se transmiten a través de HTTP o HTTPS
Ya sea para incluir contraseñas débiles
Si es fácil ser descifrado por la fuerza bruta
Ya sea para usar la autenticación multifactor
Ya sea para usar la autenticación de exclusión mutua para el inicio de sesión
· Fortaleza del token de sesión generado (ID de sesión)
Si hay una fuga de token de sesión en la transmisión
· Si contiene lagunas no autorizadas
· Si puede iniciar sesión correctamente con la contraseña universal
Si es posible realizar una inyección ciega de SQL
· Seguridad de cifrado de almacenamiento de contraseñas
Si tiene defensa contra ataques XSS (cross-site scripting)
Si contiene vulnerabilidad de ataque CSRF
· Evitar ataques de intermediarios durante la transmisión de tokens o contraseñas
Escrito al final, la ejecución de casos de prueba también debe estar vinculada a la urgencia del proyecto real. Obviamente, el proyecto es muy urgente para estar en línea. Si desea ejecutar todos los casos de uso anteriores, entonces nada será suficiente, por lo tanto, la prioridad de los casos de prueba debe ser clara. Ejecute casos de uso prioritarios relativamente apropiados en el momento adecuado para garantizar la calidad del producto.
Por último, me gustaría agradecer a todos los que han leído detenidamente mi artículo. La reciprocidad siempre es necesaria. Aunque no es algo muy valioso, puedes quitártelo si lo necesitas:
Estos materiales deben ser el almacén de preparación más amplio y completo para los amigos [de pruebas de software]. Este almacén también ha acompañado a decenas de miles de ingenieros de pruebas a través del viaje más difícil, ¡y espero que pueda ayudarlos!