この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。
年明け早々、ソフトウェアの納品ラッシュを迎えております。
開発に使用している環境 (社内のPC) ではちゃんと動いているように見えても、実際の環境 (お客様のPC) でのテスト稼働ではエラーが出る、なんてことも。
そうなったら、さて一大事。
膨大な量のコード上で、経験と勘とデバッガを駆使して処理の流れを追い、不具合の原因となっている個所を突き止め、そこを修正しなければなりません。
しかしながら、この問題修正は非常に難解で根気の要る作業です。
問題の原因が、エラーが発生している場所とは別のモジュールにあったり、複数の要素が連動して問題を起こしていたり、実行するたびにエラーの内容が変わったりと、一筋縄ではいきません。
かくして、ソフトウェア開発の労力の半分以上は、こうした不具合 (バグ) を取り除く作業 (デバッグ) に費やされることとなります。
「なら、最初から不具合が出ないようにプログラムを組めばいいじゃないか」と言われそうですが、バグの発生をゼロに抑えるというのは現実的には不可能だと考えられています。
そのため、ソフトウェア開発業務においては、如何にして
- 不具合が発生しにくい
- 不具合の発生に気が付きやすい
- 不具合の原因を特定しやすい
- 不具合の影響を最小限に抑える
ようなプログラムを作るか、ということが最も重要なポイントとなります。
担当: 成田 (最強のエンバガ、再び。)
「なにぃ~エラーだとぉ~!」
「こしゃくなー」
「叩き切ってやるー」
・・・とばかりに、返してくるエラーを調子に乗って
スキップさせてたら無限ループに迷い込み、えらい目
にあいました(^^ゞ
むか~し、昔の、若気のいたり
yumeguri 様:
私はまだ現役「若気の至り」かもしれません。
コンパイラが、「引数の型が違う」とエラーを出すので、
キャストで強引に型を合わせて、とんでもないバグを
作りこんだり……。