小さな面倒を解決する!QA業務でAIを使いこなすための3つのポイント

サムネイル

想定読者

本記事は、以下のような方々を想定読者としています。

  • これからAI活用を業務に取り入れる方
  • QAエンジニア、テストエンジニア、品質保証に関わる実務者

はじめに

こんにちは、QA部の渡辺です。
普段はゲーム案件にてQA(品質保証)の業務を主に行っています。

多くの企業でAIの活用が進む中、実際に自社の現場へ導入する際にまず、どこから着手すべきか迷う方も多いのではないでしょうか。

ここでは、2025年4月から始動した生成AI活用の取り組みについて、考え方や具体的な試行例を交えてご説明します。 developersblog.dmm.com

1.AI活用を「手段」にするための考え方

AI活用のイメージ

「AIを使っていきましょう!」と言われても、何に使用すべきかと迷いますよね。
そんな時、AIをどこかに取り入れなければならない、といった考え方になってはいないでしょうか?

AIは業務の問題を手助けしてくれる”手段”であり、「AIを使用すること」が目的にならないよう考え方を変えてみましょう。

まずは「小さな面倒」を洗い出す

AIでできるかどうかはいったん置いておき、
普段の業務中の小さなひと手間、面倒に感じるものを、些細なものでも構いませんのでピックアップしてみましょう。

■非効率な作業はないか

  • メンバーへの作業割り振りが手間になっている

■自身の苦手なことはなにか

  • 文章をうまくまとめることができない 

■業務で改善したいことはなにか

  • 連絡を失念してしまう
  • テスト項目作成時ミスをなくしたい

ー 改善したい内容がまとまったら、早速AIに相談をしてみましょう!

2.QA業務の質を高めるAIへの「伝え方」

ポイント1【プロンプトの具体化】

ざっくりとしたプロンプトでは、返答も同じく曖昧なものになってしまいます。

プロンプトを具体的にする理由は、AIに「何を、どうしてほしいのか」という目的と役割を明確に伝えるためです。

(例)

×「この文章を簡潔にまとめてください」

◎「この文章を以下条件に沿って簡潔にまとめてください」

  • 中学生でも理解できるようにまとめる
  • 専門用語を使わない
  • 100字以内でまとめる

読者(中学生)、制約(専門用語禁止)、形式(100字以内)が指定され、
よりほしい内容にまとめることが可能です。

プロンプトを具体的にするためには、以下の要素を意識して含めると効果的です。

【目的】

  • 何のために使用するか
    • 使用用途の形式に合わせてまとめてくれます
       (例:会議資料、レポート、メールの返答 など)

【役割】

  • AIにどのような立場で回答してほしいか
    • 指定することでその役割の視点から物事を見てくれやすくなります
       (例:専門家、プログラマー QAエンジニア など)

【ターゲット】

  • 誰が読むのか
    • 想定読者を指定することで、読みやすさ、専門用語の使用頻度などが変化します
       (例:初心者、上司、中学生、専門家 など)

【形式・制約】

  • 形式
    • 丁寧orカジュアル
    • 箇条書きor表形式
  • 制約
    • 文字数制限
    • 専門用語の利用有無

など、ある程度形式を指定することでコントロールが可能です。
(例:200字以内、箇条書き、専門用語禁止 など)

ポイント2【最適なデータの提供】

画像やPDFなど非テキスト形式のデータをAIで読み取ると、誤認識や情報の欠落が生じるリスクを伴います。

AIは文字列(テキストデータ)の処理がもっとも得意です。 そのため、画像やPDFを読み込ませるよりも、テキスト(HTMLやCSVへの変換も含む)で渡す方が、情報は正確に伝わり、期待する返答を得られやすくなります。

ポイント3【利用環境の明示】

  • スプレッドシートでデータをまとめたい
  • 関数を使用して整えたい
  • GAS(Google Apps Script)を使用して整えたい

ただ漠然と「こういうことをしたい」と伝えるのではなく
上記のように自身の使用できるツールに当てはめた内容でプロンプトを作るとスムーズにやり取りが行えます。

(例1)

×「データを整理したい」

  • 目的や手段、形式が不明確なため、AIは「Excelで整理するのか」「表形式で整理するのか」「文章で整理するのか」わからず、広く浅く案を提示するに留まってしまう

