Con frecuencia tengo la tarea de depurar una aplicación en mi trabajo. Es una aplicación de BI que implementamos en las empresas, que incluye un entorno de prueba y un entorno de producción. Me pregunto si hay aplicaciones / herramientas / métodos que la gente pueda sugerir, en base a estas restricciones:
El depurador no se puede usar en el sitio del cliente o localmente, porque el software depende de aplicaciones de terceros personalizadas para las que no tenemos entornos de prueba. (EDITAR: para ser justos, es posible depurar localmente en algunos casos. Si usamos nada más que el código central. Gran parte del código problemático reside en un dll que encapsula la comunicación específica de terceros: enchufes, tuberías de proceso, llamadas de jabón, lógica personalizada que cambia el comportamiento del código central. Normalmente, durante una implementación o mejora para un cliente, estaríamos escribiendo código nuevo en esta área).
Prácticamente no hay registro realizado en nuestras aplicaciones. No hay pruebas unitarias.
El control de versiones solo tiene 1 versión de la solución completa (usando source safe 2005). Por lo tanto, no es posible obtener una versión anterior de la solución completa, solo archivos individuales. (A menos que alguien sepa cómo solucionar esto).
No se puede reproducir localmente, a menudo no se puede reproducir en el entorno de prueba (alta probabilidad de que la prueba y la producción no sean la misma versión).
Existe una gran posibilidad de que la versión que utiliza el cliente sea diferente de la que está en la fuente segura. Esto se debe a que se actualizan los archivos individuales, que tienen lógica personalizada integrada para ese cliente específico. A menudo, lo que sucede es que se actualiza un archivo binario, lo que requiere cambios en varios otros archivos binarios, pero cuando se realiza una confirmación, nadie tiene ningún registro o conocimiento de esto. Un error algo común que veo es 'Función / Método no encontrado' o 'La llamada al método tiene demasiados / muy pocos parámetros especificados' en un entorno de clientes.
Esta es una solución .net VB
No puede instalar ningún software en los sitios del cliente, pero puede
Nuestra aplicación es extremadamente personalizable, pero desafortunadamente la lógica de personalización se extiende a todas las clases y archivos, desde el front-end hasta la capa de datos, incluidos los cambios personalizados realizados en la base de datos por cliente.
Prácticamente no hay comentarios en el código. No hay documentación sobre la arquitectura. No hay documentación sobre la API. Lo único que tenemos son cientos y cientos de cadenas de correo electrónico que explican un poco lo que está sucediendo. Las únicas personas que conocen el código son las que lo escribieron originalmente, pero ya no son desarrolladores por lo que no se involucran tanto.
Y antes de que lo digas ... sí, lo sé; Quiero pegarme un tiro también. No ayuda que haya un código de espagueti, cientos de advertencias del compilador y un polimorfismo roto que REALMENTE debería repararse, pero no tengo nada que decir.
Los tipos de errores más comunes con los que me encuentro son errores de referencia nula, conversiones no válidas y faltas de coincidencia de funciones / firmas de funciones. A veces tengo suerte y el visor de eventos registrará la clase, el método y el mensaje de excepción. No es lo más útil, pero sigue siendo algo. Lo peor son los errores que no tienen seguimiento, no hay pasos de repro además de una captura de pantalla, y son mensajes de error genéricos como los mencionados anteriormente. A veces no es posible descubrir por qué ocurrieron, solo rezar para que el entorno no esté configurado correctamente y que desaparezca más tarde.
Sé que esto sale como una queja, y hasta cierto punto lo es. Pero estoy desesperado por opciones. ¿Hay otros métodos / herramientas que pueda usar?