entry-header-eye-catch.html
entry-title-container.html

entry-header-author-info.html
Article by

WACATE2021 冬に参加してきました #WACATE

こんにちは!クリエイター事業部 FANBOX部でエンジニアをやっているkumaです。pixivFANBOX開発とソフトウェア品質・テストに関する技術互助会「t-software-quality」活動に携わっています。

inside.pixiv.blog

2021年12月12日、 12月19日の2日間で行われたWACATE2021 冬に参加してきたので、そのレポートをお届けします。

wacate.jp

WACATEとは

WACATE(ワカテ)とは、名前の通り若手を対象としたソフトウェアテストに関するワークショップです。参加にあたってテストに関連する業務経験や深い知識は必要なく「テストに興味があること、積極的に議論を行うこと」で、全員が成長することをコンセプトとして掲げています。過去に弊社からも何名か参加しており、今回はkuma1名が参加いたしました。

inside.pixiv.blog

inside.pixiv.blog

かつては1泊2日の合宿形式で行われていましたが、昨今の状況を鑑みて今回はオンラインでの開催となりました。

WACATEに参加した理由

2020年に新卒としてピクシブに入社し、全社横断した勉強会を主催したり自身の担当するプロダクトの機能追加時にテスト設計へ挑戦するなどソフトウェアテストや品質に係る活動を行ってきました。

inside.pixiv.blog

やってみたものの、自分ひとりで進めてしまった部分が多く、ソフトウェアテストに対する取り組みに関して十分な振り返りや議論ができていない状態でした。以前からWACATEの存在は認知しており、まさに「テストに関しての議論を交わせる良い機会」であると考え参加することに決めました。

WACATEでは、参加者が積極的にワークショップに取り組み議論することが求められています。今回のWACATEでは普段からよく使うデシジョンテーブルであったり、探索的テストといったトピックが扱われており、これらについて参加者とディスカッションし、これまでになかった考え方を持ち帰ろうというのが狙いです。

セッションの振り返り

WACATE2021冬では、参加者を何名かのチームに分割し、そのチームでワークショップや意見交換、振り返りなどを行いました。ここでは、期間中に開催されたセッションで特に印象に残ったものをピックアップして振り返ってみたいと思います。

デシジョンテーブルで振る舞いを整理しよう

speakerdeck.com

組み合わせテストの1つである「デシジョンテーブルテスト」で使用される「デシジョンテーブル」というモデリング手法について学びました。自然言語で書かれたソフトウェアの要件は時として複雑であり、理解するのが難しいものがあります。これをデシジョンテーブルを使って抽象化することにより、情報を把握しやすくすることができます。

ワークショップでは、簡単なお題から入っていき、最終的にかなり複雑度の高い要件をデシジョンテーブルを用いて整理していきました。日本語で書かれている条件は理解までに長い時間を要しましたが、表にすることで条件を簡略化し、理解しやすくシンプルな条件にすることができました。

チームメンバーそれぞれのデシジョンテーブルを比較したところ、人によって書き方が異なったり組み合わせの数が異なっており、「そのような分け方は自分には思いつかなかった」といった発見もありました。このように、組み合わせを一覧することにより

  • 条件そのものが考慮から抜けていた
  • ある条件の振る舞いが期待したものと異なる

といった使用整理を行うという点でもデシジョンテーブルは有効であると感じました。

また、今回は各種テスト技法をWebブラウザ上で適用する事ができるGIHOZを使用してみました。

f:id:pxvpxv:20220203131729p:plain
GIHOZを使用した例

専門のツールを使うことによって

  • 因子が多くなった場合の組み合わせを自動的に生成可能
  • 使用しないケースはチェックを外すことで、意図的にデシジョンテーブル上に残したまま使用しない意図を伝える

といった使い方ができ、有効的なアプローチであると感じました。

www.veriserve.co.jp

探索的テスト

探索的テストとは、

テスト担当者がテストアイテムや以前のテストの結果の知識や調査情報を使用して、テストを動的に設計、および実行するテストアプローチ。 (by JSTQB 用語集)

のようなテストのことで、テストケースを予め用意することなく、その場でテスト対象を操作しながら検証を行う手法のことです。このセッションでは、実行委員の方が用意してくださったWACATE用Webアプリケーション(!!)に対して探索的テストを行い、他のメンバーがどのように探索を行ったのかを議論しました。

