今年のWACATEのテーマの1つがドメイン分析だったり、先日初めて開催されたJSTQBアドバンストレベル テストアナリストの試験でテスト技法の問題が大量出題された(らしい)りと、テスト技法の流行がまた来てるのでしょうか?
テスト技法といえば、関東圏では2010年から2011年にかけて、秋山浩一さんの『ソフトウェアテスト技法ドリル』をテキストとした「ソフトウェアテスト技法ドリル」勉強会が開催され、テストクラスタの人たちが肩を並べで学んだものでした。
- 作者: 秋山浩一
- 出版社/メーカー: 日科技連出版社
- 発売日: 2010/10
- メディア: 単行本
- 購入: 7人 クリック: 153回
- この商品を含むブログ (19件) を見る
そんな昨今、ソフトウェアテスト関係と思われる方のこんなツイートから、境界値分析談義(Togetterまとめ)が繰り広げられていました。
「境界値分析で最小のテストケースはいくつか。」にしか見えなかった(^_^;)
— Takeshi Uemura (@takeshi01564584) February 15, 2016
この場合は、有効同値クラスは以下で、
1、5、6、10、11、30、31、100
無効同値クラス
0、101
が最小テストケースになるのかな。 pic.twitter.com/QO2KIuEHRT
ツイ主の方はこの表を見てすぐに、境界値分析の例題みたいだと連想されたようです。確かにね・・・。
まずこの表の数字は金額であると仮定すると、以下のようになります。
スパイス | 料金 |
---|---|
1番~5番 | 0円 |
6番~10番 | 0円 |
11番~30番 | 50円 |
31番~100番 | 100円 |
※別の器でスパイスを提供することも可能
スパイス番号は1以上の整数であると仮定して出力値(この場合、料金)で整理すると、以下ですね。
スパイス | 料金 |
---|---|
1番~10番 | 0円 |
11番~30番 | 50円 |
31番~100番 | 100円 |
101番~ | ?円 |
なので、(型の境界とか抜きにして整数だけ考えると、)スパイス番号の境界値は0、1、10、11、30、31、100、101かなーと思ったのですが、にしさんがこんなことをおっしゃる。
もし101番が150だったとすると、次の境界値は130番ではなく、やはり111番も境界値になるね。繰り返しルールを考えるなら、3週目のやっときたい。2週目だけをif文で考えてる可能性もあるからね。
— YasuharuNishi (@YasuharuNishi) February 16, 2016
111番? 130番? 一体どこから出てきたんだ? 「2週目、3週目」「同じルール」とは?と混乱していたところ、秋山さんに補足をいただきました。
@kz_suzuki @YasuharuNishi @takeshi01564584 おそらく辛さ100が100円で辛さ1が0円なので足し併せることで辛さ101の価格を求めると、
— akiyama924 (@akiyama924) February 20, 2016
100 + 0 = 100円
辛さ11が50円なので辛さ111は150円。
この「足す」という発想がまったく理解できなかったのですが、なるほど、「器でスパイスを提供することも可能」という仕様と、「スパイスの辛さはスパイスの量に比例し、スパイスの量は番号に比例する」という仮定をおけば、そういう計算もできるかもしれない。もちろんにしさんご自身が
101番以上は無いんです、の場合、100番と1番を同時に頼むとか100番を2つ頼むとかやりたいよね。あ、そうか。それが可能なら、5番を5回以上同時に頼んだり、10番を2回頼んだりもできるか。
— YasuharuNishi (@YasuharuNishi) February 16, 2016
とおっしゃっているように、1番を101個頼めば、0円で「101番」を実現できてしまうわけですから、比例の仮定はきっとおかしいのでしょう。
ただそういう点はともかく、この表を見て「101は無効同値クラスだ」って決めつけている時点で、わたしはテストエンジニアとしてイマイチすぎるんでしょうね。発想が老化しきっとる。
そしてこういう発想というのは、技法の本を読んでいるだけでは身に付かず、他の人たちとの議論を通じて生まれる側面があるんですよね。
ブログも勉強会もご無沙汰しているので、そろそろ復帰したいなあ。
という気持ちと、これまでブログの見た目に飽きたこともあり、勢いではてなでブログを開設してみました。記事は徐々に移します。
まあそれはそれとして、この記事の「辛さ」を「つらさ」と読むと、つらいです。