この記事は、LayerX Tech Advent Calendar 2024 の 3 日目の記事です。
こんにちは。 LayerX バクラク事業部 QAチームマネージャーの nao(@TestingGolem)です。 この記事では、私が所属するバクラク事業部での探索的テストの取り組みについてご紹介させていただきます。
イントロダクション
ソフトウェア開発において、リリース前のバグ発見や品質向上のための仕様の改善に向けたテスト戦略の策定は昨今のプロダクト開発に不可欠です。LayerXでは、「探索的テスト(Exploratory Testing)」を活用し、チーム全体で実施する「ET会(Exploratory Testing のそれぞれの頭文字をとって「イーティーかい」と呼ばれています)」と、QAエンジニアによる個別の探索的テストの両方を戦略的に組み合わせています。本記事では、LayerXにおけるET会とQAエンジニアによる探索的テストの具体的な取り組みを紹介し、その柔軟で効果的なアプローチについて解説します。
探索的テストとは?
探索的テスト(Exploratory Testing)は、テストケースを事前に詳細に定めず、テスト設計とテスト実行を並行して行う柔軟なアプローチです。このテスト手法は、固定されたスクリプトに依存しないため、システムやプロダクトの未知の部分を発見するのに非常に効果的です。
一般的に、探索的テストは経験ベースのテストとして広く知られており、また、実施方法のプラクティスとして、セッションベースのテストマネジメント (Session-Based Test Management: SBTM)やテストチャーター、ツアーなどの手法が存在しており、状況や目的に応じて様々なアプローチが取られます。プロジェクトやチームごとに適した方法が異なり、テスト実施者の裁量によりテストケースの設計や実行が動的に変化するのが特徴です。
LayerXのET会でも、こうした探索的テストの柔軟性を活かし、テスト実施者やチームがテストの進行中に方向性を適宜調整できる環境を整えています。この自由なアプローチが、仕様漏れや予期しないバグを発見するための強力な手段となっています。
ET(Exploratory Testing:探索的テスト)会とは?
LayerXでは、ステージング環境でのテストの前に各プロダクト開発チームが集まり、探索的テストを行う「ET会」を実施しています。このET会は、ステージング環境でQAエンジニアによるリリース前テストが行われる前段階の活動として、バグの早期発見やプロダクトの品質向上を目的としています。
ET会の参加者は、プロダクトマネージャー(PdM)、開発エンジニア、デザイナー、QAエンジニアといった開発チームの全職種に加えて、カスタマーサポートなどビジネスサイドのメンバーが加わることもあります。こうした多職種で行うET会の強みは、多様なナレッジを持ったメンバーが集まり、バグ以外にも、仕様の不備や考慮漏れ、UI/UXの改善点など、より広範な問題を発見できる点にあります。
例えば、プロダクトマネージャーはビジネスに近い視点でお客様のイシューやペインが解消されるためのユースケースが適切に実装されているかの確認を行ったり、デザイナーは情報設計の観点でUIの実装に問題がないかなどを確認することに長けています。
こうした多様な参加者により、ET会の中で仕様、品質についての議論を行う機会が生まれ、チーム全体でプロダクトの改善を推進しています。
LayerXのET会は、探索的テストが持つ特性を利用した自由度の高い設計に基づいており、プロダクトのフェーズや直近のリリースに向けて柔軟な目的で実施可能です。これにより、バグの早期発見や仕様の確認、UI/UXの改善など、さまざまな目的に向けたテストが一つのET会の中で実施されています。
ET会のイメージ図として、下の図をDALL-Eに書いて貰いましたが、イメージは似ています。 オンライン開催もあるので必ずしも隣り合って座っている訳ではないですが、テスト対象に対して皆それぞれの視点でETを実施しフィードバックや議論をしています。
ET会の目的
ET会は様々な目的に基づいて実施されます。例えば以下のようなことが例として挙げられます。
- 品質レベルの確認: ステージング環境でのテスト実施に入る前段階で品質レベルを確認するとともに、事前にスクリプトテストでは発見しづらいバグを発見することに重点を置きます。このアプローチは、予測できない問題や複雑なシナリオで発生するバグを捉えることを目指しています。
- 仕様の不整合や考慮漏れの発見: ユースケースに関連する仕様の不整合や考慮漏れをなくし、改善点を発見することに注力しています。目的と仕様のギャップを埋めることが目的です。
- UI/UX改善: ユーザビリティや情報設計の観点から、UI/UXの改善に焦点を当てます。ユーザー視点での使いやすさを向上させるためのフィードバックや議論が行われます。例えば、UI上の操作性や他の機能や同じバクラクシリーズのプロダクトと一貫しているか、視認性に問題がないかなどです。
QAエンジニア視点の探索的テストの意義
ET会はチームで実施しますがQAエンジニアにとっても探索的テストは意義のある活動になっています。リリースに向けてバク発見の目的でも探索的テストを実施しますが、それ以外にも以下のようなメリットがあると考えています。
- プロダクトの学習: テスト実行を通してプロダクトの振る舞いを理解します。ユースケースにおけるプロダクトの価値は何かを体験を通して理解します。
- テスタビリティ調査:ステージング環境でテストを実施する際の効率性を事前に確認します。例えば他システムやツールなどを利用しようと想定していた場合に予想以上に手間や時間が発生するなど、テスタビリティ(テストの効率性)が低くならないかなどを確認します。
- テストケース・テストチャーターの十分性の確認: 実際のシステムの振る舞いをもとに、ステージング環境でのテスト用に準備されたテストケースやテストチャーターが必要十分か確認を行います。ドキュメントからは抽出しきれなかったテストの観点をシステムとのインタラクティブなやり取りをヒントに確認を行います。
さいごに
LayerXにおける探索的テストはQAによる従来のテストに加え、チームでのET会として設計されています。最高のUXの早期に実現するために今後もさらに進化させていきたい重要なテスト戦略の一つだと考えています。
LayerXでは、このように自分たちでテストの戦略を考え、チームで改善しながら、プロダクトを通してお客様へ価値を提供しています。 こういった活動に興味がある方、探索的テストについて聞いてみたい、話してみたいといった方がいらっしゃいましたら、ぜひお話ししましょう。 以下のリンクより、私とのカジュアル面談をお申し込みいただけます。
明日は、バクラク事業部 DevOpsチームのYusuke Ueharaさんが書いてくれる予定です!お楽しみに!