何も用意せず探索を行うフリースタイルなものもありますが、今回はテストチャーターを使用した方法で探索的テストを行いました。今回使用したテストチャーターでは、

  • 何に対して(Target)
  • 何を使って(Resource)
  • 何を見るのか(Information)

を予め決めておき、一定の時間内で探索を行う方法でした。フリースタイルな探索的テストでは、見る観点がブレたり時間内に収まらないというケースが起こりやすいのですが、テストチャーターを使うことによりある程度の自由度を確保したまま検証したい振る舞いを確認できる点が優れていると感じました。

それぞれ個人で探索的テストを行った後、グループのメンバー同士で話し合いを行ったのですが、

  • UIの崩れを重点的に見た人
  • APIリクエストを重点的に見た人
  • 文字入力周りを重点的に見た人

といったように、それぞれ全く違う観点でテストを行っており、多くの気付きを得ることができました。決まった時間を確保し、様々なポジションのメンバーを集めて行うことで、効率的に問題点を洗い出せる良い手法であると感じました。

一方、チーム内では

  • 属人性が高い点
  • テスターの知識量によってかなり左右されそう

といった議論も行われました。そのため、

  • 経験が浅いテスターはベテランテスターとペアで取り組む
  • スクリプトテストとの併用をする

といった工夫をしていくことで、探索的テストの利点を最大限生かせるのではないかと感じました。

招待講演 レビューが教えてくれたこと

speakerdeck.com

私は普段Webアプリケーションを開発しているので、アプリケーションコードの「レビュー」といった行為は日頃から行っています。今でこそ「レビューはテストの1プロセスである」という考え方ですが、かつてはそのように意識したことはありませんでした。

私は昨年新卒エンジニアとして入社し、様々な機能開発をおこなってきました。この発表の前半の内容は昨年の自身の振る舞いに重なるところが多々ありました。時間は有限であり、以下にコストを掛けずに価値を提供できるかが重要になってきます。セルフレビューの習慣をつけること、必要に応じて問題を分割し1つ1つ解決していくこと、相手のスキルに応じてレビューの仕方を変えることなど、物事に対して柔軟に対応していくことが大切であると感じました。

スライド内のエピソードから有用な知見を多く得られました。特に、

  • レビューにおける心理的なアプローチや心構え
  • 要求を何でも受け入れるのではなく、一度考える時間を作る
  • 既存の習慣を当たり前に受け入れており、改善のプロセスを回さないで思考停止に陥ってしまう怖さ
  • つい自分のポジションからのレビューばかりになってしまい観点が偏ってしまう
  • 実作業前にもレビューを実施する(レビューのシフトレフト)

などは心に留めておきたいと思いました。

参加した感想

参加者のテストに関する熱意

WACATE2021冬には、様々な業界、経験年数もベテランの方から新卒まで幅広い方が参加していました。その結果、普段行っているテストの方法であったり観点が異なっており、議論が大いに盛り上がりました。今回行ったデシジョンテーブルテストや探索的テストのワークでも同じお題から出てきたアウトプットがそれぞれ異なり「なぜそのように考えたのか?」という深い議論まで行うことができ、WACATEに参加した理由の一つである「参加者と積極的に議論を行う」を達成できたと思います。

オンライン開催の良さ

今回のWACATEはオンライン開催でした。メンバー間のやり取りは基本的にSlackを通して行われ、各セッションの振り返りはGoogle Jamboardに付箋を貼る形で行われました。 そのため、他チームが行ったワークの結果や、セッション振り返りでどのようなことを思ったのかなど、他のチームの意見を手軽に閲覧できる点がオンラインならではの良さであると感じました。 また、支障のない範囲でセッションの感想をSlackに投稿しながらみることができ、オンラインでの開催となりましたが孤独感を感じることなく参加することができました。

f:id:pxv:20220207123111p:plain

さいごに

WACATE初参加ということで期待半分不安半分での参加となりましたが、結果参加してよかったなと感じています。QA/テストエンジニアとして働いていらっしゃる方、自分とは業界が全く異なる方などと議論を行うことで様々な刺激をもらいました。

全体の進行が非常にスムーズで、2日間集中してワークに取り組むことができました。WACATE実行委員の皆様に改めて感謝申し上げたいと思います。 また、本記事へのスライド掲載を快諾いただきました角田様、安達様には改めて感謝申し上げます。本当にありがとうございました。

icon
kuma
2020年4月に新卒エンジニアとして入社。普段はpixivFANBOXの開発を行っています。好きなaikoはaiko(歌手)で、好きなハンバーグはげんこつハンバーグです。