ワインバーグの本を読む(5)

こんにちは、検索迷子です。


今日もワインバーグの本を読む(3)の続きです。
先日は、ワインバーグの本を読む(4)では第1〜4章をご紹介しました。


今日は、『パーフェクトソフトウエア −テストにまつわる幻想』の5章からの内容です。

パーフェクトソフトウエア

パーフェクトソフトウエア

『パーフェクトソフトウエア −テストにまつわる幻想』の第5章からの内容


以下、抜粋引用します。
見やすさを考えて、章ごとに区切りますが、内容については一切手を加えていません。

第5章 メタテスト−テストをテストする


まとめ
 メタ情報、つまり情報の質に関する情報の使い方を身につければ、テストの効率を大幅に高め、コストを抑えることができる。


よくある間違い
1.重要な情報はすべてテストレポートの中にあると思っている。
2.自分の机に座っていてもテストの状況はわかると思っている。
3.テストによって、何かが正しいと「証明」できると思っている。
4.文書があるというだけで価値があると思っている。
5.評価・修正・アサイン待ちのバグリストが人間の理解力を超える長さになるまで放っておく。
6.他人を非難し、バグを隠そうという気を起こさせる。
7.型通りのことをやった人が報酬を得られる。
8.見つかったエラーをすべて記録していない。
9.見つかったエラーを記録しすぎる。
10.何をテストし、何を報告するかを気分で決める。
11.いい加減なモデルを使って進捗を評価する。
12.正式なプロセス記述がつねに間違いなく守られていると思っている。
13.客観性を信じている。
14.テンプレートを使って作成された文書を注意深く見ていない。

第6章 知りたくない情報への免疫反応


まとめ
 情報は中立的なものだが、情報に対する人間の反応が中立的であることはめったにない。テストの情報を評価するには、抑制、合理化、投影、置き換え、過補償、脅迫という人間の感情的防衛を考慮しなければならない。いつも冷静、慎重、実際的な態度に徹すれば、感情的な動揺を拡散させ、テストに非論理的なプロセスが入り込むのを防ぐことができる。


よくある間違い
1.人びとの恐怖に気づかない。
2.恐怖の環境を作っている。
3.決定を下すときに、事実より恐怖を優先する。
4.決定を下すときに、事実より希望を優先する。
5.強迫的行動をとる。
6.自分の考え方に対する反論はすべて病的だと考える。
7.頭から否定する。
8.ここでそんなことが起きるはずがないと考える。

第7章 防衛反応にどう対処するか


まとめ
 正しくスタートし、慎重かつ冷静に先を見越した行動を続ければ、感情的な同様がテストに大きな影響を及ぼすことは避けられる。


よくある間違い
1.個人差を配慮しない。
2.人に対して品質のことを考えていないなどと言う。
3.頭を使わない。
4.自分に対して過度に批判的になる。
5.自分に対して批判的ではない。

第8章 良いテストの条件とは?


まとめ
 テストが成功したかどうかを確実に知る方法はないが、失敗したかどうかを知る、または推定する方法はいろいろある。


よくある間違い
1.どのような情報が必要かを考えない。
2.見つけたバグの数によってテスト担当者を評価する。
3.テストの良否を確実にしることができると考える。
4.状況を考慮しない。
5.製品の内部構造を知らずにテストする。
6.製品の内部構造を知りすぎてテストする。
7.バグを統計的に推定するときに、その数字が固定された確定的数値であるかのように扱っている。
8.テストの「悪さ」の評価基準を適用しない。
9.開発がきちんとできていない。
10.多数のバグが見つかることによるテスト効率の損失を考慮しない。

第9章 テストに関するおもな誤謬


まとめ
 テストに関するおもな誤謬をいくつか認識することで、プロジェクトマネジャーがおかすひどい誤りの半分はなくすことができる。


よくある間違い
1.長期的に見て非難が有効だと思っている。
2.問題に対する第一印象がつねに正しいと思っている。
3.「完全に」テストができると思っている。
4.ソフトウエアは「いい加減に」開発してから、テストで品質を高めればいいと思っている。
5.システムテストでバグはすべて見つかるから、ユニットテストは余計だと考えて省略する。
6.ユニットテストでバグはすべて見つかるから、システムテストは余計だと考えて省略する。
7.テストが品膣を作ると思っている。

第10章 テストはキーを打つだけではない


まとめ
 キーを打つかどうかにかかわらず、何らかのアクションに影響を及ぼす情報を求めるものでなければ、テストとは呼べない。


よくある間違い
1.コンピュータは心を読めると思っている。
2.ソフトウエアのうたい文句を検証していない。
3.テストにカバレッジツール(「白い手袋のテスト」など)を使わない。
4.カバレッジテストが何かをテストした証明になると思っている。
5.プロセス文書とプロセスを混同する。
6.文書と事実を混同する。
7.「ドッグフードを食べ」ない。
8.ドッグフードテストに、典型的ではない「犬」しか使わない。
9.テスト担当者をテストしない、またはテストしすぎる。
10.デモンストレーションをテストといつわる。

ドッグフードテストとは


10章にある「ドッグフードテスト」について補足入力します。
本書を読むのが一番いいのですが、ここの部分をさらに抜粋します。
自分としても大事な点だと思ったのと、用語が一般語なのかどうかという意味でも、
ちょっと追加で入力しておきたい点でした。


また、本書の大半のテイストが、こういう会話調でのエピソード紹介となっており、
このトーンで全体的に展開されているといった紹介にもなります。

ドッグフードテスト


(前半省略)
 「前にいた会社のスローガンがもとになったの。『ドッグフードを愛犬に食べさせる前に自分で食べろ』ってね。犬の飼い主にとっていいアドバイスかどうかはわからないけれど、ソフトウエアの開発者は自分たちの製品を使ってテストするべきよ。すばらしいアドバイスだと思う。それでも、開発者がこう言うのをよく聞くけれどね。『自分たちの製品なんて使わないよ。そいつはテスト担当者にまかせる』って」
 「そうさ」とバリーは肩をすくめた。「使うもんか」
 「たしかに、ふだんの仕事の中では使わないでしょうけれど、まねごとで使うことはできるでしょ。ユーザーが使っているところを見るだけでもいい」
 「それはためになるかもしれないけれど」バリーも認めた。「でも、十分なテストとは思えないな。ドッグフードテストしかしなかったら、ええと何だっけ、サンプリングエラーをすることになるのでは?」
 ローズは、バリーが理解し始めたことに満足の笑みを見せた。「そのとおり。たとえば、ソフト開発者は典型的なワープロユーザーではない。典型的なコンパイラユーザーでもない」


自分たちの製品を使う、
ユーザーが使っているところをみるだけでもいい、
この言葉をしみじみとかみしめますね。


確かに、作っているのに使っていない、
使う人を想像してしないで作るだけ、
という人も結構な数、いたりするのが現実です。


ドッグフードテスト、覚えておきたい用語です。


今日は、10章まで。
明日以降また残りを入力します。


では、また。