テストコンテストに出場してきた話
はじめに
今回は表題の通りテストコンテスト(U-30クラス)に出てきたふりかえりを記事にしたいと思います。
アドベントカレンダーとか以前にブログの記事を書くのが久しぶり過ぎて書き方を思い出すのに時間がかかりそうです。
※注意:テストコンテストにおける要求分析とかテストアーキテクチャ設計のテクニックについていろいろ書けたら良いのですが、今回の記事はプロジェクト進行とかエモの話題が多めです。ご了承ください。
テストコンテストとは
ざっくり言うと…それぞれが持っている、「ぼくのかんがえたさいきょうのテスト設計」を競う大会です。
真面目に知りたい場合は、テストコンテストのHPをご確認ください。
(一応、目的とコンテスト方式は貼っておきます)
ASTER-テスト設計コンテスト
テストコンテストの目的
コンテスト方式
- 指定のテストベースに対するテスト設計を行い、その優劣を競います。
- コンテストのレベルには、OPENクラスとU-30クラスがあります。U-30クラスは、30歳以下の方に限定させていただきます。
- OPENクラスのコンテストでは各地域予選を行い、優秀と認められたチームが決勝戦へ出場する権利を得ます。
- 決勝戦では予選を通過したチームが集い、その腕を競います。予選で作成したテスト設計資料をさらにブラッシュアップすることで、技術を進化させる楽しみを味わってください。
- U-30クラスは書類による予選を行い、優秀と認められたチームが決勝戦へ出場する権利を得ます。
- U-30クラス、OPENクラスともに、各地域でチュートリアルを実施します。チュートリアルではテスト設計に関する講義を行います。このチュートリアルは一般の方も参加可能です。参加予定チームはもちろん、一般の方もぜひご聴講ください。
参戦のきっかけ
テストコンテスト自体はちょっとだけ興味があったけど、いきなりOPENクラスに出るのもちょっとなぁ…と思っていたところ、社外の知り合いの方がテスコンに出たそうにしていたのでご一緒させてもらうことになりました。
チーム結成と認識合わせ
そんなこんなでtwitter上のネットワークの有志で集まったメンバー5人でチーム「王バーフロー」を結成しました。
とはいえ有志のメンバーかつ昨今の事情もあり、全員がフルリモートでのチームの発足です。チームの結成に合わせて実施したことを簡単にふりかえります。
インセプションデッキを作る
チームの構成としては、テストについて知りたいエンジニア3人と業務でもテストをしているQAエンジニア2人といったチーム構成でした。
初対面(対面してない)の人もいるのでチームの認識を合わせるためにリーダー02さんの発案でインセプションデッキを作りました。
インセプションデッキを作ったことがない人も多い中、みんなでワイワイとチームの方向性を決めるのは意外と楽しかったです。
プロジェクト管理ツールを用意する
完全にフルリモートでテストコンテストに参加なので、なるべくオンラインで作業が円滑にできる様にそれぞれが持ち寄ってツールを用意しました。
ざっくりまとめるとこんな感じです。
タスク管理ツール: JIRA
ドキュメント管理ツール: Confluence & google drive
コミュニケーションツール: discord
ホワイトボードツール: miro
JIRA
各々でタスクを切って特にルール細かいルールは決めずにカンバンみたいな感じで使ってました。
miro
ホワイトボードとして使用、アイディア出しには重宝しました。
予選まで
提出物を作るために
…と、いろいろやりましたが、ちょっと風呂敷を広げ過ぎた結果、問題が起こります。
問題と言うか、本質というか。「仕事とテスコンの両立めっちゃ大変問題」に打ち当たります。
全員で集まれる日程がほとんど取れなかったり、他の活動でリソースをとられたりして、予選は全員で集まることができたのは最初のキックオフぐらいだったと思います。(ちなみにその後も同様)
自分達のチームではテスト要求分析に時間をかけ過ぎた結果、当初予定していた計画は破綻してテスト設計・テスト実装にほとんど時間をかけられず、それぞれのメンバーが締め切りギリギリのGWに時間を作って成果物を作成することになりました。
有志のチームは作業時間をいかに確保するかは結構ちゃんと考えないと計画が破綻することを身をもって経験しました。
とまぁ、結果的に十分な成果物を出せた印象はありませんでしたが、テストの要求分析などを自発的に業務でやる機会が少ないので、自分としてはこの期間でやったことは結構面白かったです。
決勝に向けて
正直、決勝には上がれなかっただろうなとほとんど諦めかけていた6月に、思いがけない知らせが届きます。予選通過ギリギリの4位で決勝進出の連絡が来ました。
予選のふりかえりをKPTで行いつつチームの方針を今一度まとめる会をやりました。
結構、当初決めたインセプションデッキの思いからみんな外れかけていたので、向き直りという意味で重要なポイントだったと思います。
予選の失敗を踏まえ、決勝では「はじめに最低限の成果物を一通り用意し、そこからブラッシュアップする」という作戦を取りました。
自分はブラッシュアップするための資料のベースを作るというかなり重要な役回りを担当することになり、いろいろ調べたり一人で考えたりと設計におけるクリエイティブな部分を感じ取ることができました。
テストベースがきちんと用意されているので、要求カバレッジをとってみたり、効率よくテストするためのテストケースの順番を考えたりと業務に活きる挑戦ができたのはよかったです。
とは言え、予選と同様に仕事が忙しいメンバーがいたり、十分な作業時間は取れませんでしたがなんとか提出物については一通り準備することができました。(当日の掲示用資料は発表資料と一緒にすればよかった…などありますが)
そういう意味では、ふりかえりをおこなった成果が出ていると言えます。
決勝
発表資料
決勝はオンライン開催で発表者は1名のみだったので、聴衆席での参加でした。
発表してくれたリーダーの02さん本当にありがとう!!!って感じです。
審査員の皆さんの指摘は「本当にその通りです。」とか「Exactly」って感じでした。
なんていうか、「やり切る」ってとこに注力したので優勝する様なテクニックを載せる余力はほとんどありませんでしたってのが実際の所です。
…ちなみに結果は「準優勝」でした!!
最後までやり切った結果の副賞が準優勝って言うのは、最高の結果だと思います。
頑張ってよかったなぁ。と思いました。
終わりに
以上が、自分達が参加したU-30クラスのテストコンテストの大まかな内容です。
フルリモートでのテストコンテストの難しさを前面に出した記事になってしまいましたが、次回以降参加する人の何かの気付きになったら幸いです。
最後になりましたが、この記事はチームスピリットアドベントカレンダー2日目の記事です。
おわり