前回に引き続き、ブラックボックステストの話です。
nagasaki-it-engineers.connpass.com
発表スライド
ドメイン分析勉強会 from Kosuke Fujisawa
www.slideshare.net
1問目
http://www.slideshare.net/mhlyc/ss-58471801/37
問題に対する意見
- 「Lv.20に到達したとき進化する」というのは、Lv21以降は進化しないのか?
- 「Lv.21以降も進化する」とのこと
- つまり、「Lv.20以上は進化する」と訂正されました
- 「Lv.100に到達した後、なつき度が200を超えた時、進化できるのか?
自分が解いた図
- 赤い部分が進化する場所、青い部分がエラーの場所
解いた結果後の疑問
- X≧1やY≧0の条件は必要ないのでは?
- Lv.101以上やなつき度256以上をテストする必要が無いのでは?
- XとYの両方がONポイント(カド部分)のテストをなぜ行わないのか?
- そのテストをして期待値通りの結果にならなかった場合、どちらが原因で期待通りにならなかったか分からないため
- ドメイン分析は、あくまでも対象の直線(もしくは曲線)の式が正しいかどうかを見るために行っている。
- なので、傾きなどが正しいか他のテストケースで示すことができれば、XとYの両方がONポイントのテストを行う必要がないはず。
- 理科の実験と同じで、テストしたい部分以外はできるだけ影響を与えない場所(INポイント)を取った方が良い
- すると、「傾きが正しいことも同時に確かめられるため、INポイントを固定しないほうが良い」という考え方は、失敗の原因を隠すのではないか?
- あるテストケースが失敗した場合、それがONポイントが原因なのか、INポイントが原因なのか判断つかなくなるのではないか?
- すると、「傾きが正しいことも同時に確かめられるため、INポイントを固定しないほうが良い」という考え方は、失敗の原因を隠すのではないか?
- そのテストをして期待値通りの結果にならなかった場合、どちらが原因で期待通りにならなかったか分からないため
2問目
http://www.slideshare.net/mhlyc/ss-58471801/39
自分が解いた図
- 赤い部分が対象
解いた結果後の疑問
- X<30はX≦29と書き換えた方が良いのでは?
- OFFポイントが有効で、ONポイントが無効になってしまうので分かりづらそう
- ちょうど、 @akiyama924 さんがドメイン分析で似たような話をしていたので聞いてみました
@nihonbuson 開発用の仕様をテスト仕様に書き換えるときに何らかのルールを決めて書き換えるのはよいと思います。
— akiyama924☔️ (@akiyama924) 2016年2月22日
何らかのルールとは例えば「ドメイン分析のときの境界値は必ず閉じるで定義し直す」などです。
@nihonbuson ただ、開発用の仕様を書き換えるのはお勧めできません。
— akiyama924☔️ (@akiyama924) 2016年2月22日
59歳以下と60歳未満はプログラミングのときに変わってくるからです。
年齢が整数であることの前提はいつかわるかもしれません。59歳6ヶ月を59.5と表すようになったときにこ同じロジックでいけるかどうか。
どちらが良いのではなく、統一することが大切なのは、まさしくそうだと感じました。
3次元の図を描く必要は無いのでは?
- 描くことが必須ではない
- ONポイントやOFFポイントがどこか分かるために描いたりする
演習問題を解き終えた後の意見
- 今回の例題2つはそもそもドメイン分析で解かないのでは?
- テスト設計技法を考える前に、そのテストの目的は何なのか考えることが大切
- テストケースを具体的に考えることで、そもそもの仕様の不透明部分が分かったりするので、今回のように考えることは実装前のレビューとして有用
終わりに
- 内容はドメイン分析の勉強会ながら、テスト目的やレビューなどにも話が及んで大変参考になる勉強会でした!