トレーサビリティを追求した開発

日経コンピュータの記事に、東証の新しい売買システム「arrowhead」の解説が載っていた。金融システムなんて門外漢なので評価できる立場には無いけれど、東証のシステムと言えば以前に受験した技術士試験第二次試験にも出てきた話題*1なので、一体どんなシステムなのか見てみた。

  • サーバ群には10.6テラバイトのメモリを搭載し、処理高速化のため売買注文に関わる全てのデータ処理をメモリ上で完結させている。
  • 要件、設計書、テストケースを全てIDで紐づけてトレーサビリティを確保し、テストの漏れが生じないようにした。

大規模Webサービスのような前者のアーキテクチャ構成はともかく、ソフトウェアエンジニアとしては後者の開発手法に興味を惹かれた。記事には、ID番号が並んでいる画面キャプチャも載っているけれど、これは専用ツールを用意したのだろうか?テストが漏れている要件がアラートとして表示されるのだろうか?こんなツールを使ってどの位の漏れが見つかったのだろうか?長いIDが列挙されているけれどこれは自動的に採番されるものなのだろうか?開発者が一つ一つIDを採番・照合したら大変な作業になってしまうのではないだろうか?全体でどの程度の数のIDが存在するのだろうか?ひとつの要件に複数のテストケースが必要な場合も全てのIDが紐づけられるのだろうか?テスト結果も同時に管理出来るのだろうか?等々の興味は尽きないものの、その辺の情報は載っておらず残念。設計やテストケースの管理にはいつも頭を悩ませるので、こんなお役立ちツールが欲しいです。もしかして、既にどこかに有るのだろうか?

要件定義書に記載した一つひとつの要件が基本設計書や詳細設計書のどこに反映してあり、テストケースのどれに対応しているかを可視化して管理することを「要件トレーサビリティ」と呼んでいる。開発の過程で作成したすべての設計書やテストケースについて、この要件トレーサビリティを確保した。

特集2 Part3 不具合ゼロを目指す | 日経コンピュータ | 日経BP記事検索サービス