ソフトウェアテストというか、品質向上ということで、ヒューマンエラーについての本。
ここでは、ヒューマンエラーとは何か、とか、ヒューマンエラーは認知の間違い、判断の間違い、動作の間違い、といったカテゴライズをするのが目的ではない。正しい答えを見出したとしても、ヒューマンエラーによる事故、損害はなくならない。そういった科学的・学術的なことを覚えるよりもより具体的・身近な例をあげている。
当然ながら、ヒューマンエラーのより深い考察を元に対策をとる必要がある場合もある。ただ、昨今のヒューマンエラーというのは単純な要因だけで説明がつくものではない。チェルノブイリ原子力発電所の事故も、「原子炉運転員の教育が不十分であった」「特殊な運転を行ったために事態を予測できなかった」「低出力では不安定な炉で低出力運転を続けた」「実験が予定通りに行われなかったにも関わらず強行した」「実験の為に安全装置をバイパスした」といった複雑な要因が絡み合ったため発生したとも言われている。
途中、ヒューマンエラーの防止策の3つの方針が掲げられている。
作業を行いやすくする。ヒューマンエラーの発生頻度を抑制する
人に異常を気づかせる。損害が出る前に事故を回避できるようにする
被害を抑える。小さな事故が大きな事故に発展しないようにする
これって、実はソフトウェアテストでも応用できそうで、
欠陥を見つけやすくする
血管を事前に作りこませないようにする
テスト優先順位を考える
というように換言できるんじゃないかな。他にも「二人作業班策」って、これはペア・プログラミングそのもの。
リスク分析という観点では、「きっかけ演繹法(Event Tree Analysis, ETA)」「事故原因帰納法(Fault Tree Analysis, FTA)」というアプローチがごくごく自然にエンジニアは使っているような気もする。前者が「マウス操作を誤ったら、どんな事故が発生するか」というリスク分析で、後者は「交通事故はどういう原因で発生するのか」という逆方向の分析。
直接的にソフトウェアテストに活かせるわけでもないが、なかなか興味深い本ですね。
最近のコメント