ソフトウェアテスト技法の勉強会をやってみた
こんにちは。icchiiです。
本記事は、ソフトウェアテスト Advent Calendar 2021 18日目の記事となります。
私は、atama plusという教育×AIのスタートアップ企業で、オンライン模試を開発するスクラムチームのQAとして働いています。
今回は、開発メンバー有志で行ったソフトウェアテスト技法練習帳の勉強会についてお話したいと思います。
(勉強会はおよそ半年前に開催されました。温めすぎました。。。)
atama plusのQAの仕事が気になる方は、ぜひこちらの記事もお読みください。
また、紹介のスライドもあるのでぜひご覧ください。
勉強会開催のきっかけ
開催のきっかけは、Agile Testing Condensedの読書会を開発メンバーで行うことで、プロダクト開発における品質やテストへの関心がチーム内で高まったところにあります。
Agile Testing Condensed 読書会の様子はこちらをご覧ください!
具体的には、読書会後にエンジニアから「テストについての考え方や知見を、もっと具体的に知りたい!」という声が挙がったことで、今回の勉強会開催に至りました。
実際にエンジニアから挙がった声をいくつかピックアップして紹介します。
「境界値分析」などのテスト手法はなんとなくは知ってるが、他の手法も知りたい
Agile Testing Condensed 読書会からの学びとして、「テストはできるだけ自動化されていると良い」のはわかったが、全てをやるのは無理では?と思い、どの程度自動化すべきか悩む
細部までテストをしようとすると、テストケース数が爆増する
テストコードの柔軟性が低いと感じている(仕様変更時に、都度書き換えが発生している)
なんでこのテストなのか、理由を説明することができない
QAメンバーは、テスト時のテストケース数が爆増していないように見える。QAは、有用なテストケースづくりをしてるような気がしている
どんな勉強会をやろう?
勉強会を開催するにあたり、メンバーの期待値や開催方法を以下のように整理しました。
メンバーの期待値
「テスト概論」のようなものは期待していなさそう
具体的なテストケースを作るところが知りたそう
開催方法
参加者が手を動かすことで、テストについて理解が深められそう
テストの基礎を学ぶより、テストケースの作成に取り組むほうが、参加者が主体的に勉強会に取り込めそう、また参加者の期待値とも合っていそうだったため、ソフトウェアテスト技法練習帳を使った勉強会を開催することにしました!
勉強会は以下のような形で開催しました。
使用書籍:ソフトウェアテスト技法練習帳(出版社:技術評論社 、発行年:2020、著者:梅津 正洋 他)
方法:1回1章(1技法)を扱う。各回問題に対するテストケースを参加者全員が作成し、レビューをする
取り扱う章
・同値分割法と境界値分析
・デシジョンテーブル
・状態遷移テスト
・組合わせテスト
頻度:週1回
時刻:朝9時〜10時
場所:オンライン(使用ツール:Discord、Miro)
勉強会当日
回によってばらつきますが、エンジニア、QA、デザイナー、スクラムマスターなど、様々な職種の開発メンバーが毎回5人前後参加してくれました。
開催方法は、まずオンラインでDiscordに集合して、問題の回答をMiroに各自アウトプット、最後に解説をする形で実施しました。
具体的には以下の通りです。
「今日の勉強会は○○技法を使うよ」と、取り上げる技法のアナウンスをする
問題を出題し、問題に対するテストケースを参加者は10分〜20分くらいで考える
※技法について検索するのはOKだが、自力でテストケースを考え、答えとしてまとめてもらう「なぜそのような回答に至ったのか」を参加者に質問し、説明してもらう
本の解説をベースに、テストケース例を説明する
「なぜそのようにするか、どんな思考がベースになっているか、なにをケアしているのか」などを説明する
勉強会の終了時間になるまで、上記を2〜3回繰り返す
問題は掲載できませんが、AさんとBさんで異なる回答が出ています。このように、各々の考え方の違いが回答に表現されました。
勉強会を終えて
勉強会後、参加者からは嬉しい感想をいただきました。
以下、一部抜粋し紹介します。
参加メンバーからの勉強会への反応が良かったため、勉強会を一通り終えた後同じ内容で2回目の勉強会を実施しました。2回実施したことで新しい学びも得ることができ、初参加の人も参加しやすい良い雰囲気を生み出すこともできました。
参加メンバーにテストに関する何らかの学びを与えられたのかなぁと思いつつ、将来の勉強会実施に向けて新たな知見も得ることができました。
atama plusで開発しているプロダクトを問題として取り上げたほうが身近に感じられ、テストについての理解を深めやすい
勉強会につき1章(1技法)を取り上げると、参加できなかった場合に取り上げられる技法への理解が丸ごと抜けてしまう
まとめ
勉強会で取り扱ったソフトウェアテスト技法練習帳は、atama plusではプロダクトチームの参考図書、QAでは課題図書としています。
今回の勉強会では、QAはもちろん、エンジニアやデザイナー、スクラムマスターの方たちにも参加してもらうことで、QAがテストケースを作るときに何を考えているのか伝え、チームとしてテストに関する認識を合わせることができました。
例えば、勉強会を通じて以下をQAとして参加者の方に考えてもらったり、伝えたりしていました。
「自分でテストケースを考えてみないと分からないことがある。〇〇の背景があるから細かいことも質問するんだよ」
「この(テストケースの)書き方だけど、○○のときってどうなるんだっけ?」
「ここまで細かいところも見たい(テストしたい)んだっけ?」
Agile Testing Condensedの読書会やソフトウェアテスト技法練習帳の勉強会を通して、開発チームにテストの考え方を学んでもらえたと感じています。
最近では嬉しいことに、エンジニアを中心に自動テスト周りの関心が高まっており、Codecov、CIツール、Autifyの導入や活用が開発チームで広がっています。
一方、QAとしてはまだまだやり切れていないことも多く、勉強会に限らず、次のような活動をしていこうと考えています。
テストスキル向上のための活動
社内のプロダクトを例にしたソフトウェアテスト技法の勉強会を開発チームに向けて大規模に実施する
自動テストに対する取り組みをもっと加速するための取り組みの実施
QA活動強化のための活動
レビューの質をあげる取り組みを実施する
もっともっと高頻度でリリース可能な状態を作る
開発チームは、「生徒が熱狂・熱中できる良いものを提供したい=より良いプロダクトにしたい」という共通認識があります。チーム全員でプロダクトの品質を向上していくため、これからも継続して活動をしていきます。
活動の様子はnoteでお伝えしていくので、興味があれば読んでいただけると嬉しいです。
番外編
せっかく記事を書いたので、開催から半年経ち、テスト技法について学んだことが生かされているか、勉強会の参加メンバーに意見を聞いてみました。いくつか抜粋して紹介します。
Q:参加したことでどのような学びがあったか?
知らない手法について学びが得られてよかった
演習形式だったので、手法の良し悪しや悩みポイントも体感できてよかった
いっちーの解説で、QAの土地勘や知見のようなものを教えてもらい、一歩踏み込んだ知識が得られた気がする
なんとなくケースを網羅していたが、力の入れどころを踏まえて学ぶことができてよかった
演習と解説があって座学や自習よりもしっかりと理解できた
Q:ここ半年で業務上役に立つことがあったか
Dev同士でテストケースを考えるときに、学んだ視点で意識的にできるようになった気がする
テストケースのたたきを自分で書き出すのが楽になった
QAと相談するときに、単純なケースの用意よりも一歩先のやりとりができるようになった
「テスト」が身近になった
学んだ手法の知識をベースに会話する機会があった
機能を考えるときにテスト設計のイメージができることがあった
(これに限らず)Agile Testingを考える機運が高まってみんなで品質を考えることが増えてきている気がする
さいごに
atama plusでは事業の成長に伴い、QAの仲間を大募集中です!
「いいものを早く安定的にユーザーに届ける」ために、日々いろいろな課題に取り組んでいます。
組織やプロダクトの拡大に伴って日々課題が変化していく、新しいことに取り組む楽しさも感じられます!
atama plusのQAは、課題調査のようなフェーズからQAが一緒に活動できるので、テスト活動だけでない面白さもあります。
▼デュアルトラックアジャイルのQA事例なの:
少しでも興味がわいた!もうちょっと詳しく聞いてみたい!という方がいらしたら是非お気軽にご連絡ください。
▼QAの募集要綱:
▼採用サイト:
社員インタビューも載っているので、ぜひご覧ください。
また、エンジニア向けのTwitterアカウントもできました。
atama plusの開発に関する発信をお届けしていく予定なので、よかったらフォローしてください。