ソフトウェアテスト技法ドリルの感想
秋山さんが執筆された「ソフトウェアテスト技法ドリル―テスト設計の考え方と実際」を読んでみた。
テストケース作成技法がとても実践的で、しかもフリーのツールを色々説明していて役立ちそうな感触を持った。
感想をメモ。
【元ネタ1】
【感想】ソフトウェアテスト技法ドリル/秋山浩一 - Software Quality Topics.
「ソフトウェアテスト技法ドリル―テスト設計の考え方と実際」は、テストケース作成技法を初心者~中級者レベルに向けて書かれていると思われる。
同値分析、境界値分析の使い方から原因結果グラフ、HAYST法、ペアワイズ法など各種の技法が説明されている。
僕が興味を惹いたのは、原因結果グラフからデシジョンテーブルを生成するツールCEGTestと、ペアワイズ法によって組み合わせを生成するツールPictMasterの説明がとても詳しかったこと。
練習問題を解きながらツールを使うので、とても分かりやすい。
【元ネタ2】
CEGTest - 原因結果グラフからテスト条件を作成するツール
原因結果グラフによるテスト設計支援ツール - CEGTest: ソフトウェアテストの勉強室
(引用)
CEGTest(セグテスト)は、複雑な論理関係を持つソフトウェア・プログラムの組合せテスト条件作成を支援するツールです。本ツールを用いることで、従来ある程度の経験と知識が必要であったテスト技法「原因結果グラフ技法」を、ブラウザ/JavaScriptベースで直感的に実践することができます。また、成果物であるテスト条件に関する「デシジョンテーブル」は同時に自動生成されるため、作業者はソフトウェア対象・テストベースの分析に集中することができます。よって、本ツールを利用することで、より効果的・効率的なテスト設計が行えます。
原因結果グラフ技法はソフトウェア・プログラム仕様の分析や整理をするためにも用いられます。本ツールはテストエンジニアだけではなく、プログラマやソフトウェアエンジニアにも品質向上の一助になると考えています。
業務系ソフトではデシジョンテーブルがまさに仕様そのものであり、単体テストや結合テスト、受入テストのテストケースの元ネタになる。
デシジョンテーブルの使い道としては、システムの状態遷移表として扱ったり、たくさんのパラメータをインプットにしてテストする時があるだろう。
例えば、小売系Webシステムならば、会員・商品・注文の種類に応じて、注文結果をデシジョンテーブルで表現してテストケースを作る時が多いだろう。
だが、デシジョンテーブルの項目は、仕様を奥深く考えないと、間違いが起きやすい。
また、うまく考慮しないとすぐにケース数が発散してしまうので、使いこなすのは難しい。
原因結果グラフは、原因と結果を論理グラフとして表現したもの。
これをマトリクスに置き換えれば、デシジョンテーブルになる。
だから原因結果グラフを用いてグラフ化すれば分かりやすくなる。
しかし、原因結果グラフをきちんと書くのは難しい。
「ソフトウェアテスト技法ドリル―テスト設計の考え方と実際」にも書かれている「Meyersの三角形」の例のように、テストケースを作るのはそれなりの知識を必要とする。
CEGTestは原因結果グラフをWeb上でお絵描きできてデシジョンテーブルを出力してくれるツール。
実際に使ってみると、HTML+JSだけだが、そのままでは結果が表示されない。
XAMPのhtdocsに配置後、URLにアクセスして、サンプルをインポートすると、結果が出る。
【元ネタ3】
ダウンロード - PictMaster - SourceForge.JP
組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題
特集:組み合わせテストをオールペア法でスピーディに!|gihyo.jp … 技術評論社
データパターンの組み合わせからテストケースを自動生成するツール: プログラマの思索
PICTで出力したテストケースをTestLinkへ取り込む: プログラマの思索
PictMasterは、ペアワイズ法によるテストケース作成のためのExcelマクロ。
MSのPICTをベースに作られている。
以前から知っていたものの、マニュアルを読んでも使いづらかった。
「ソフトウェアテスト技法ドリル―テスト設計の考え方と実際」を読んで、具体例を見て、ようやくイメージできた。
ペアワイズ法と比較されるテストケース作成技法として、直交表をベースとしたHAYST法もある。
下記にあるPDFが詳しい。
ペアワイズ法とHAYST法はそれぞれに長所と短所はある。
テストケースを作成する時に、因子(パラメータ)と水準(パラメータがとりうる値)をまず洗い出して、その組み合わせを考える。
しかし、禁則(実際にありえない組み合わせ)を考慮しなければ、いくら組み合わせを作っても、実際のテストケースでは実施不可能のケースが殆どを占めてしまう。
だから、禁則を考慮した組み合わせがペアワイズ法でもHAYST法でも重要なのだが、それをExcel上で手作業で行うのは至難の業。
特にHAYST法は理論として優れていても、フリーのツールが無いので、実際の現場では使えない。
ペアワイズ法の場合、PICTがフリーで提供されているので、禁則の使い方をマスターすれば、テストケース作成に使えるだろう。
要件から設計する時に、テストケースの作成も実施するようにすれば、W型モデルの開発になる。
仕様をプログラムの観点とテストケースの観点から見るようにすれば、特に異常系の漏れが少なくなるだろうと思う。
色々試してみたい。
| 固定リンク
「ソフトウェア」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのenum型はシングルトンクラスみたいだ(2022.06.20)
- テスラが従来の自動車メーカーと異なるところは工場までソフトウェア化すること(2022.02.09)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- 実践した後に勉強するのがエンジニアの本来の道(2022.01.09)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
コメント
CEGTest開発者のsoftestです。紹介していただきありがとうございます。
ツールをダウンロード後に、動作しないという現象は一度ありました。その際は、パスにマルチバイト文字が含まれない場所にフォルダごと移動していただくと、解消されたということがありました。
差し支えなければ動作環境などメールアドレスまでご連絡いただければ調べてみようと思います。
投稿: softest | 2010/11/29 10:55
◆softestさん
コメントありがとうございます。
FireFox3.6.9なのですが、ローカルPC上でCEGTestの最新版はうまく動かなかったです。
XAMP上では正常に動作するので、個人的には問題ないです。
投稿: あきぴー | 2010/11/30 23:24