SE道場 - バグ対応の極意 |     ✤ We Love Softbrain ✤ 

    ✤ We Love Softbrain ✤ 

        日々の仕事や、プライベートな趣味まで掲載しています。

 

皆さん、おはようございますビックリマーク

ソフトブレインのシニアAです。音譜
いつもSE道場をお読み頂きありがとうございますクローバー


本日は『バグ対応の極意』ですひらめき電球

お役に立てれば幸いです...


プログラムをデバッグしていて問題が発生した際、第1にしなければならないのは、

①仕様通りなのか、バグなのかはてなマーク
を切り分けることであるビックリマーク

バグっぽい動きでも特別ルール(あるユーザ用のルートや、ケース別の特殊ルートなど)が存在するため注意する音譜

特別ルールの対応バージョンと、問題が発生しているソフトのバージョンの相違にも注意を払う。

仕様を証明するための資料がなければ、バグとして定義する。


次に行うべきことは、
②以前にバグとして認定されていたかはてなマーク
ということだ。 バグ一覧表などを見て判断するビックリマーク

以前にバグとして認定されていた場合、発生頻度によっては対応不要のケースがあり得る。

以前に同様のバグ対応が行われていた場合、その対応バージョンと問題が発生しているソフトのバージョンの相違に注意を払うひらめき電球


ここでバグと向き合うことになるが、
③まずは何がバグで、どう動くべきだったのかはてなマーク

ということを把握するビックリマーク

この作業を省略してしまうことが往々にして多いが、きちんと整理して進むことが大事であるクローバー


バグを見極めたら、
④バグの原因を見つける
何故その現象が起きたのかはてなマーク


どの変数の値に誤りがあったのかはてなマークロジック、アルゴリズムに誤りはないかはてなマークなどを調べ、プログラムの動きを解明する。


いよいよバグ対応だ。バグ対応には2種類ある。そのうちの1つは、
⑤根本治療
であるビックリマーク

バグの原因となっているロジックを全て正規に変更する。
綺麗に作り変えるイメージであるひらめき電球

バグが発生している関数だけでなく、呼び出し側まで影響が及ぶこともあり、バグ対応として規模が大きくなることを避け、あまり使われない。


そしてバグ対応のもう1つは、
⑥対処療法
であるビックリマーク

根本治療と異なり、バグになる原因を取り除くことは避け、発生している現象を抑えるだけの対応を行う。

修正範囲は小規模に留めることが多い。


今回の極意は次のとおり
 ・根本治療は、主に仕様変更の時に使うと良いひらめき電球
これはデバッグの時間が改めて得られるタイミングがベストだからだ。
対処療法ばかり行っていると、スパゲッティプログラムになるから、その気が見えたら根本治療を選ぶと良い。

 ・対処療法はその手軽さから、皆が一般的に行う対応方法だひらめき電球
しかし先人が行なった対応がメンテナンスし難いプログラムになっていたら早いうちに根本治療を行なう。
ユーザに時間をもらって根本治療を行なう勇気を持つことが、私たち技術者の役目だと私は思うクローバー


次回のSE道場をお楽しみに・・・

 


SE道場では、プログラミングの極意や開発の苦労話等、様々な記事を投稿していますビックリマーク 是非ご覧くださいクローバー 1つ前の開発秘話は...