ユニファ開発者ブログ

ユニファ株式会社プロダクトデベロップメント本部メンバーによるブログです。

QAエンジニアがAIと試行錯誤!テスト品質を改善した『壁打ち活用ノウハウ』

こんにちは!ユニファでQAエンジニアをしているとりごえです。

これまでのQA経験を活かしつつ、担当プロダクトの業務理解を深めてきましたが、複数のプロダクトをQA1人で回す状況が多々あります。常にテストケースの品質維持と工数削減という複雑な課題に直面しています。

この記事では、私がAIを壁打ち相手として活用し始めた経緯から、テストケース作成時に直面した具体的な課題とその乗り越え方、そしてAIがもたらしたテスト品質の向上について、試行錯誤しながら得た経験を共有します。

まだまだひよっこAI初心者🐤であるQAが、まず手始めにやってみた内容です。参考になれば幸いです。

AI活用を始めたきっかけ

私のAI活用は、テスト自動化への挑戦から始まりました。

ユニファQA内でテスト自動化の導入を検討していました。その中で、他のQAメンバーが主催してくれたPlaywrightの導入勉強会に参加する機会がありました。勉強会に参加したのは今年の4月頃で、まずは無料版のCursorを使ってPlaywrightを動かしてみるところから着手しました。

最初は、有識者から教えてもらいながら、ユニファが園向けに提供している管理システムのログイン部分のテストを実施するなど、スモールスタートでAI活用の可能性を理解していきました。ただし、その後も継続的にAIを使いこなせていたわけではありません。

QAの日常業務で、私が現在時間が取られていると感じている主な作業は、観点の洗い出し、テストケースの作成、テスト実施の3つです。テスト実施は今後のテスト自動化の課題として、まずは観点の洗い出しとテストケース作成をAIと協働することで、品質と効率の両立が可能かどうか、試してみました。

QAでAIを活用した流れ

今回、AIにテストケース作成を依頼した際の具体的な手順を、「仕様理解からテストケース作成まで」のステップでご紹介します。

ステップ1:仕様MarkDown版作成 & 観点の抽出

AIによるテストケースの品質は、最初にAIに入れる情報の質に左右されます。MarkDown形式はテキストベースでAIが解析しやすいため、この形式で情報を取り扱うことから始めました。

  1. AIへのインプット:

    • テスト計画書(Confluence)と、仕様書(PDF化したもの)をAIに読み込ませました。
  2. 仕様MarkDown版出力と理解:

    • インプットした情報をAIに整理してもらい、仕様MarkDown版を出力してもらいました。これを基に、詳細な理解を深め、記載された内容が正しいかの確認も実施しました。
  3. 観点の抽出とレビュー:

    • 仕様MarkDown版から、様々な観点からテスト観点を抽出してもらいました。観点は、随時MarkDown形式のファイルに出力してもらい、自分の知見も取り入れながら追記・修正を進めました。

ステップ2:粗い粒度のテストケース作成 & 探索的テスト

  1. 粗い粒度のテストケース作成:

    • あらかじめ項目名を指定し、洗い出した観点に基づいて表形式で粗い粒度のケースを作成してもらいました。件数は少なめですが、1ケースに複数の期待値が含まれている状態でした。
  2. 追加ケースの依頼と品質向上:

    • 探索的テストを実施しながら、仕様書には記載のない細かい観点など、気づいた点を元に、粗い粒度のテストケースを直接修正・追記しました。

ステップ3:詳細なテストケース作成とレビュー

  1. 詳細なテストケースへの落とし込み:

    • 粗い粒度のケースを、本番に近い検証環境でのテスト用に細かく分解してもらいました。
  2. レビューサイクル:

    • 分解されたケースをレビュー ⇒ 修正 ⇒ レビュー のサイクルで品質を確定させました。

ハマった点と具体的な乗り越え方(試行錯誤の記録)

MarkDown形式は、AIとの連携は容易な反面、表計算ソフトのように行番号や列の自動調整機能がないため、レビューする際に以下の課題が生じました。

1. データ形式の不整合

  • ⚠️ 課題:

    • MarkDown形式の表はスプシに貼り付ける必要がありましたが、改行コードの問題で、スプシ上で改行されず<br>と表示されることがありました。
  • 乗り越え方:

    • Googleスプレッドシートで<br>などを改行に置換する際は、「置換後の文字列」の欄でCtrl + J(Macの場合は + J)を押すと、改行コードが入力されることを発見しました。この方法で対応できました。

