「やる夫で学ぶTDD」六日目 四日目の付け足し〜すべての状態遷移モデルを今テストへ〜 #ytdd

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

やらない夫:こんな感じの1スイッチカバレッジの状態遷移表が作られる。スイッチの数はいくらでも指定可能だ。#ytdd http://twitpic.com/3y19ke

2011-02-10 01:44:13
拡大
Kenichiro Ota @oota_ken

やる夫:この、Nスイッチカバレッジというのはどんな意味があるんだお。今回のCSVParserの例で行くとどんな感じだお? #ytdd

2011-02-10 01:45:01
Kenichiro Ota @oota_ken

やらない夫:「"」で始まり、「"」で閉じるといった、シナリオが検証可能だ。さらにスイッチを増やすことによって、「,」の後に「"」があり、その間に「"」以外が続き、「"」で閉じるというテストケースも可能になる。特にParserのような複雑なものの場合、 #ytdd

2011-02-10 01:46:49
Kenichiro Ota @oota_ken

やらない夫:単純な状態遷移表のカバレッジをとっても不十分な場合が多い。ただ、パーサーの場合、拡張BNFとかでパース対象となる言語の言語仕様を決めていることがほとんどなので、その場合、構文テストの技法を使った方がいいだろう。 #ytdd

2011-02-10 01:47:57
Kenichiro Ota @oota_ken

やらない夫:構文テストの詳細は http://amzn.to/eBgRsv 実践的プログラムテスト入門―ソフトウェアのブラックボックステスト を参考にしてほしい。薄く見えるが恐ろしく難易度が高いので注意な。 #ytdd

2011-02-10 01:50:17
Kenichiro Ota @oota_ken

やる夫:TDDと同時に、状態遷移のモデリングもして、そっから、体系だったテストケースも導けちゃうので、状態遷移モデルによるテストケースはTDDで作ったテストケースを補完するってことかお? #ytdd

2011-02-10 01:51:20
Kenichiro Ota @oota_ken

やらない夫:そうだ。やらない夫のいる会社ではそれを MTDD Model & Test Driven Developmentといったりするな。 #ytdd

2011-02-10 01:52:04
Kenichiro Ota @oota_ken

阿部さん:会社にはもう用意してあるから、明日から、やる夫もホイホイッと状態遷移図書いちゃうんだぜ。 #ytdd

2011-02-10 01:52:27
Kenichiro Ota @oota_ken

とも子:いいかしら?状態遷移テストについては一つ大きな注意が必要よ。確かに、技法的にも確立されているテストなのだけど、現実には簡単に状態とその遷移は爆発を起こすために、実プロジェクトで用いるには少々工夫が必要よ。 #ytdd

2011-02-10 01:53:33
Kenichiro Ota @oota_ken

とも子:前にやった、原因結果グラフとかを使って、状態とその遷移のスコープを絞り込むことが実用的なテストしては必要になるわ。あるいは、私みたいに要件定義や分析の仮説検証とレビューに用いるのも有用だわ。 #ytdd

2011-02-10 01:55:13
Kenichiro Ota @oota_ken

やる夫:相変わらず、上から目線でうざい女だお。でも、非常にいいこと言っているお。 #ytdd

2011-02-10 01:55:46
Kenichiro Ota @oota_ken

やらない夫:最初は阿部さん、最後にはとも子にお株を奪われてしまったが、ツールも技法も適材適所で、対投資効果を考えてってことだな。 #ytdd

2011-02-10 01:56:35
Kenichiro Ota @oota_ken

やらない夫:やる夫がスーパープログラマーを目指しているなら、創造的な怠惰を実践する必要がある。楽にエレガントにするために、勉強し、実践していくってことだな。 #ytdd

2011-02-10 01:57:31
Kenichiro Ota @oota_ken

やる夫:なんか、みんな、お説教モードになってきたので、もう寝るお・・・ #ytdd

2011-02-10 01:58:06
Kenichiro Ota @oota_ken

ということで、今日は直接コードは出てきませんでしたが、TDDの間にもモデリングやテスト技法をいろいろ使ってさらに効果の高く、効率的なテストをして、品質を上げていこうというお話でした。ではまた。明日。 #ytdd

2011-02-10 01:59:03
Kenichiro Ota @oota_ken

http://twitpic.com/3wcupx 今日も登場しませんでしたが、ツールは藍澤光たんのいる開発&テスト・クラウド・サービス上で実施しました。64ビット上で怪しい動きをしていた弊社ツールのことは秘密です。では寝ますZzz #ytdd

2011-02-10 02:01:40
拡大