CAT GETTING OUT OF A BAG

What the tester is thinking.

忍者式テストの秘密公開!驚きの20年の実績が明かされる!

2023年(仏暦2566年)は、わたしにしてはあり得ないほど活動的な年になった。特に忍者式テストに関する外部への露出が増えて「急にどうした?」と感じられた方もいるかもしれない。なぜこんなことになったのかを記録しておく。

なお、タイトルは「AIタイトルアシスト」(はてなブログの生成AIによる新機能)に作ってもらった。リンク先の論文やスライドを見てもらえれば忍者式テストの秘密がわかるし、驚きの20年の実績(テスト結果)も載ってるから嘘じゃない。自分では思いつかないよ。すごいねぇ。

忍者式テストについて書き物を残したい

なぜこんなことになったのかのアンサーは「忍者式テストについて書き物を残したい」これに尽きる。忍者式テストは @m_seki が率いるチーム(咳チーム)が続けているXP(エクストリームな反復開発)に有効なプラクティスである。わたしは忍者式テストの実践者であり、素晴らしい取り組みだと実感する観測者である。20年を超える実績があり、多くのソフトウェア開発者に知ってもらいたい活動だ。

忍者式テストの初出は2004年のJaSST(ソフトウェアテストシンポジウム)で、その後も技術系カンファレンスで何度か発表している。が、いつもほとんど反応がない。なんでこんなにウケないのかずっと気になっていた*1。きっとわたしが忍者式テストをはじめて聞いたときに感じた「わけのわからなさ」に多くの民がやられているのだろうと思った。わけのわからなさは狂気にも似ている。身の安全を保つために近寄らないほうがいい。だから生物学的に見なかったことにするのではないか。その一方で一風変わったネーミングから「忍者式テストってなんだろう?」と興味を持つ人がいてもよさそうだ。

ここで問題がある。 @m_seki の発表スライドは非常に難解なのだ。発表を聞いた人ならぎりぎりわかるかもしれないが、あとからなんだっけ?とスライドを見直してもたぶんわからない。こんな感じだから発表を聞いてない人にはほぼほぼ理解できない。初出のスライドを見てもらうとわからなさがわかると思う。だから「いつか忍者式テストを言語化したい。ソフトウェア開発者が読んでまあまあ理解できるものを書きたい」と思っていた。

ここで問題がある。毎日の製品開発(つまり忍者式テスト)が刺激的で面白くて非常にうまくできていて、あっという間に一日が終わってしまう。わたしたちの製品を世の中にリリースし続けることの価値もわかっているから、その時間を削ってまでも書く?と思ってしまうのだ。定時まで仕事するとくたくたになるので、残業して執筆することも考えてなかった。

2022年の終わり頃、来年書かないともう書けないかもと思った。@m_seki に話したら「じゃあ、どこで発表するか決めよう」となり、ソフトウェアシンポジウム(SS2023)での発表を目指して準備した。ちょうどこの頃、社内表彰(高度技術者表彰)をもらったことも執筆の後押しになった。伝えたいメッセージと具体的なネタを書き出した。模造紙1枚の巨大なマインドマップになった。社外発表になるので上層部の人たちに時間をとってもらい4回にわけて咳チームと忍者式テストとそのマインドを話した。

ソフトウェアシンポジウム(SS2023)

1999 年に出版された eXtreme Programming[1](以下 XP)に端を発したアジャイル開発は世界中で広く普及し, アジャイル開発の基礎となる反復開発,テスト駆動開発[2]も広く知られることとなった. 私たちのチームはX線CT装置をXPで開発している. 本稿では,私たちの20年の実践から,反復開発の利点と反復開発に有効なプラクティス「忍者式テスト」を説明する. 

マインドマップの中から内容を厳選して忍者式テスト入門編として発表した。これはこれで書き切った感はあるが、模造紙に書いたことの半分も書いていない。特にストーリーの分割について丁寧に書けなかったことが心残りだった。忍者式テストをうまくやるためにはシステムを変更する最小単位(ストーリー)の切り方と順番が重要である。ここは具体的な例を使って説明しないと伝わらないと思っていたので、ソフトウェア品質シンポジウム(SQiP2023)での発表を目指して準備することにした。

ソフトウェア品質シンポジウム(SQiP2023)

反復開発やテスト駆動開発を基礎としたアジャイル開発は世界中で広く普及している。その一方で、アジャイル開発の個々のプラクティスはうまくできているのに、製品開発がうまくいかないといったケースも見受けられる。うまくいかないチームの様子を聞いてみると、基礎となる反復開発の実践に問題があるように感じた。

私たちのチームは製造業でミッションクリティカルな領域のソフトウェアをエクストリームプログラミングで開発している。私たちの20年以上にわたるアジャイル開発の豊富な経験から、反復開発をうまくやる方法を伝えたい。本発表では、反復開発に適したプラクティス「忍者式テスト」を説明し、ストーリーを計画するテクニックや製品を磨く様子やチーム内のロールなど、忍者式テストを中心とした私たちのさまざまな活動について説明する。

スクラムフェス三河

SQiP2023の1週間後、スクラムフェス三河の栃木トラックKeynoteでSQiP2023の再演とパネルディスカッションをさせてもらった。書き物だけでなく動画も残すことができて嬉しかった*2

忍者式テストのブレないコンセプトに感嘆している

2004年に発表された初出のスライドは2023年もそのまま使えることをこの記録のオチとしたい。日々の調整や改善は耐えず行われているが、コンセプトはなにひとつ変わっていない。アジャイルソフトウェア開発宣言が公開された2001年の数年後には、もうこのやり方に辿り着いていたのか…とあらためて驚いている。忍者式テストはXPをより深く考えれば自然と導かれるプラクティスである、と @m_seki は言うが、ふつうは思いつかないプラクティスである。

*1:一部の熱狂的なファンやマニアは除く。当の本人は発表中のツイート数の少なさを自慢するくらいなので気にしてないようだ

*2:@kawaguti さんのspeakerdeckに当日使用したスライドを置かせてもらった。ありがとうございました!