HAROLABO Tech Blog

テクノロジーを使いやすく!ハロラボの技術情報発信メディアです。

障害対応

ソフトウェア開発にはバグはつきものです。 バグを直す作業は障害対応、不具合対応などと呼ばれます。

障害対応の方法

現象を明らかにする

まずは何が起きているのか、どのような条件で起きるのかを明らかにします。 優秀なテスターの場合は、これらの情報を十分送ってくれますが、そうでない場合も多いです。 また、市場で起きた障害の場合は、そもそも情報がほとんどない場合が多いです。 それでも出来る限りの情報を集めます。

  • 現象(何が起きたか)
  • 発生環境(起きる環境と起きない環境は何か)
  • 発生条件(起きる環境下で、起きる条件と起きない条件は何か)
  • 発生確率(起きる条件下で、起きる確率はどのくらいか)

現象を再現する

何が起きているか分かったら、現象を再現します。 再現性があるかどうかを確認するのが目的です。 再現すると原因の究明が楽になるので、発生条件を見つけ、できるだけ再現できるようにすることが重要です。 但し、再現しなかったからといって、そこで障害対応を止めてはいけません。

原因を突き止める

現象が発生する原因を突き止めます。 原因を明らかにするのが目的であり、現象をなくすことが目的ではありません。 決して、こう対応したら現象が収まったので対応終わり、などとしてはいけません。 方法としては、まずあるべき仕様を明らかにし、あるべき仕様とどう異なるのかを確認していきます。 場当たり的に修正して確認することを繰り返してはいけません。 仕様と異なる振る舞いを起こすための仮説を立てて、仮説を検証するための修正を行い、確認します。 原因を突き止めたら、同じ原因の混入箇所が他にないかも探します。

修正する

原因と混入箇所が明らかになったら、現象をなくす修正をします。 この時点では、必ずしも原因そのものを取り除かなくても問題ありません。 QCDを考慮し、もっともよい方法で現象をなくします。 特に市場で起きた障害の場合は、即時に現象を抑える暫定対応をまず行い、その後、原因を取り除く恒久対応を実施する場合があります。

再発防止する

特に市場で起きた障害の場合、影響が大きくなることが多いです。 そのため、同じ問題を起こさないための再発防止を行います。 再発防止における根本原因分析では、一般的になぜなぜ分析をすることが多いですが、特性要因図を用いてあるべき姿に対して何が足りなかったかを考えていくと、分析しやすいと思います。

根本原因の対策としてよくあるのがチェックリストが増えることですが、それでは作業時間が増えますし、チェックという人のスキルに依存する以上、ミスを0にはできません。 環境やプロセスで防止できるように考えていくことが大事です。

ja.wikipedia.org