Pregunta

Cuando se desarrolla un software, diversos tipos de pruebas se hacen - unidad, integración, funcional, manual.In mi proyecto actual (WinForms con SQL Server), que tiene el código heredado (no hay pruebas), tenemos gran cantidad de insectos . Estamos tratando de eliminarlos mediante combinación de pruebas manuales + (sobre todo la integración)

Sin embargo, algunos errores pueden escapar.

Por ejemplo (un escenario hipotético) -. Si un cliente ha comprado alguna de dólares en bienes de últimos 6 meses, se le debe dar un cierto descuento en las compras que hace 6 meses una vez que tienen la condición de lapsed.His debe ser actualizado a privilegiar

Pero, por alguna razón (error en el código) el sistema no está haciendo so.How debemos hacer frente a estas situaciones? ¿Hay que tener un script que se ejecuta en la base de datos que se ve en escenarios tales como se describe? Otra de las posibilidades del escenario podría ser, el cliente debe ser enviar un regalo, una vez que tiene el privilegio, pero el sistema no se encuentra para hacerlo.

Los pensamientos?

¿Fue útil?

Solución

"¿Hay que tener un script que se ejecuta en la base de datos que se ve en escenarios tales como los descritos?"

¿Se refiere a "poner un guión en la base de datos para corregir el problema", a continuación, no .

NO. Nunca. De ninguna manera. Trabajando alrededor de un error añadiendo la lógica peculiar caso especial es realmente una muy mala idea.

  1. Cuando esa lógica peculiar caso especial tiene sus propios errores, que ha añadido código erróneo tratar de código erróneo correcta. Una pérdida neta.

  2. Cuando intenta mejorar el sistema, usted tiene esta lógica-caso especial peculiar que no tiene ningún sentido.

    a. Si tiene suerte, se arregló el fallo que se suponía que evitar, y va a ser redundante. ¿Ahora que? Que copian para eliminar?

    b. De lo contrario, estará en contradicción con otro código. ¿Ahora que? ¿Qué es lo correcto?

Si se refiere a "poner un guión en la base de datos para ayudar a encontrar y depurar el problema", entonces sí. Por un corto tiempo, utilizar todas las herramientas a su disposición para encontrar y corregir errores. Una vez encontrado y corregido, este guión es entonces inútil y debe puede eliminar.

Si usted quiere decir "escribir una secuencia de comandos en la base de datos para probar la aplicación", entonces sí. Eso es lo que scripts de prueba unidad son para. Usalos, usalos a ellos.

Es mucho mejor para crear pruebas unitarias de lo que es la creación de secuencias de comandos que se pone en la base de datos. Las pruebas unitarias son el mejor enfoque.

Otros consejos

Usted debe tener una prueba de baño automatizado en su lugar. Esta prueba suite implementará todos los escenarios que la especificación requiere. Pues no se puede esperar seis meses para probar que las obras de descuento, la ejecución real se sustituye por un aplicación maqueta (el ejemplo está en java, pero los mismos principios se aplican en otros idiomas), que, por ejemplo, 'simula' que han pasado 6 meses. Uno puede usar afirmaciones para automatizar las pruebas.

Una vez que tenga el conjunto de pruebas de baño listo, si todas las pruebas pasan después (igual que antes) una refactorización / cambio del código, uno puede estar seguro de que ninguna característica se ha roto debido a la refactorización.

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