「スプレッドシートでデータを関数を使用して整えたいので、具体的な関数の書き方を教えてください」

  • ツール(スプレッドシート)、手段(関数)、知りたいこと(具体的な関数の書き方)が明確に指定されるため、自分が求めているものが手に入る

(例2)

×「連絡を失念しないようにする方法はあるか」

  • これだけでは「リマインダーやタスク管理ツールを活用する」などアドバイスのみで終わってしまいます

「連絡を失念しないように、GASを使用して自動で連絡を送られる機能を作成したい」

  • 使用するツールを指定し、具体的な改善案を伝えることでAIは単なるアドバイスではなく、具体的な「コード」や「手順」といった実行可能な成果物を出力することが可能になります

3.【実践事例】業務を自動化するAI活用例

ここでは、前述の考え方と伝え方を活用した具体的な事例として、GASを用いた「連絡自動送信機能」を紹介します。

「事例:GASを用いた定時連絡業務の自動化」

チャットワークにて実際に自動送信した際のスクリーンショット

手順1.現在の改善点を洗いだす

自分やAIで実現可能かはいったん置いておき、どうすれば改善可能か方法を考える。

【改善点】
作業に集中していると、毎日周知が必要な連絡を失念してしまう。

【改善案】

  • リマインド機能を作成する
  • 自動で連絡が送信されるようにする

手順2.どのようなツールで改善可能か考える

【ツール】

  • GASを使用する

自分自身で習得するのは難しいが、コーディングはAIが得意なため改善策の幅が広がります。

手順3.改善案が実現可能かAIに伝えるためのプロンプトを作成する

  • 手順1,2で洗い出したものをポイントに沿って書き出す
  • 自身で習得が難しいコーディングはAIに任せてしまう
目的 毎日定刻で行う連絡を自動で送信したい
役割 プログラマー視点
ターゲット 文章ではないので不要
形式/制約 ・【形式】チャットワークにメッセージを送信する
・【制約】土日祝を抜いた営業日のみ送信されるようにする
・【制約】特定の時刻に送信されるようにする
・【形式】スプレッドシートでメッセージ内容を編集できるようにする
・【制約】なし

ポイント2【最適なデータの提供】

最適なデータ テキスト形式

ポイント3【利用環境の明示】

利用環境 ・GAS
・チャットワーク
・スプレッドシート
(プロンプト例)
あなたはプログラマーです。

毎日定刻で行う連絡を自動で送信する機能を作成したいです。
以下の制約に基づきGAS用のコード作成をお願いします。

  • チャットワークに送信する
  • スプレッドシートでメッセージ内容を編集できるようにする
  • 土日祝を抜いた営業日のみ送信されるようにする
  • 特定の時刻に送信されるようにする

(出力例:【GAS用スクリプト】)

const CHATWORK_API_TOKEN = '***********';
const SCHEDULE_SHEET_NAME = '投稿';
const HOLIDAY_SHEET_NAME = '休暇一覧';

function postScheduledMessages() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SCHEDULE_SHEET_NAME);
  const holidaySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(HOLIDAY_SHEET_NAME);
  const data = sheet.getDataRange().getValues();
  
  const now = new Date(); // GMTだけど、formatDateでJSTになる
  const jstNow = Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss");
  const jstDate = Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd");
  const currentDay = parseInt(Utilities.formatDate(now, "Asia/Tokyo", "u")); // 1=月〜7=日

  Logger.log("現在時刻(JST): " + jstNow);

  const holidays = holidaySheet.getRange("B2:B").getValues()
    .flat()
    .filter(date => date)
    .map(date => Utilities.formatDate(new Date(date), "Asia/Tokyo", "yyyy/MM/dd"));

  Logger.log("休暇一覧: " + holidays.join(", "));

  if (holidays.includes(jstDate)) {
    Logger.log(`今日は休暇日(${jstDate})なので投稿スキップ`);
    return;
  }

  for (let i = 1; i < data.length; i++) {
    const row = data[i];
    const [sun, mon, tue, wed, thu, fri, sat, hour, minute, roomId, message, postedAt] = row;

    if (postedAt || !message || !roomId) continue;

    const dayFlags = [sun, mon, tue, wed, thu, fri, sat];
    const dayIndex = (currentDay % 7); // Chatwork式(0=日曜, 1=月曜...)

    if (dayFlags[dayIndex] !== 1 && dayFlags[dayIndex] !== "1") continue;

    const nowJST = new Date(Utilities.formatDate(now, "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss"));
    const target = new Date(nowJST);
    target.setHours(Number(hour));
    target.setMinutes(Number(minute));
    target.setSeconds(0);

    const diff = Math.abs(nowJST.getTime() - target.getTime());

    if (diff <= 5 * 60 * 1000) {
      Logger.log(`投稿行 ${i + 1} を送信します: ${message}`);
      sendMessageToChatwork(roomId, message);
      sheet.getRange(i + 1, 12).setValue(
        Utilities.formatDate(new Date(), "Asia/Tokyo", "yyyy/MM/dd HH:mm:ss")
      );
    } else {
      Logger.log(`行${i + 1} スキップ: diff=${diff}ms`);
    }
  }
}

