私は仕事でアプリケーションのデバッグを頻繁に行います。これは、テスト環境と実稼働環境を含む、ビジネスに展開するBIアプリケーションです。これらの制約に基づいて、人々が提案できるアプリ/ツール/メソッドがあるかどうか疑問に思っています:
ソフトウェアはテスト環境がないカスタムサードパーティアプリケーションに依存しているため、クライアントサイトまたはローカルでデバッガーを使用することはできません。(編集:公平にするために、場合によってはローカルでデバッグすることができます。コアコード以外を使用しない場合、問題のあるコードの多くは、サードパーティ固有の通信をカプセル化するdllにあります:ソケット、プロセスパイプ、soap呼び出し、コアコードの動作を変更するカスタムロジック。通常、クライアントの実装または拡張中に、この領域に新しいコードを記述します。
アプリでは実質的にロギングは行われません。単体テストはありません。
バージョン管理には、フルソリューションの1つのバージョンしかありません(ソースセーフ2005を使用)。そのため、ソリューション全体の以前のバージョンを取得することはできず、個々のファイルのみを取得することができます。(誰かがこれを回避する方法を知っていない限り)。
ローカルでは再現できません。テスト環境では再現できないことがよくあります(テストと本番が同じバージョンではない可能性が高い)。
クライアントが使用しているバージョンがソースセーフのバージョンと異なる可能性が高くなります。これは、個々のファイルが更新され、その特定のクライアント用のカスタムロジックが埋め込まれているためです。多くの場合、バイナリが更新され、他のいくつかのバイナリを変更する必要がありますが、コミットが完了すると、これについての記録や知識はありません。よくあるエラーは、クライアント環境で「関数/メソッドが見つかりません」または「メソッド呼び出しに指定されたパラメーターが多すぎる/少なすぎる」ことです。
これは.net VBソリューションです
クライアントサイトにはソフトウェアをインストールできませんが、ローカルにインストールできます
私たちのアプリケーションは非常にカスタマイズ可能ですが、残念ながら、カスタマイズロジックは、クライアントごとにデータベースに加えられたカスタム変更を含め、フロントエンドからデータレイヤーに至るすべてのクラスとファイルに分散されています。
コードには実質的にコメントはありません。アーキテクチャに関するドキュメントはありません。APIに関するドキュメントはありません。私たちが持っている唯一のものは、何が起こっているかをいくらか説明する何百もの電子メールチェーンです。コードを知っているのは元々コードを書いた人だけですが、彼らはもはや開発者ではないので、それほど関与しません。
そして、あなたがそれを言う前に...はい、私は知っています。自分も撃ちたいです。スパゲッティコード、何百ものコンパイラ警告、そして本当に修正すべきポリモーフィズムが存在することは助けにはなりませんが、私はそれに言及していません。
私が遭遇する最も一般的な種類のエラーは、null参照エラー、無効なキャスト、および欠落した関数/関数シグネチャの不一致です。幸運なことに、イベントビューアーはクラス、メソッド、例外メッセージをログに記録します。それは最も有用ではありませんが、それでも何かです。最悪なのは、スクリーンショット以外にトレースや再現手順がないエラーであり、上記のような一般的なエラーメッセージです。環境が適切に構成されておらず、それが後でなくなることを祈るだけで、それらが発生した理由を見つけることができない場合があります。
私はこれが少し暴言として出てくることを知っています、そしてある程度はそうです。しかし、私はオプションに必死です。私が使用できる他の方法/ツールはありますか?