はじめに
みなさんこんにちは!
まず自己紹介ですが、
私は昨年、JSTQB Foundation Levelに合格しまして、
今年は教える側の立場となり、悪戦苦闘しているQAエンジニアです。
今年はJSTQB FLの問題を作成して社内メンバー向けに模擬試験を行いました。
生成AIを活用して作問をしましたので、今回の記事ではその際のお話となります。
結論としましては、自力で問題を作成するよりも、生成AIを活用することで大幅に時間を短縮できました。
生成AIサービスを利用する中で、注意すべき点がいくつか見えてきましたので、備忘録としてまとめていきたいと思います。
JSTQBの自己学習で生成AIを利用したいと思ってる方や、
私と同じように社内で講師を担当されている方などに少しでもお役に立てましたら幸いです!
前提として
前提として、実際に作問を行った際の概要は以下のとおりです。
一言でまとめますと、「ChatGPTでシラバスversion3.1に基づいた問題を60問出力し、その後、内容が正確であるかを人の目でチェックして40問にまとめる」という作業を行いました。
・ChatGPTを利用
・2024年11月の試験内容が更新される以前の「Version 2018V3.1.J03」のシラバスを参照
・実際の試験と同じような設定を想定して問題を作成
・試験時間:60分
・問題数:40問
・4択形式
・全6章の中から1章10問ずつで問題と解説を出力
・シラバス記載の想定学習時間の割合から章ごとの問題数を決定
・AI出力後に問題内容の整合性が取れているかレビューを実施
・シラバス記載の想定学習時間の割合から章ごとの問題数を決定
章ごとの問題数の決定は、例えば1章の想定学習時間は175分で全体の2割程なので問題数は8問に設定するという調整をしました。
結果、全体を見たときに違和感のないバランスに仕上がったので問題のない決定方法だったと思います。
気づいたこと/注意すべきこと
①AI出力後の問題が合っているかのレビューは必須である
生成AIを利用したことのある方は気づいていると思いますが、現状では嘘の出力(ハルシネーション)が当たり前のように発生します。
問題:テストとデバッグの違いは何ですか?
A:テストはソフトウェアの不具合を修正する
B:デバッグはソフトウェアの品質を評価する
C:テストは欠陥を発見する
D:デバッグは欠陥の原因を特定し、修正する
解説:テストはソフトウェアの欠陥を発見するプロセスであり、
デバッグはその欠陥の原因を特定し修正するプロセスです。
出力された答え:D
実際の答え:CとD
例えば上記の出力の例の場合ですが、AIによる出力では答えはDとなっております。
しかし、シラバスに記載されているテストの7原則「テストは欠陥があることは示せるが、欠陥がないことは示せない」に基づけば、テストは欠陥を発見するプロセスであることが分かります。
そのため、実際の答えはCとDの両方となります。
そもそも、出力された解説とも矛盾しているため、このような問題については内容を修正するか、問題自体を差し替える対応を行いました。
AIで60問を出力した後にレビューを実施したところ、33問は修正が必要がありました。
少し怪しいと感じるものもあれば、一見問題なさそうな出力でも、シラバスと見比べると明確な記載がないので100%正しいとは言えない。
半数以上は修正が必要だったため、整合性が取れているかのレビューは必須であると考えます。
②出力された問題の難易度に注意する
初回は下記のような簡単なプロンプトでAI出力を行いましたが、
レビューを実施したところ、学習知識がない方でも消去法で答えが分かってしまうような非常に簡単な問題も多数ありました。
あなたには今からJSTQBFLの模擬試験の問題を作成していただきます。
必要な要素は次の4つです。
・問題
・選択肢(4択)
・解答
・解説
例えば以下のような推測だけで答えられそうな問題が該当します。
問題:効果的なレビューの成功要因として適切なものはどれですか?
A:全てのコード行をレビューすること
B:参加者全員のスキルレベルが同じであること
C:明確な目標と計画を持ってレビューを実施すること
D:レビューの後に必ずテストを行うこと
答え:C
解説:効果的なレビューを行うためには、明確な目標と計画を持ってレビューを実施することが成功要因となります。)
ただ、もう少し難易度を上げてほしい、というようなプロンプトにも柔軟に対応可能なので難易度を調整したり、
同じ章から問題を再出力するなどで、多少時間がかかるものの対処自体は容易でした
③正確なシラバスのバージョン指定を行う
シラバスのバージョンを指定しないと、11月以前の範囲であるv3.1と最新のv4.0のシラバスの情報が混ざった内容となってしまったので失敗談として記載します。
以下の例で説明すると、シラバスv3.1には静的解析ツールについての解説がなく、シラバスv4.0には解説が含まれている内容であったので目的に沿った出力にはなりませんでした。
問題:静的解析ツールの主な目的は何ですか?
A:実行中のバグを検出すること
B:コードの品質や標準遵守を自動的にチェックすること
C:ユーザーインターフェースのテストを支援すること
D:データベースのパフォーマンスを向上させること
答え:B
解説:静的解析ツールは、コードの品質や標準遵守を自動的にチェックするために使用されます。これにより、手動で見つけにくい欠陥を発見できます。
正確なバージョンを指定さえすれば、指定したバージョンの内容に沿った問題の出力は可能なので調整は容易です。
まとめ
JSTQBのAIによる問題作成では、上記で記載した通り半数以上は修正が必要な精度でした。
あくまで問題作成の補助として利用する前提で活用する分には非常に便利であると思います。
自己学習でも生成AIの活用は可能ですが、解いた後は必ずシラバスと見比べることは必須です。
私自身、上位資格の学習にAIを積極的に利用していこうと思いますが、この点は十分に注意したいと思います。
AIサービスの発展により今後さらに出力精度が向上していくと思いますので楽しみです。
以上、ご覧いただきありがとうございました!