「やる夫で学ぶTDD」二日目 Myersの三角形 二等辺三角形 #ytdd
とも子:説明しているのに本当に失礼な男ね!私の仕事上の単価を知ったら目ん玉飛び出るわよ!まあ、そんなことはいいわ。
2011-02-03 23:15:14とも子:やる夫は a > 0 && b > 0 && c > 0 で三辺の集合を同値分割したのよ。そして、同値分割した時のテストデータはどれを選べばいいと思う?
2011-02-03 23:17:31やる夫:同値ってことはその分けられた集合に対してはプログラムはおんなじように扱っていいってことだお。さっきの20歳以上は大人って場合、やる夫ももう大人だからやる夫の年齢28を選ぶお!
2011-02-03 23:18:27とも子:やる夫は今度プロジェクトでバグを出しまくって毎日怒られていて、自分でバグを早めに見つけたくて、TDDとテスト技法を学び始めたのよね?そしたら、値はなんでもいいってことはないわよね?
2011-02-03 23:20:33やらない夫:とも子はこう見えて優しいんだぞ。やる夫が自分で気づくように、質問していったんだぞ。一発で答えを言うのは簡単だ。でも、重要なのはクライアント自身が答えを見つけ出すこと。そして、その過程だ。とも子はそれを心得ている。だから、彼女は優秀なんだ。
2011-02-03 23:23:30とも子:ほめても別にあんたのカレシなんかにならないわよ。で、やる夫いいところに気づいたわね。そう、同値分割の中で、集合を分割させるための値、それを境界値と呼ぶわ。そして、その境界値を分析するのが、「境界値分析」よ。
2011-02-03 23:25:11とも子:境界値分析では境界値となる値を on ポイントと呼ぶわ。そして、境界値に隣接した値を offポイント呼ぶのよ。境界値分析を使った場合のテストケースはonポイントのテストケースとoffポイントのテストケースから構成されるわ。
2011-02-03 23:26:57とも子:変数の組み合わせによって次元数が増えるとon offの分析が難しくなるけど、最初はまず境界値 は onと覚えておけばいいわ。
2011-02-03 23:27:45とも子:そのとおりね。 >= でも > でも on ポイントは右辺もしくは左辺に来るリテラルのその境界値そのものになるわ。次はoffポイントね
2011-02-03 23:30:04とも子:1 1 1が正解よ。 a >= 0 の場合、-1になるけど、 a > 0では 1ね。これは間違いやすいから注意ね。on offの区別と、in(条件式が真になる値) out (条件式が偽になる値)は違うので注意ね。
2011-02-03 23:32:23とも子:前回まで使ったテスト技法の説明はここまでね。実はひそかに別の技法を使っているのだけど、これはMyersの三角形の例題が全部終わった時に改めて説明するわ。
2011-02-03 23:33:34やる夫:ペアプロやるお!二等辺三角形は・・・二編が等しい三角形だお!とりあえず、二辺が等しくて、かつ正の整数のテストケースを作るお!
2011-02-03 23:35:41やらない夫:日本人の場合テストメソッド名は日本語が分かり易いかな。まあ、実装メソッドが英語の場合、テストメソッドも英語というスタイルもある。やらない夫は文字コードの問題で苦しんだことがあるので、英語を使うことにしている。
2011-02-03 23:39:27やる夫: 2 2 1の triangle.setA(BigDecimal.valueOf(2)); triangle.setB(BigDecimal.valueOf(2)); triangle.setC(BigDecimal.valueOf(1)); で作ったお
2011-02-03 23:40:44