読者です 読者をやめる 読者になる 読者になる

ソフトウェアの品質を学びまくる2.0

旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

「コピー&ペースト&モディファイ法」の第二の側面

テスト設計・技法
 無知見のテスト対象に対して、テスト計画・テスト設計という本来あるべきプロセスを省略し、素早くテスト実装を行うことのできる極めてプラクティカルなテスト技法として、「コピー&ペースト&モディファイ法」(通称「CPM法」)があります。
 詳しくは、@snskさんのこちらの記事で紹介されています。CPM法について解説した資料として、国内でこれ以上のものを見たことがないほど充実した記事です。

snsk.hateblo.jp この記事にもあるように、CPM法は、「仕様書の表現をモディファイすることでテストケースを生成する」という合理的な技法です。また、仕様書に記述された自然言語の構文を解析し、語尾を「~であること」を置換することによるテストケース自動生成の実現可能性が非常に高い技術としても注目されています。

 この技法について先ごろ、上記のプロセスが、2つあるCPM法の片方でしかないということを学びました。もう1つのCPM法とは、どのようなプロセスでテストケースを実装するのでしょうか。
 それは派生開発時に、「前の開発で使ったテストケースを、ほぼそのまま使う」というものです。

20140116_01

 もちろん、過去のテストケースという資産を適切に管理し、リグレッションテストなどで再利用するといった近視眼的な発想ではありません。CPM法においては、「何故そのテストケースが必要なのか」という意図・背景を一切問いません
 「あるから、やる」。このアルピニスト的発想により、よくわからないけどやっているテストケースがどんどん充実していくというポジティヴ・フィードバックが生まれます。
 このように2種類あるCPM法のうち、前者が「同じ開発での成果物」をインプットとし、後者が「前の開発での成果物」をインプットとしていることから、それぞれに「Horizontal CPM Method」「Vertical CPM Method」とかっこよさげな名前を与え、両者を包摂する概念としての、狭義のCPM法の普及に努めたいと考えています。
 ただしCPM法は、テスト計画・テスト設計のプロセスを不要としているものの、テスト実装のプロセスは依然として残っています。つまり、テストケースを作らなくてはならない。この点がCPM法の限界であり、テスト実装のプロセスをも削ぎ落とした「モンキーテスト」に比べてアジリティに改善の余地があります。
 さらに近年、「テスト実行」をも省略する究極の断捨離テスト技法も実用と普及が進み始めているようです。
 テストにはまだまだ、フロンティアが広がっていますね。