나는 직장에서 응용 프로그램을 디버깅하는 일을 자주합니다. 테스트 환경 및 프로덕션 환경을 포함하여 비즈니스에 배포하는 BI 응용 프로그램입니다. 이러한 제약 조건에 따라 사람들이 제안 할 수있는 앱 / 도구 / 메소드가 있는지 궁금합니다.
소프트웨어는 테스트 환경이없는 사용자 지정 타사 응용 프로그램에 의존하기 때문에 클라이언트 사이트 나 로컬에서 디버거를 사용할 수 없습니다. (편집 : 공평하게, 어떤 경우에는 로컬에서 디버깅 할 수 있습니다. 핵심 코드 만 사용하는 경우 문제가있는 코드의 대부분은 타사 특정 통신을 캡슐화하는 dll에 있습니다 : 소켓, 프로세스 파이프, 비누 호출, 핵심 코드의 동작을 변경하는 사용자 지정 논리 일반적으로 클라이언트를 구현하거나 향상시키는 동안이 영역에 새 코드를 작성합니다.)
우리 앱에는 거의 로깅이 없습니다. 단위 테스트가 없습니다.
버전 관리에는 전체 솔루션의 1 가지 버전 만 있습니다 (source safe 2005 사용). 따라서 전체 솔루션의 이전 버전을 얻을 수 없으며 개별 파일 만 가져올 수 있습니다. (누군가이 문제를 해결할 방법이 없다면).
로컬에서 재현 할 수없고 종종 테스트 환경에서 재현 할 수 없습니다 (테스트와 프로덕션이 동일한 버전이 아닐 가능성이 높음).
클라이언트가 사용중인 버전이 소스 세이프 버전과 다를 가능성이 높습니다. 개별 파일이 업데이트되어 특정 클라이언트에 대한 사용자 지정 논리가 포함되어 있기 때문입니다. 종종 다른 바이너리에 대한 변경이 필요한 바이너리에 대한 업데이트가 발생하지만 커밋이 완료되면 아무도 이에 대한 기록이나 지식이 없습니다. 다소 일반적인 오류는 클라이언트 환경에서 '함수 / 방법을 찾을 수 없음'또는 '방법 호출에 너무 많은 매개 변수가 지정되었거나 너무 적습니다.'입니다.
이것은 .net VB 솔루션입니다
클라이언트 사이트에는 소프트웨어를 설치할 수 없지만 로컬로 설치할 수는 있습니다
우리의 응용 프로그램은 매우 사용자 정의가 가능하지만 불행히도 사용자 정의 논리는 클라이언트마다 데이터베이스에 대한 사용자 정의 변경 사항을 포함하여 프론트 엔드에서 데이터 계층까지 모든 클래스와 파일에 분산되어 있습니다.
코드에는 실제로 주석이 없습니다. 아키텍처에 대한 설명서는 없습니다. API에 대한 문서가 없습니다. 우리가 가진 유일한 것은 진행 상황을 설명하는 수백 개의 이메일 체인입니다. 코드를 아는 유일한 사람은 원래 코드를 작성한 사람이지만 더 이상 개발자가 아니기 때문에 그다지 관여하지 않습니다.
그리고 당신이 말하기 전에 ... 네 알아요; 나도 쏴보고 싶어 스파게티 코드, 수백 개의 컴파일러 경고 및 REALLY를 수정 해야하는 깨진 다형성이 도움이되지는 않지만 도움이되지는 않습니다.
내가 겪는 가장 일반적인 종류의 오류는 null 참조 오류, 유효하지 않은 캐스트 및 누락 된 함수 / 기능 서명 불일치입니다. 때로는 운이 좋으며 이벤트 뷰어가 클래스, 메서드 및 예외 메시지를 기록합니다. 가장 도움이되지는 않지만 여전히 뭔가입니다. 가장 나쁜 것은 추적이없고, 스크린 샷 외에 재현 단계가없는 오류이며, 위에서 언급 한 것과 같은 일반적인 오류 메시지입니다. 때때로 그 원인을 파악할 수없고 환경이 올바르게 구성되지 않았으며 나중에 사라지도록기도하기 만 할 수도 있습니다.
나는 이것이 약간의 진창으로 벗어났다는 것을 알고 있습니다. 그러나 나는 옵션에 필사적입니다. 사용할 수있는 다른 방법 / 도구가 있습니까?