En las pruebas funcionales, debería comparar todos los datos tabulares prestados en el navegador con la que proviene de la base de datos?

StackOverflow https://stackoverflow.com/questions/1907963

Pregunta

Estoy trabajando en un plan de pruebas para un sitio web donde algunas pruebas están tomando la ruta de acceso siguiente:

  1. Pulse el URI solicitado y obtener los datos prestados dentro de alguna mesa (20 líneas por página).
  2. Hacer una consulta de base de datos para obtener los datos que se supone que debe ser dictada en esa tabla.
  3. Compare la fila 2 de datos por fila, que deben coincidir.

¿Es una forma correcta de hacer las pruebas funcionales? Si esa petición era una petición Ajax, ¿cuál será la respuesta también? La respuesta sería diferente para las pruebas de integración?

Tengo alguna razón que me hace creer que esto está mal de alguna manera .... todavía tienen sus opiniones chicos!

¿Fue útil?

Solución

Sí, esto podría ser una prueba productiva. Ya sea que haya configurado un dato fijo o no.

Si usted tiene un conjunto de datos fijos, esto es mucho más fácil de probar, porque todo lo que está haciendo es comparar contra una salida fija.

Si usted no tiene un conjunto de datos fijos, entonces usted necesita para duplicar la lógica de negocio, duplicando eficazmente el trabajo ya realizado por el desarrollador. Entonces usted tiene dos juegos de lógica para mantener.

El segundo es el mejor enfoque porque se tiene dos formas de hacer lo mismo, con eficacia una revisión por pares de la especificación y código. También es muy costoso en términos de tiempo y recursos, por lo que la mayoría de las personas optan por tener un conjunto de datos fijos.

Para responder a su pregunta, si la lógica de negocio en la consulta es simple, entonces se puede obtener una prueba muy fácilmente. Sin embargo, el valor que aporta la prueba no es muy grande, porque no se está probando mucho.

Si la lógica de negocio es complejo, que está recibiendo un mayor valor de la prueba, pero va a ser más difícil de mantener en el largo plazo.

Para mí, lo que su prueba trae es una prueba de integración simple que demuestra que el sistema lee correctamente desde la base de datos, y muestra los datos correctamente. Esta es una buena prueba, aún mejor si está automatizado.

Otros consejos

Esto parece muy bien para las pruebas funcionales. Las pruebas de integración en mi mente tiene que ver con la prueba de diferentes tecnologías o componentes que se supone deben trabajar juntos, que es generalmente más amplia que las pruebas funcionales. Pero, por supuesto, este tipo de pruebas también podría considerarse pruebas de integración, dependiendo de cómo su aplicación es poner juntos y cuando el análisis lo que está sucediendo en el ciclo de vida de su desarrollo. Por ejemplo, puede ser que para que este sitio funcione hay que poner juntos un par de componentes que se desarrollaron de forma independiente; esto podría ser una de las pruebas para validar que trabaja la integración.

No vemos cómo esta siendo Ajax o no tiene nada que ver con la fabricación de la respuesta diferente.

Me es probable que haya un voto particular aquí, pero no considero que esto sea una prueba productiva. Lo que está haciendo es simplemente duplicando el código que produce la página. Y cada vez se introduce código duplicado (incluso a través de los departamentos) se le busca en defectos apareciendo a largo plazo.

Es mucho mejor para cargar la base de datos con los datos conocidos (ya sea a través de la aplicación, o directamente) y luego comprobar que la salida coincide con lo que se espera. Esto también asegura que la capa de base de datos, o la propia base de datos, no ha modificado los datos de una manera que no esperas.

Esto es:

  1. carga conocida de datos (preferiblemente a través de la propia aplicación)
  2. Cargar el URI solicitado
  3. Compruebe que muestran los datos que corresponda a los datos conocidos

Este tipo de prueba podría ser bueno para probar un gran conjunto de datos con relativamente poco esfuerzo probador si no hay mucha lógica entre el desarrollador de la base de datos y la pantalla para el usuario final. Nuestro equipo ha hecho esto en varias ocasiones, y es especialmente útil para el funcionamiento de grandes cantidades de datos de producción real a través de nuestras pruebas para asegurarse de que los escenarios reales son manejados como se esperaba. ¡Asegúrate de hacer por lo menos un poco de entrada fija las pruebas de escenarios poco comunes que podrían ser especialmente propensos a ser manejado de manera diferente en el PP y en la página web - los valores nulos, caracteres especiales, y otras rarezas.

En lo personal, yo llamaría a esto "pruebas de integración", ya que está probando la integración de la base de datos y el sitio web, y no "prueba funcional". Por "prueba funcional", probablemente me quiero hacer un simulacro de la fuente de datos (por ejemplo, la base de datos) que proporcionará conjuntos pre-escrito de los datos en el formato que usted espera.

Una vez dicho esto, si tuviera una alta confianza en la validez de los datos de base de datos y si la lógica entre la consulta de base de datos y la visualización de la página web era muy pequeño y de bajo riesgo, probablemente no me molestaría con la maqueta y se deje que la prueba de integración cubre la funcionalidad también. No sé que probar la funcionalidad y la integración por separado sería una gran victoria calidad en este caso, y hay probabilidades mejores cosas que podría hacer con el tiempo de las pruebas disponibles. Si hay una gran cantidad de lógica basado en esta información, probablemente debería probar la integración por separado de la funcionalidad. pruebas de integración adicional probablemente incluiría cosas como: "¿Qué pasa si la base de datos no puede ser alcanzado?" y "¿Qué pasa si la base de datos es lenta?".

Si bien esta técnica funcionará con el Ajax, asegúrese de que sus herramientas de prueba trabajarán con el Ajax. En concreto, piense en cómo va a capturar los resultados de la consulta de bases de datos y cómo va a recoger los resultados que se muestran en la página web.

Estoy asumiendo que la validez de los datos de la consulta está siendo probado en otros lugares, ya que ha mencionado que esto era sólo un tipo de prueba en el plan de pruebas. Estoy también acaba de discutir la integración con la base de datos y este informe y no con otras características o componentes, y no otros aspectos de las pruebas (rendimiento, seguridad. Etc.), ya que era el alcance de su pregunta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top