豆寄席第24回『テスト設計コンテスト体験記~2連覇までの道のり~』開催報告
本稿は、豆寄席第24回の開催報告です。
開催概要
タイトル | テスト設計コンテスト体験記~2連覇までの道のり~ |
講演者 | 株式会社豆蔵 西尾 泰彦氏 |
開催日時 | 2022年11月28日(月)18時30分~20時00分 |
講演概要 | モデリング、テスト、セキュリティのバックグラウンドを持つコンサルタントが、お客様の課題解決力をあげようと、テストを中心とするエンジニアリングをチームで学び直し、テスト設計コンテストに挑み、2年連続優勝することができました。本講演ではそこで何を得たのか?テスト設計コンテストとはどんなもので、どんな難しさがあり、豆蔵ではどんな風に対応していったのか?という内容を、体験記という形で、お話したいと思います。 |
講演の流れ
西尾氏が豆蔵のチームでテスト設計コンテストに参加し、2連覇を達成した上でどのような取り組みを行い、どのような学びを得たかをお話しいただきました。
- テスト設計コンテストとは
- どんな風に対応していったか
- 2022優勝作品の作成過程をみながら
- どんな難しさがあったのか
- さいごに
登壇者のプロフィール
- 経歴 :大学院博士課程修了(ソフトウェア信頼性工学。博士(工学))。電機メーカーで13年、ソフトウェア品質保証(QAテスト、フィールド保証、マネジメント)業務に従事。モデリングツールベンダで3年半弱、開発支援、コミュニティ活動、セキュリティ研究員に従事。
- 豆蔵でのお仕事:テスト・品質のコンサルティング。セーフティ&セキュリティのコンサルティング。MBSE導入のコンサルティング、等。
テスト設計コンテストとは
ASTER(ソフトウェアテスト技術振興協会)主催のテスト設計技術の教育と普及を目的としたコンテストで、数年単位で変わるテストベースに関して毎年変わるお題が出題される。詳細はテスコンのWebサイトをご確認ください。参加したチームのプレゼンテーション資料などもDLできるため、興味のある方はぜひ。
どんな風に対応していったのか
西尾氏が優勝した年に気を付けていた点として、以下5点を挙げられていました。
- 楽しみ、話しながら作る
➤時間的、精神的な余裕を持つために計画を立てて進め、その分楽しく、話しながら成果物を作成できた。
- シンプルで小さな成果物から膨らます
➤前年までの成果物も踏まえ、まず最低限の量と質で全体を説明できるような成果物を作成した。それを膨らませ補強する形で、今回提出する成果物を作成する活動を行った。
- スコープを広げても使える考え方
➤特にテスト観点において、網羅型/ピンポイント型で考えることで、テストを行う範囲が広がっても対応できるように設計を行った。
- アーキテクチャ設計をする
➤テスト対象の利用場面とテスト観点のマトリクスを作成し、その表によって行うべきテストが一目でみえるようになった。
- 小さくても、テストスクリプト実行までやりきる
➤一つの利用場面やテストケースに対してテストの工程を終わらせることで、他のケースの見積りもできるため、成果物の説得力を付けることに繋がった。
テス豆としては2020年、2021年、2022年と参加しており、参加を重ねるうちにできた学びを活かした形になります。
成果物については、全体の土台となるアーキテクチャ設計を行ったうえで、ごく一部のテストケースに対してテストスクリプト実行までを成果物として示すことで、残りの必要な作業に対して見積りを立てるという形になっていました。また、前年の成果物の問題点であった「抜けている観点はないか?」という部分にも対応して進めていました。この方法を取ることで、残りのテストケースの数に対する見積りの実現や、コンテストの成果物を作成する上での工数の削減に繋がったということでした。
チームのメンバとしても、参加年を重ねることで成果物がシンプルで読みやすさにも配慮したものになり、成果物作成までの計画がブレのないものになっていった事を覚えております。
どんな難しさがあったか
西尾氏はテス豆チームでどのような苦労があったのか、として以下の5点を挙げていました。
- 限られたリソースでの活動
➤仕事やプライベートがある中で、メンバそれぞれの事情でミーティング参加や成果物作成が安定せず計画通りに進めることが難しかった。
➤参加を重ねるにつれ、計画段階での精度や小さく作ったものを広げる考え方でのリソースの有効活用の度合いを高めることができた。
- テスト要求分析どうする?
➤最初に躓いた問題で、解決すべき課題とテスト観点がマッチしているのか?という部分の整理に苦労した。
➤テスト対象の機能要求と非機能要求の分析を行い、それらとテスト観点を照らし合わせて進めた。
- テスト詳細設計どうする?
➤テスト観点とテスト対象から、詳細なテストケースを作っていく作業。抜け漏れダブりをなくし、対象にフィットした手法を選ぶことも難しかった。
➤対象を狭めてテストスクリプトまで進める形を取って問題を小さくすることで、詳細設計を行いやすくした。
- テストアーキテクチャって何?
➤概念の理解が難しく、参加チームや過去のテス豆の成果物でも効果的に設計しているチームは少ない。
➤一般的なソフトウェアエンジニアリングにおけるアーキテクチャ設計を参考にして、テスト観点をシステム要件と捉えた。これにより、設計課題を解決するという目的をもって設計を行う事が出来た。
- テストプロセスは?
➤成果物の繋がりを示すために必要だが、これに凝りすぎても成果物にはならず時間の取り方に苦労した。
➤スコープを広げても対応できる考え方を用いることでプロセス内に示す成果物の数を抑え、それぞれの内容と繋がりに重点をおいた。
特に苦労したものは最初に挙げた「限られたリソースでの活動」ということで、年ごとにチームの人数の減少やメンバへの作業の割り振りといった点について苦労されていた、というお話がありました。
これについてはメンバであった私も覚えがあり、やはり仕事と並行して活動しなければならず、メンバのそれぞれでやってみたい事もあることで議論が発散してしまう事もありました。2022年については西尾氏と筆者の2人チームで活動し、主に西尾氏が成果物を作成して筆者はサポートの形で問題点や読みやすさの工夫の話し合いをしながら進めていきました。これまでの成果物も活かしつつ概ね計画通りに進められたので、リーダーの西尾氏の負担や心労は少なく進められた上で成果を出せたのは良かった点だと思っています。
その他、テスト設計を行っていく上での技術的な難しさがあり、設計それぞれの段階において経験者でも様々な技法を適切に使うのは簡単ではないということでした。これについてもテスコンのWebページにチュートリアルとして基礎知識やテスト設計の流れを示した資料を公開してくださっているので、ぜひ参考にしてください。西尾氏もこちらの資料をかなり読み込む事が非常に役に立ったと紹介していました。
さいごに
西尾氏がテスコンに挑戦して得られたことを挙げていただきました。
- テスト設計を楽しむ気持ち
- ソフトウェアエンジニアリング全般の知識
- 他人のテスト成果物を読み解く力
- テスト対象にもっと目を向ける
筆者もテスコンのチームとして参加してみて、テスト設計に関する知識に加えて、目的をもって対象を分析していくことの面白さを知る事ができ、良い経験となりました。
まとめ
今回の豆寄席ではテスト設計コンテストに豆蔵のチームを率いて参加して見事2連覇を収めた西尾氏に、どのように毎年の挑戦の仕方を変えていったかや、テスト設計コンテストの面白さや学びをお話しして頂きました。
テスト設計という技術的にも難しい課題に限られた時間の中でいかに取り組むか、メンバの意見や成果物のまとめ方や見せ方の工夫も学ばせていただきました。本レポートにおいては詳細を省いていますが、テスト設計の技術そのものについても各段階を踏まえて適切な手法と図での見せ方をされています。前述の通り、コンテストにおける発表時の資料についてはテスコンのWebサイトに公開されていますので、興味のある方はご覧ください。
今後の 豆寄席 へのご参加もお待ちしております!