Hago QA en un código comercial grande, este escenario irritante aparece con demasiada frecuencia. Por lo general, es indicativo de no tener procedimientos de ironclad para construir el binario en todas las plataformas que admitimos. Entonces, si el desarrollador construye su propio código (que tiene que hacer para depurar y corregir), y no sigue el mismo procedimiento de compilación al pie de la letra, existe la posibilidad de que los errores dependientes del sistema aparezcan mágicamente (o aparezcan) . Por supuesto, estas cosas generalmente se cierran con "funciona para mí" en la base de datos de errores, y si fallan la próxima vez que se ejecute ese problema, el error se puede volver a abrir. Siempre que sospecho que un error puede depender del sistema, trato de probarlo en una variedad de plataformas e informar en qué condiciones ocurre. A menudo aparece un problema de corrupción de memoria si los datos dañados son de una magnitud lo suficientemente grande como para causar un bloqueo. Algunas plataformas (combinaciones de hardware y sistema operativo) pueden bloquearse más cerca de la fuente real de la corrupción, y esto puede ser muy valioso para el pobre que tiene que depurarlo.
El probador necesita hacer algo de valor agregado, más allá de solo informar que su sistema muestra una falla. Paso mucho tiempo descartando falsos positivos, tal vez la plataforma en cuestión estaba sobrecargada o la red tenía un problema técnico. Y sí, a veces puede obtener algo que realmente se ve afectado por eventos de sincronización aleatorios, los errores de hardware a menudo pueden ser como ejemplo: si dos solicitudes de datos vuelven exactamente el mismo período de reloj, y la lógica del hardware para manejar el conflicto potencial es defectuosa, entonces el error solo se mostrará de forma intermitente. Del mismo modo con el procesamiento paralelo, a menos que mediante un diseño cuidadoso haya restringido la solución para que sea independiente de qué procesador sea más rápido, puede obtener errores que solo ocurren una vez en una luna azul, y su imporbabilidad estadística hace que la depuración sea una pesadilla.
Además, nuestro código se actualiza, generalmente muchas veces al día, rastrear un número de revisión de código fuente exacto para cuando se fue al sur puede ser información muy útil para el esfuerzo de depuración. El probador no debería estar en una relación de confrontación con los depuradores y desarrolladores, él está allí como parte de un equipo para mejorar la calidad del producto.