「やる夫で学ぶTDD」二日目 Myersの三角形 二等辺三角形 #ytdd

某SIerで if(true == false) のような神コードのインスペクションで廃人化しているやらない夫こと太田先生の「やる夫で学ぶTDD」二日目です。
12
前へ 1 2 ・・ 5 次へ
Kenichiro Ota @oota_ken

とも子:説明しているのに本当に失礼な男ね!私の仕事上の単価を知ったら目ん玉飛び出るわよ!まあ、そんなことはいいわ。

2011-02-03 23:15:14
Kenichiro Ota @oota_ken

とも子:そして、三角形を満たさない三辺の集合から 0 0 0を選んだ。ここまではいいわね。

2011-02-03 23:15:51
Kenichiro Ota @oota_ken

とも子:やる夫は a > 0 && b > 0 && c > 0 で三辺の集合を同値分割したのよ。そして、同値分割した時のテストデータはどれを選べばいいと思う?

2011-02-03 23:17:31
Kenichiro Ota @oota_ken

やる夫:同値ってことはその分けられた集合に対してはプログラムはおんなじように扱っていいってことだお。さっきの20歳以上は大人って場合、やる夫ももう大人だからやる夫の年齢28を選ぶお!

2011-02-03 23:18:27
Kenichiro Ota @oota_ken

とも子:やる夫は今度プロジェクトでバグを出しまくって毎日怒られていて、自分でバグを早めに見つけたくて、TDDとテスト技法を学び始めたのよね?そしたら、値はなんでもいいってことはないわよね?

2011-02-03 23:20:33
Kenichiro Ota @oota_ken

やる夫:既に同値分割を使ったから、何でもいいってわけじゃなくて、その中から選んでいるから区別しているお!

2011-02-03 23:21:02
Kenichiro Ota @oota_ken

とも子:でも、同じ同値分割された集合の中から、さらにバグを見つけやすい値があるとしたらどうかしら?

2011-02-03 23:21:43
Kenichiro Ota @oota_ken

やる夫:それを使うお!ま、まさか…さっきの"0"がそれかお

2011-02-03 23:22:09
Kenichiro Ota @oota_ken

やらない夫:とも子はこう見えて優しいんだぞ。やる夫が自分で気づくように、質問していったんだぞ。一発で答えを言うのは簡単だ。でも、重要なのはクライアント自身が答えを見つけ出すこと。そして、その過程だ。とも子はそれを心得ている。だから、彼女は優秀なんだ。

2011-02-03 23:23:30
Kenichiro Ota @oota_ken

とも子:ほめても別にあんたのカレシなんかにならないわよ。で、やる夫いいところに気づいたわね。そう、同値分割の中で、集合を分割させるための値、それを境界値と呼ぶわ。そして、その境界値を分析するのが、「境界値分析」よ。

2011-02-03 23:25:11
Kenichiro Ota @oota_ken

とも子:境界値分析では境界値となる値を on ポイントと呼ぶわ。そして、境界値に隣接した値を offポイント呼ぶのよ。境界値分析を使った場合のテストケースはonポイントのテストケースとoffポイントのテストケースから構成されるわ。

2011-02-03 23:26:57
Kenichiro Ota @oota_ken

とも子:変数の組み合わせによって次元数が増えるとon offの分析が難しくなるけど、最初はまず境界値 は onと覚えておけばいいわ。

2011-02-03 23:27:45
Kenichiro Ota @oota_ken

とも子:ここで、境界値はなにになるかしら?

2011-02-03 23:28:03
Kenichiro Ota @oota_ken

やる夫: a > 0 && b > 0 && c > 0だから 0 0 0かお?

2011-02-03 23:28:50
Kenichiro Ota @oota_ken

とも子:そのとおりね。 >= でも > でも on ポイントは右辺もしくは左辺に来るリテラルのその境界値そのものになるわ。次はoffポイントね

2011-02-03 23:30:04
Kenichiro Ota @oota_ken

やる夫:これは -1 -1 -1 いや、1 1 1かお?

2011-02-03 23:30:43
Kenichiro Ota @oota_ken

とも子:1 1 1が正解よ。 a >= 0 の場合、-1になるけど、 a > 0では 1ね。これは間違いやすいから注意ね。on offの区別と、in(条件式が真になる値) out (条件式が偽になる値)は違うので注意ね。

2011-02-03 23:32:23
Kenichiro Ota @oota_ken

とも子:前回まで使ったテスト技法の説明はここまでね。実はひそかに別の技法を使っているのだけど、これはMyersの三角形の例題が全部終わった時に改めて説明するわ。

2011-02-03 23:33:34
Kenichiro Ota @oota_ken

やる夫:とも子は嫌な奴だと思ったけど、すごい教え方うまいお。実はツンデレなのかもしれないお!

2011-02-03 23:34:08
Kenichiro Ota @oota_ken

やらない夫:まあ、幼稚園の時はツンデレだったな。そろそろ光たんがこっくりし始めているから、ペアプロやろうか。

2011-02-03 23:34:46
Kenichiro Ota @oota_ken

やる夫:ペアプロやるお!二等辺三角形は・・・二編が等しい三角形だお!とりあえず、二辺が等しくて、かつ正の整数のテストケースを作るお!

2011-02-03 23:35:41
Kenichiro Ota @oota_ken

やらない夫:テストから書くことが身に付き始めているな。立派だやる夫。

2011-02-03 23:36:14
Kenichiro Ota @oota_ken

やる夫:テストメソッド名はtestIsoscelesTriangleIsTrueで作ったお。

2011-02-03 23:38:12
Kenichiro Ota @oota_ken

やらない夫:日本人の場合テストメソッド名は日本語が分かり易いかな。まあ、実装メソッドが英語の場合、テストメソッドも英語というスタイルもある。やらない夫は文字コードの問題で苦しんだことがあるので、英語を使うことにしている。

2011-02-03 23:39:27
Kenichiro Ota @oota_ken

やる夫: 2 2 1の triangle.setA(BigDecimal.valueOf(2)); triangle.setB(BigDecimal.valueOf(2)); triangle.setC(BigDecimal.valueOf(1)); で作ったお

2011-02-03 23:40:44
前へ 1 2 ・・ 5 次へ