NDKCOM エンジニアブログ

Evolution for 'NDKCOM software Quality improvement'

テスト設計の奥深さ ~テスト設計コンテスト2024決勝戦を終えて~

はじめに

株式会社NDKCOM 田中と申します。

2025年1月25日(土)に日本科学未来館で開催された「テスト設計コンテスト2024」の決勝戦に、U-30クラスの決勝進出チーム(チーム名:IKKA)として参加しました。

本記事では、コンテストへの参加経緯や大会当日の体験、そして得た学びを共有します。

まずは、テスト設計コンテスト実行委員会の皆さま、参加者の皆さま、そして社内で助言をくださった皆さまに心から感謝申し上げます。ありがとうございました。

テスト設計コンテストの概要と目的

テスト設計コンテストは、テスト設計技術の向上と促進を目的に、テスト技術者がノウハウや実例を共有できる場としてJaSST'11 Tokyoから始まったコンテストです。

コンテスト参加という形をとることで、テスト設計の観点・技法・方法論を楽しみながらともに成長する機会を提供することを目的としています。

www.aster.or.jp

 

出場することになった経緯

弊社はシステム開発を主力とする会社ですが、開発者が開発とテストを両方行っています。

今後より高い品質を保持できるよう、ソフトウェア開発プロセスはもちろんテストの改善に関する取り組みも進めています。

この取り組みの一環として、IKKAリーダーが若手社員を集め、テスト設計コンテストに出場することになりました。

出場するにあたって、以下3点を目標にしました。

  1. メンバーの能力向上
  2. テスト設計の考え方を学ぶ
  3. 経験を実務に活かす

以上3点を目標に、30歳以下が参加出来るU-30クラスに参加することになりました。

参加レポート

勝戦前日(1/24)

東京到着後、会場である日本科学未来館へ下見に行きました。

IKKAは5人で構成されていますが、業務都合により、現地参加したメンバーは2名とサポート1名の計3名でした。

なお、弊社からはもう1チーム(チーム名:尚文クラブ)も出場しており、そこから2名を加えた計5名で行動しました。

下見を終えた後は、決起会を開いていただきました。

決起会のお肉(おいしい)
勝戦当日(1/25)

勝戦会場:日本科学未来館

勝戦は、作成したテスト設計資料を展示し、どのようなテスト設計を行ったかプレゼンテーションを行います。

プレゼンテーション内訳

発表:10分~15分

質疑応答:10分

合計:20分~25分

決勝戦資料ダウンロードページ

採点基準は、作成したテスト資料の点数とプレゼンテーションの点数を総合した結果で競います。

発表では、以下のことを発表しました。

 

1. チーム紹介

株式会社NDKCOMのITソリューション部システム開発1課5名で構成されたチーム。メンバーの能力向上を目的に、実務に活かせるテスト設計の考え方を学ぶために出場。

 

2. テスト設計の概要

リリース版アプリケーションに対し、実機を用いて手動で実施するテストを作成することが目的。

 

3. テストのコンセプト

テストレベルごとの責務の明確化する。

 

4. テスト設計

下記表の通りにテスト設計を実施。

成果物ID 成果物名 作成理由
--- テストケース(仮) テスト設計の感覚をつかむため
001 画面/状態遷移図 画面/状態の流れを確認する
002 QA表 仕様の不明点を洗い出す
003 ユーザーストーリー ユーザーのニーズを的確に捉える
004 テスト観点図 テストの範囲を明確にするため
005 FV表 テスト観点の全体像を表にまとめる
006 テストコンテナ テスト観点の全体像をテストレベルごとに図にまとめる
007 テストケース一覧 機能や要件が網羅的にテストされることの確認
008 テストケース実行手順 テストケースの実行手順を決定する

 

5. コンテストを通してのまとめ/感想

テストコンテナを用いてテストレベルごとの責務を明確化することで、テスト活動の工数を小さくできた。ユーザーストーリーの理解不足や成果物同士の関連付けが出来ていなかった。

 

以上が発表内容になります。

惜しくも入賞することはできませんでしたが、事前の練習や報告会でいただいたアドバイスのおかげで、素晴らしい発表ができました。

ちなみに、尚文クラブは準優勝でした(すごい!)。

 

質疑応答では、貴重なご意見を多数頂きました。

頂いたご意見と、その回答をいくつか紹介します。

質問1:ユースケースとユーザーストーリーの区別がつかなかったとのことですが、それぞれの成果物にどのような意味や目的があるのでしょうか?


回答1:ユーザーストーリーテストを実施するという目的で、ユーザーストーリーを作成しました。しかし、気が付いたらユースケースのようになっていたので、作成の意図を明確にする必要があると感じました。

 

質問2:反省点が述べられていてよかったです。ユーザーストーリーを作成するうえで困った点はありますか?


回答2:ユースケースよりに作成しました。ユーザーのニーズが曖昧になっていました。改善点として、ユーザーストーリーを明確にすることで、ニーズも明確になるのではないかと考えています。

 

質問3:システムテストに焦点を当てたことについて、実践出来た点はありますか?


回答3:テストレベルごとにコンテナを作成しました。システムテストでは、ユーザーストーリーテスト等テストアーキテクチャで示しています。


U30クラス決勝戦後には、年齢制限のないOPENクラスの発表も行われ、拝聴しました。

発表内容を聞いた感想として、全ての提案内容について、なぜそうなったかの根拠が示されており、基本的な設計手法を堅実に活用したうえで、チーム独自の工夫も取り入れていた点が特に参考になりました。

 

将来的にはこちらのクラスにも参加できるレベルになりたいと考えています。

コンテスト終了後には情報交換会が開催されました。

その際、ある方より「IKKAが作成したユーザーストーリーは、一般的なユーザーストーリーの形式とは異なる。しかしHAYST法のユーザーストーリーに基づいているという意味においては正当である。」といったようなアドバイスをいただき、我々では気付かなかった重要事項について学ぶことができました。いただいたアドバイスにより、ユーザーストーリーについてより正しく深い理解を得るために学び続けたいと思います。

さらに、発表チームとの意見交換や、審査員の皆さまからいただいたテスト設計コンテストの内容に限らない、ソフトウェア開発全般に関する貴重なアドバイスもあり、大変有意義な時間となりました。

おわりに

チーム内には、テスト設計の経験が全くないメンバーもいたので、テストとは様々なアプローチがあって、とても奥が深いものだと知ることが出来ました。また、これまでソフトウェアテストに関して、他社のエンジニアと交流する機会が少なかったこともあり、今回情報交換が出来たことは大変いい刺激になりました。
この学びをチーム内での成長にとどめるのではなく、エンジニア組織全体に波及させ、より良いテストを実行するために共有し、普段の業務に活かしていきます。