This article relies largely or entirely on a single source. (March 2017) |
Shotgun デバッグは次のように定義できます。
- バグが解決されることを期待して、ソフトウェアに比較的無目的な変更を加えるプロセス。 [1] [2]
- ハードウェアまたはソフトウェアの問題に対して複数の解決策を同時に試し、そのうちの1つの解決策(通常はソースコードの変更)が機能することを期待するアプローチを使用する。[3]
ショットガンデバッグは成功率が比較的低く、非常に時間がかかる場合があります。ただし、プログラミング言語の機能を不適切に使用している可能性がある場合、その例外となります。ドメインの専門知識と、基盤となるコードベースに対する強い直感と組み合わせることで、対応するエラーメッセージを正式に調査する前に、バグのあるコードを何度か直感的に解決するための良い出発点となります。このように使用すれば、毎回特定のエラーメッセージを検索してインターネットを検索するよりも速く、貴重なテクニックとなる可能性があります。
例
ショットガンデバッグは、マルチスレッドアプリケーションで作業しているときに発生する可能性があります。アプリケーションにデバッグコードを追加して競合状態をデバッグしようとすると、あるスレッドの速度が他のスレッドと比較して変化し、問題が消えてしまう可能性があります。これはハイゼンバグと呼ばれます。一見すると問題の解決策のように見えますが、これは単なる偶然による修正であり、スレッドの動作を変更する他の何らかの要因によって、例えば異なるスケジューラを持つコンピュータ上で問題が再発する可能性があります。プログラムのどの部分にコードを追加しても、「修正」の効果は簡単に元に戻ってしまいます。
参照
参考文献
- ^ Shotgunデバッグの定義
- ^ 「専門用語ファイル: ショットガンデバッグ」。
- ^ 定義 ショットガンデバッグ 投稿者: Margaret Rouse WhatIs.com
この記事は、パブリック ドメインのJargon Fileに一部基づいています。