第200回: 「ソフトウェアテストしようぜ」16 GIHOZ(3. ペアワイズテスト後編)
◀前の記事へ 次の記事へ▶
≡ はじめに
前回は、ペアワイズテスト技法の必要性と使いどころについて書きました。
大事なところを復習します。
「ペアワイズテストを導入するぞ」から始めるのではなく「今の自分のテストではどのようなバグを見つけることができていないか」を改善活動の起点とする。
上記の通り、まずは、現状を分析して、ペアワイズテストをすることによって、「そのテストレベルやテストタイプで見つかるバグの見逃し(2因子間の組合せバグ)があるのなら、ペアワイズテストを導入する」ようにします。こうすれば、導入効果を測りやすいという副次効果もあります。
そういえば、昔、HAYST法が『日〇コンピュータ誌』の記事になったことがあります。そうすると、それを読んだ他社の役員さんが、「うちでもHAYST法をしたらどうなんだい」と部長さんに言ったそうで、その結果、お声がかかることがありました。
もちろん、大変光栄な話ですし有りがたいことです。
しかしながら、「何かよさげな手法(記事には、工数がものすごく削減し品質が上がったって書いてある)」起点で話が進むと、「それでは現状の不具合を見せてください。あなたの仕事のお困りごとを教えてください。」というように進めることができませんでした。(そうできた会社も少しだけあって、その方が成果がでました)
当時の私は、お客様から、「HAYST法の技術を伝えてもらうために高いコンサル費を払って来ていただいているのですから。弊社の活動の分析くらいは自分達でできますから」といわれたら、肯首するしかなかったからです。
それでも、コンサルティングの休憩時間に現場の方とお話しして、「組合せバグも無いわけではないけど、そんなに困ってはいません。それよりも、○○のテストをしたいのだけれど、どうしてよいかわからなくて悩んでいます。何か良い手はありませんか?」といった情報を聞き出して解決すべき問題の糸口を見つけたりしていました。
さて、今回は、GOHOZのペアワイズツールを使いながらGIHOZのテストをします。
≡ ペアワイズテストツール
GIHOZにログインして、リポジトリ一覧からリポジトリをクリックすると、こんな画面が開きます。

右上の[+新規作成]ボタンを押して、ペアワイズテストの[作成]ボタンを押します。

するとペアワイズテストをつくる画面に遷移します。

すでに、サンプルのパラメータと値が入力されていますので、ここで左下の[テストケースを生成]ボタンを押して、テストケースを生成してみるのが良いでしょう。

こういうサンプルがあると何をしたらよいかがパッと分かってよいですよね。
パラメータと値に日本語(かな漢字)が使えることを伝えるために「Type」を「タイプ」と書くなどしたら良いのになあと思いました。あと、この表ってExcelと双方向でコピペできるんですよね。ヘルプに書いておいてくれてもいいのに。
で、まぁ、折角なので、あいさつ代わりにバグりそうな文字「文字種チェックでよく使っている文字」を入れてみます。


順調、順調。(バグりそうもない文字……2行目……も入れておくのがポイントです。あと柿は、果物の柿ではなく、“柿落とし”の「こけら」の方ですし、森鴎外ではなく森鷗外です)
≡ ペアワイズテスト
上記のテストケースはGIHOZのペアワイズテストツールのテストではありますが、組合せの要素は少ないです。単機能テストの範疇かなと思います。
他にも行の途中にあるセルが空セルだった場合の動作の評価なども単機能テストですね。
組合せテストは、組み合わせても特別な機能が働かないことを確認するテスト技法です。
ペアワイズテストは組合せテストの一種ですので、上記の通り特別な機能が働かないことを確認します。
「特別な機能が働かないこと」を言い換えれば「仕様書に書かれていない組合せをつくっても悪いことは起こらない」です。
仕様書に書かれている組合せについては、GIHOZでいえば、「デシジョンテーブルテスト」や「CFD法」でテストケースを作ってテストします。また、GIHOZにはありませんが「原因結果グラフ(とそれを実装したCEGTestツール)」も仕様書に書かれている組合せをテストする技法です。
なお、松尾谷徹は、「仕様書に書かれていない組合せ」を「無則」、「仕様書に書かれている組合せ」を「有則」と名付けました。
「仕様書に書かれていない組合せ」といわれてもピンとこない人が多いと思います。
例えば、先に書いた絵文字や特殊文字のテストですが、私はGoogle Chromeで行いました。
GIHOZの動作環境はトップページによると以下の通りだからです。
GIHOZの動作環境
PC版のGoogle Chrome最新版を推奨いたします。
推奨環境以外で利用された場合、正常に動作しない場合がありますのでご了承ください。
でもあくまで「推奨」です。GIHOZのテストをするときには、市場に流通しているブラウザのトップ5でテストすることが必要です。
軽微なバグは良いとしても、テスト設計ができなかったり、データが消えたり、セキュリティ事故につながる重大なバグがあったら大変だからです。

さて、GIHOZのペアワイズテストツールには生成した一覧表をCSV形式でダウンロードする機能があります。

CSVファイルには、一応、RFC 4180という規格があります。
しかしながら、「文字列の前後のスペース」、「セル内改行」、「”や,の取り扱い」、「カンマの数が行によって異なる場合」、「文字コード(ユニコードなど)への対応」等々、アプリケーション依存の個所が多く、テストでも苦労する個所です。
したがって、それらを考えると、CSVダウンロード機能のテストでは、ブラウザの種類や、ダウンロードしたCSVファイルを読み込むExcelのバージョンをパラメータに追加して組み合わせると良いと思います。

こうしてからテストケースを生成しなおします。
このようにツールを使うと、生成に工数がかからず、パラメータと値の選定という、テストケースの質の向上に注力できるところがよいですね。
ちなみに、GIHOZで生成したCSVファイルの文字コードは「UTF-8(BOM付)」でした。
生成したCSVファイルは、[データ駆動型のテスト自動ツール]から読み込まれることもあります。そこで、GIHOZ側で生成するCSVファイルの文字コードとBOMの有無を指定できるオプションがあると良いかもしれません。
ユーザーがテキストエディタでCSVファイルを開いて文字コードとBOMの有無を指定して保存する手間を省くために。
≡ おわりに
今回は、「GIHOZ」のペアワイズツールを使いながらGIHOZのテストをしました。(正確にはテストケースの生成まででテストの実行はしていませんが)
GIHOZのペアワイズツールの使い方がなんとなく、分かったかと思います。ペアワイズテストツールには、「制約の入力」というもう一つの山があるのですが、そこはヘルプに書いてあるのでお読みいただければよいかと思います。
(今の仕様は使いにくいので、そのうちに変わると思いますし、制約が関係ないところで使ってみて、ペアワイズに慣れることの方が大切なので)
さて、次回は、「デシジョンテーブルテスト」です。こちらは「有則」に対応するテストケース設計技法です。ブラックボックステストをつくる場合の基礎知識になります。
