忍者式テスト🥷🏻

XPと2001年から

Ninja tree-jumping analogy - Martin Fowler, Kent Beck

2004年から2006年ころの文通を発掘した。

Martin FowlerとBlikiのソースについてメールしたついでに、忍者式テストのコンセプトを英語で説明したところ、

I liked this Ninja tree-jumping analogy (MF)

とKent Beckにメールを転送してくれた。*1

I like it too. To begin with you have a ridiculously small pile of tests to vault. "I can jump that easily," you say. And you can. Then tomorrow the pile is a little larger but still easy. And the next day and the next. By the time the pile is a mountain you've been jumping over it so long you no longer notice what a miracle the jump is. You think that's just how you develop software. And you're right. (KB)

2006年にその後の経過と、テストケースの抽出アルゴリズムの導入、他のチームとの比較、についてもやりとりした。(すっかり忘れていた)

2006年にもらったメールから。

Thank you for the information about your progress. I understand you to be saying that your tests take too long to execute every day, so you run a subset of the tests every day. The subset is chosen partly at random, partly by how long it has been since a test has been run, and partly by how long it has been since a test has failed. I can see how this would give you good coverage and shorten the running time of the tests.

おお伝わっていそう。

I know that David Saff at MIT has been studying test-running behavior. He found that sorting the tests so the most-recently-failed tests run first results in nearly minimal time to test failure.

実感と合っている。

英語で忍者式テストの説明をするのは難しいので、Kent Beckのメールを引用して説明とする。

*1:私の拙い英語は載せないでおく。