function sendMessageToChatwork(roomId, message) {
  const url = `https://api.chatwork.com/v2/rooms/${roomId}/messages`;
  const options = {
    method: 'post',
    headers: {
      'X-ChatWorkToken': CHATWORK_API_TOKEN
    },
    payload: {
      body: message
    }
  };

  try {
    UrlFetchApp.fetch(url, options);
    Logger.log(`✅ 投稿成功: ${message}`);
  } catch (e) {
    Logger.log(`❌ 投稿失敗: ${e}`);
  }
}

手順4.生成されたコードを使用し、スプレッドシートを作成し、GASを設定する

(GAS送信用メッセージ編集スプレッドシート-投稿シート) 自動送信をするためのメッセージ編集用スプレッドシート

(GAS送信用メッセージ編集スプレッドシート-休暇一覧シート)

成人の日 2025/01/13
建国記念の日 2025/02/11
天皇誕生日 2025/02/23
休日 2025/02/24
春分の日 2025/03/20
昭和の日 2025/04/29
憲法記念日 2025/05/03

うまくいかない場合や、別の形で運用したい場合はさらにAIに相談をします。

今の状態を伝える

  • エラー内容、コード内容、送信内容

文章で伝えるよりも、特にエラー内容やコード内容はAIが正確に理解しやすい傾向にあります。

手順5.改善したいことがあれば、改善したい内容を伝える

  • 特定のメンバーに送信したい、複数の時刻に送信したい など
    具体的な要求を伝える

さいごに

3つのポイントを意識しAI活用を可能にするイメージイラスト 私自身も最初は、「AIで何ができるのか、できないのかが分からない」「質問しても、ありきたりな回答しか返ってこない」といった壁に直面し、結果「自分で作業したほうが早いのではないか」と感じたことが何度もありました。

しかし、AIを使うことを「目的」ではなく「手段」として捉え直し、AIを「自分を手助けしてくれる助手」として付き合い方を変えたことで、その活用方法は格段に変わりました。

例えば同僚に「資料をきれいにまとめられない」とだけ相談をされても、何を、どういう形式でまとめたいのかがわかりません。
それと同じで、AIに対しても情報を細かく与え、「いかに伝わりやすいプロンプトを伝えるか」がポイントであると実感しました。

この力を高めるために、以下の3つのポイントをより意識すると効果的です。

ポイント1【プロンプトの具体化】

  • 目的、役割、ターゲット、形式/制約を明確に伝えること

ポイント2【最適なデータの提供】

  • AIの得意なテキスト形式で正確な情報を提供すること

ポイント3【利用環境の明示】

  • 使用したいツールや組み立てたい形式を伝えて実用的な回答を得ること

これらを意識するだけで、AIの出力は「ざっくりとした返答」から「実用的な返答」に変化します。

またAIとの対話は、現状の目標や改善点をあらためて整理する絶好の機会でもあります。

今自分が何に悩み、何を改善すべきかを文章に書き出すことで、自分一人で解決しなくてはならないこともAIを通して客観視して物事を考えることができました。

そして問題解決の手段として「AI」を活用することで、自分が苦手なことや習得に時間のかかる分野でも改善の可能性が生まれ、 今までできないとあきらめていた部分でも、解決策の糸口が大きく広がりました。

よって、人間にしかできない「思考」や「判断」、そして「業務改善に向けた活動」に注力できる環境を整えていくことができます。

AIを単なる道具ではなく、自分の生産性を高める相棒として最大限に活用していきたいです。