Yasuo's Notebook

ソフトウェア開発の話題が中心の備忘録です。

1/25~26はJaSST '12 Tokyoへ

1/25(水)、1/26(木)はJaSST '12 Tokyoというソフトウェアテストのシンポジウムが行われます。
「私はテスタではないから関係ないや」と思う人もおられるかもしれませんが、そんな方にこそ、是非参加していただきたいシンポジウムです。ソフトウェアテストの技術的な奥深さを知るキッカケにきっとなると思います。テストに情熱をもって探究している方々と交流することも刺激になります。
私がテスト技法に興味を持っていることの理由の一つは、テスト技法はコンテキストを発散させる手段としてとても優れていることです。ソフトウェア設計では、色々なコンテキストを論理的な構造に集約していく場面が多いと思います。クラス図や状態遷移モデルなどがその例です。
一方、ソフトウェア設計では、コンテキストを発散させていくことも重要です。ユースケースのシナリオを考えたり、シーケンス図で様々な動作を記述することは、コンテキストの発散にあたると思います。ソフトウェア設計を長く経験している方でも、この発散系の設計が苦手なことがあると感じています。また、どのように発散させたかの基準がなく、「なんとなく」になってしまうことが多いのです。
ソフトウェアテストで使われている技法は、集約された設計からコンテキストを発散させることに適したものが多くありますし、テスト設計に深く取り組んでいる人は、発散系のスキルが高いと感じています。ソフトウェアテストのスキルを磨くことで発散系のスキルを向上させれば、設計のスキルを大いに高めることができると思っています。(逆に、発散系のスキルが高いテスト設計者が集約系のスキルを高めることも有効だと思います。)
TDDは、発散と集約を短いサイクルで繰り返すところが特徴の一つですので、そういう視点で設計、実装とテストの関係を考えてみるのはいかがでしょうか?

また、JaSST '12 Tokyoでは、アジャイル同人誌UltimateAgileStories も頒布されますので、参加される方は是非、ブースを覗いてみてください。