[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.10,0:00:04.65,Default,,0000,0000,0000,,ここでは5章のテスト概要について紹介します。 Dialogue: 0,0:00:04.65,0:00:09.19,Default,,0000,0000,0000,,これはブライアン・カニンガム、ベル研究所の偉人であり、 Dialogue: 0,0:00:09.19,0:00:13.96,Default,,0000,0000,0000,,ほとんどの人が持っていると思いますが、C言語のカニンガム・リッチー本の著者です。 Dialogue: 0,0:00:13.96,0:00:17.68,Default,,0000,0000,0000,,それを2・3回読むとわかることは、 Dialogue: 0,0:00:17.68,0:00:19.60,Default,,0000,0000,0000,,デバックは最初にコードを書いた二倍の苦労をするということ。 Dialogue: 0,0:00:19.60,0:00:23.80,Default,,0000,0000,0000,,二倍の苦労です。ですから、もし最初にとても最高にうまいコードを書いたとしたら、 Dialogue: 0,0:00:23.80,0:00:27.54,Default,,0000,0000,0000,,デバックする必要はないでしょう。二倍の苦労ですから。 Dialogue: 0,0:00:27.54,0:00:38.32,Default,,0000,0000,0000,,そしてこの人、ダイクストラです。吹き出しの空欄に入れてみてください Dialogue: 0,0:00:38.32,0:00:41.30,Default,,0000,0000,0000,,テストは、エラーが「ない」ことを示すことはできない、エラーが「ある」ことだけを示すことができる。 Dialogue: 0,0:00:41.30,0:00:44.11,Default,,0000,0000,0000,,それは長い間いわれていることで、覚えておくべきでしょう。 Dialogue: 0,0:00:44.11,0:00:51.100,Default,,0000,0000,0000,,これは一年半前に出た論文です。「Why are things expensive」と言っています。 Dialogue: 0,0:00:51.100,0:00:57.12,Default,,0000,0000,0000,,この研究では、設計時には本質的なバグはなく、 Dialogue: 0,0:00:57.12,0:01:01.70,Default,,0000,0000,0000,,質の悪いテストのやり方が問題だといっています。質の悪いテストプロセスは、 Dialogue: 0,0:01:01.70,0:01:10.45,Default,,0000,0000,0000,,コードの中に多くのバグを存在させる原因となると。さらにここで、完全なテスト自動化環境はほとんどないと言っています。 Dialogue: 0,0:01:10.45,0:01:17.32,Default,,0000,0000,0000,,これは一年半前ですが、今もってテスト自動化環境はほとんどないでしょう。ソフトウェア開発組織のちょうど12パーセントは Dialogue: 0,0:01:17.32,0:01:20.89,Default,,0000,0000,0000,,テスト自動化システムを持っていて、10パーセントは全てのテストを手動で行っているとのことです。 Dialogue: 0,0:01:20.89,0:01:23.88,Default,,0000,0000,0000,,自分でテストを書いて、自分で出力を確認して、自分でテストを書いて、自分で出力を確認する。 Dialogue: 0,0:01:23.88,0:01:31.15,Default,,0000,0000,0000,,「自分は間違いをしていないか。うん、大丈夫だ!」と。そんなことが今だ通用しているとは信じがたい。ここでは真実ではないとしたい。 Dialogue: 0,0:01:31.15,0:01:36.06,Default,,0000,0000,0000,,アジャイル以前では、独立した品質保証チームがあり、 Dialogue: 0,0:01:36.06,0:01:41.88,Default,,0000,0000,0000,,開発者は全てのフェーズを受け持ちます、開発者は別々にグループ化されます。何らかの形で、 Dialogue: 0,0:01:41.88,0:01:45.32,Default,,0000,0000,0000,,品質保証チームはコードに品質を盛り込もうとします、 Dialogue: 0,0:01:45.32,0:01:51.76,Default,,0000,0000,0000,,またはコードが品質を保っていることを確認します。アジャイルでは、すべてを自分たちでやることが重要です。 Dialogue: 0,0:01:51.76,0:01:54.51,Default,,0000,0000,0000,,継続的にテストします、毎週新しいコードを出します。 Dialogue: 0,0:01:54.51,0:01:59.04,Default,,0000,0000,0000,,他人ではなく、自分で自分のコードをテストする責任があります。 Dialogue: 0,0:01:59.04,0:02:03.91,Default,,0000,0000,0000,,そしてツールは高度に自動化されています。以前にされていたものとは違います。 Dialogue: 0,0:02:03.91,0:02:09.04,Default,,0000,0000,0000,,アジャイルマニフェストの議論では、 Dialogue: 0,0:02:09.04,0:02:19.93,Default,,0000,0000,0000,,良いプロセスによって良い品質を得ることができる、これは品質を保証に特化したグループを持つことよりも、といっています。 Dialogue: 0,0:02:19.93,0:02:22.52,Default,,0000,0000,0000,,もしそうしなかったら彼らはきっと怒ることでしょう。 Dialogue: 0,0:02:22.52,0:02:27.88,Default,,0000,0000,0000,,最初に言ったように、BDDとTDDは、「ビヘイビア駆動設計」のフレーズが人によっては想起され、 Dialogue: 0,0:02:27.88,0:02:32.62,Default,,0000,0000,0000,,テスト駆動開発とごっちゃになっているかもしれません。 Dialogue: 0,0:02:32.62,0:02:35.68,Default,,0000,0000,0000,,BDDでは、受け入れテスト、統合テスト、そして、ビヘイビア(振る舞い)を捉えようとします。 Dialogue: 0,0:02:35.68,0:02:41.36,Default,,0000,0000,0000,,TDDでは、ステップの定義し、実際に単体テストや機能テストを書きます。 Dialogue: 0,0:02:41.36,0:02:46.13,Default,,0000,0000,0000,,コードを書く前に、常に最新のテストがあります。 Dialogue: 0,0:02:46.13,0:02:52.03,Default,,0000,0000,0000,,というのは、コードを書き始める前にテストコードを書くからです。 Dialogue: 0,0:02:52.03,0:02:59.52,Default,,0000,0000,0000,,ここではBDDとTDDがどのようにいっしょに動くかを説明します。Cucmberでは、フィーチャを記述し、ストーリーを書いて、 Dialogue: 0,0:02:59.52,0:03:03.56,Default,,0000,0000,0000,,それらが失敗します。CucumberはRSpecテストを呼び出しますが、 Dialogue: 0,0:03:03.56,0:03:07.69,Default,,0000,0000,0000,,失敗します。それから失敗したメソッドの実装をします。 Dialogue: 0,0:03:07.69,0:03:12.70,Default,,0000,0000,0000,,そしてRSpecのテストが通るまで、このイテレーションを繰り返します。 Dialogue: 0,0:03:12.70,0:03:20.14,Default,,0000,0000,0000,,いったん正しく実装されたら、Cucumberの緑色のステップなるでしょう。 Dialogue: 0,0:03:20.14,9:59:59.99,Default,,0000,0000,0000,,そして戻って、開発を続けていきます。