追記:Chromeブラウザをご利用の場合

  • ただし、Chromeでスプレッドシートを起動している場合は、Ctrl + Jを押すとChromeのブックマークが表示される仕様のため、Ctrl + Jでは対応できません。その場合は、以下の関数で置換が可能です: =REGEXREPLACE(改行が含まれているセル,"< *[bB][rR] *\/?>",CHAR(10)) (改行が含まれているセルを指定してください)

2. 連番修正に時間がかかる

  • ⚠️ 課題:

    • AIはNo.の連番を正確に維持することが苦手のようで、修正を依頼すると処理に非常に時間がかかっていました。
  • 乗り越え方:

    • No.は固定とし、追記する行には連番の枝番(例: 「No132-1」)を付与してもらうことで、処理時間の短縮につながりました。

3. 手動修正とAIの認識のズレ

  • ⚠️ 課題:

    • 手動修正後に、その内容を反映したMarkDownファイルをAIに再度読み込ませる作業(修正報告)が必須でした。この作業を怠ると、AIが古いファイルを参照し、修正内容が反映されない問題が発生しました。
  • 乗り越え方:

    • 手動修正後、必ず修正内容を反映したMarkDownファイルをAIに再度読み込ませる作業を徹底することで、認識のズレを防ぐことができました。ただし、意識していても忘れてしまうことがあるため、着実に読み込ませることを忘れないような手段を現在考えているところです。

AIによる改善提案とテスト品質の向上

AI活用で最も価値を感じたのは、テストケース作成を代行してもらうことではなく、AIが客観的な「テストの壁打ち相手」になってくれたことです。

「改善案を出してほしい」と依頼したところ、AIは以下のようなテスト品質を向上させる具体的な提案をしてくれました。

AIが提案した体系的な改善点

  1. テストケースの優先度・重要度の判別

    • 優先度の項目を含めていなかったにも関わらず、AIが各テストケースの優先度(テスト実行の優先順位)を判別してくれました。私はそれをレビューするだけで良かったため、優先度設定にかかる工数を大幅に削減できました
  2. テストデータの具体化

    • 抽象的な記述が多かったテストデータについて、「例: クラスAのA園児、クラスBのB園児」といった具体的なテストデータ例を追加することを提案してくれました。
  3. エラーケース・異常系の網羅

    • 正常系テスト中心だった構成に対し、ネットワークエラー時、大量データ、同時実行時の排他制御など、より堅牢なプロダクトに必要な異常系ケースの追加を提案してくれました。
  4. テスト実行順序の最適化

    • 単なる番号順ではなく、テストケース間の依存関係を考慮したPhase 1~4に分けた実行順序を提案し、テスト実施の効率を高めてくれました。

QAエンジニアとしてのレビュー責任

AI活用の効果を活かしつつ、QAとしての責任も果たしていくため、私は以下の点を意識しながらAIと協働しました。

  1. 壁打ち相手としてのAI:

    • AIを壁打ち相手とすることで、QAとして心理的な安心材料を得ることができました。観点の抜け漏れがないか不安になる場面が多々ありますが、AIに確認することで「この観点は検討済みだ」と客観的に確認でき、一人で判断に迷う時にも相談できる相手がいるという安心感が得られました。
  2. レビュアーとしての自分:

    • AIの出力をすべて鵜呑みにするのではなく、常に最終レビュアーの視点を持ち、他の観点の抜け漏れが無いかも意識してレビューしました。修正依頼の際は丁寧に意図を伝え、修正後は必ず再度レビューすることを徹底しました。

まとめと今後の展望

今回のAI活用は、試行錯誤段階であったため、残念ながらテストケース作成の工数削減には直結しませんでした。しかし、AIによる客観的な改善提案によって、テスト品質を大きく向上させたという効果がありました。✨

AIは非常に頼れる「壁打ち相手」になってくれたことで、精神的なストレスが軽減され、QAに集中できていると感じています。

私にとってAIは「おっちょこちょいだが、とても伸びしろのある、可愛い後輩✨」という感覚でした。これは私の指示出しが不明確だったことによるものなので、私に改善余地があるということです。

私のAIとの協働はまだ始まったばかりですが、今回の経験を活かして、効率化と品質の向上を目指したいです。具体的には、AIとの対話を継続的に行い、その特性をさらに深く理解し、よりスムーズに協働できるよう指示ルールを丁寧に整備していこうと思います。また、QAとしての強みである観点抽出のノウハウなどをAIに反映させる仕組みを築くことにも挑戦し、将来的にはテストケース作成の工数削減という成果につなげたいと思っています!

もし「こうした方がもっと効率的にできるよ!」「このやり方おかしいかも…」などのご意見があれば、ぜひコメントいただけると嬉しいです!💬


ユニファでは、新しい仲間を募集してます!

興味を持っていただきましたらぜひ採用ページをのぞいてみてください。

jobs.unifa-e.com