hago normalmente esto:
1) Añadir un nuevo caso de prueba funcional (s) al sistema de ensayo de regresión automatizado. normalmente comienzo un proyecto de software con un sistema de pruebas de regresión propia con
- biblioteca de Excel VBA + C para controlar SCSI/IDE/interfaz de dispositivo (hace 13 años), Informe de la prueba es speadsheet Excel.
- TCL Expectativas para pruebas complejas del sistema de enrutadores de red. El informe de prueba es página web. (Hace 6 años)
- Hoy uso Python/Expect. El informe de prueba es XML + analizador XML basado en python.
Este objetivo para todo esto es asegurarse de que una vez que se encuentra un error, nunca vuelva a aparecer en el código de registro o en el sistema de producción. También es más fácil reproducir los problemas aleatorios y de largo plazo.
No marque en ningún código a menos que vaya una prueba de regresión automatizada.
Normalmente escribo una relación de 1: 1 entre el código de producto vs.código de prueba. 20k líneas de TCL expert para 20K líneas de código C++. (Hace 5 años). Por ejemplo:
- El código C implementaría un proxy de reenvío de conexión tcp de túnel de instalación.
- Casos de prueba de TCL: (a) Configure las conexiones para asegurarse de que los datos pasen. (b) Configure las conexiones con diferentes elementos de red. (c) Haga eso 10, 100, 1000 veces y verifique si hay pérdida de memoria y problemas de recursos del sistema, etc.
- Haga esto para cada función en el sistema, se puede ver por qué la ración 1: 1 en el programa de prueba codifica.
No quiero que el equipo de QA haga una prueba automática con mi sistema de prueba, ya que todo mi código de registro debe pasar las pruebas. Por lo general, realizo una prueba de regresión de 2 semanas a largo plazo antes de dar el código al equipo de control de calidad.
Los casos de prueba manual del equipo QA running también aseguran que mi programa tenga suficiente información de diagnóstico incorporada para capturar cualquier error futuro. El objetivo es tener suficiente información de diagnóstico para resolver el 95% de los errores en < 2 horas. Pude hacer eso en mi último proyecto. (Equipo de red de video en RBG Networks.)
2) Agregue la rutina de diagnóstico (base web hoy en día) para obtener toda la información interna. (Estado actual, Registros, etc.). > 50% de mi código (c/C++, especialmente) son códigos de diagnóstico.
3) Agregue más detalles al registro del área de problemas que no entiendo.
4) Analice la información.
5) Intente corregir el error.
6) Ejecutar durante la noche/durante las pruebas de regresión de fin de semana. Cuando estaba en R & D, generalmente solicito al menos 5-10 sistemas de prueba para ejecutar continuamente pruebas de regresión 24x7. Eso normalmente ayuda a ID y resuelve la memoria, los recursos y el problema de rendimiento a largo plazo antes de que el código llegue a SQA.
Una vez que un sistema incrustado falla, inicie el arranque en el indicador de Linux de vez en cuando. Agregué un caso de prueba que apaga el ciclo del sistema con una salida programable una y otra vez y se asegura de que pueda "ver" el símbolo del sistema y comenzar a ejecutar la prueba de la noche a la mañana. Pudimos identificar rápidamente el problema del código FPGA y asegurarnos de que el sistema esté siempre activo después de 5000 ciclos de encendido. Se agregó un caso de prueba y todo se compila un nuevo código Verilog codein/FPGA. Este caso de prueba se ejecutó. Nunca más fue un problema.
6. Google para el error o publicación en stackoverflow – catchmeifyoutry
una idea: esta debería ser la wiki de la comunidad. – IAdapter
@ 01, todavía no entiendo completamente el razonamiento o los beneficios de una pregunta wiki de la comunidad a pesar de leer sobre ellos en meta. Parece que no soy la única persona un poco confundida por esta característica. Pero supongo que lo intentaré (al menos una vez) para ver qué pasa. – z5h