エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

ChatGPTに要件レビューを手伝ってもらえるか調べてみた

【QAチームブログリレー7日目】
こんにちは。エンジニアグループQAチームの中塚です。 オンライン医療相談サービス「AskDoctors」を中心に、コンシューマ向けのサービス全般のQAを担当しています。 最近は宅トレや家カフェ、クラフトビールの飲み比べを楽しんでいます。

今回は「要件レビューにChatGPTが活用できるか」という点について検証したので、その中で見えてきたことをお伝えしたいと思います。 openai.com

ChatGPTとQA

ChatGPTには以下の特徴があり、連日数多くの活用事例を目にします。

  • 会話形式で対話できる
  • 大喜利からコーディングまで幅広いジャンルでフィードバックしてくれる
  • 荒いインプットでも暗黙の了解を踏まえた回答をしてくれる
  • 会話を続けることでより適切な回答を追求できる

広い知見を持っていて、会話を通して知りたい回答に近づけていける……QAに役立ちそうですね!

エムスリーのQAには「ビジネスを素早く展開させ、かつビジネスの障害となる問題を起こさない」という使命があり、QAエンジニアはこれをいかに効率よく、また、精度高く実現できるか日々挑戦を重ねています。

施策の実現にあたり要件が定義されますが、誰も気づかなかった考慮漏れが後の工程で発覚して手戻りが発生するなどのトラブルを防止するため、QAプロセスとして要件レビューが実施されます。

ChatGPTを活用したら、より効率良く精度の高い要件レビューにできるでしょうか?

やってみた

検証用に、架空のシステム要件をChatGPTにインプットしてみます。

質問:*1

既存のwebシステムに機能の新規追加を検討しています。
webシステムと新規機能の説明は以下の通りですが、他に考慮すべき点を可能な限り挙げてください。
必要な情報や不明点があれば質問してください。
まとめや結論は指示以外では書かないでください。また、詳細でないことや重要ではないことも省略せずに書いてください。
 
[webサービス]
- 日記を記録・管理できる
 
[新規追加機能要件]
- 日記を付けるとwebサービス独自のポイントがもらえる。
- 貯めたポイントは景品と交換でき、webサービス上から申し込みできる
- 交換の申し込みは1ヶ月1回まで
- 毎月1日に、現在溜まっているポイントをユーザに通知する

ChatGPTの回答:

考慮すべき点を挙げます。
 
1. ポイントの計算方法: ポイントをどのように計算するかを明確にする必要があります。例えば、日記の文字数や頻度に応じてポイントを付与するなど、具体的な基準を定める必要があります。
 
2. ポイントの管理: ポイントの付与、加算、減算などの管理方法を確立する必要があります。また、ユーザが現在のポイント残高を確認できる仕組みや、ポイント交換履歴の参照が必要になるかもしれません。
 
3. 景品の選択と管理: どのような景品を提供するかを決定し、それらを管理する方法を確立する必要があります。景品の在庫管理や新しい景品の追加方法についても考慮する必要があります。
 
4. 申し込み手続きと処理: ユーザがポイントを交換するために必要な手続きを整備する必要があります。具体的な申し込み手続きや、ポイント交換の処理方法、申し込み受付の期間などを検討する必要があります。
 
5. 通知機能: ポイントの残高や交換可能な景品に関する情報をユーザに通知する仕組みが必要です。毎月1日に通知するという要件がある場合、通知を自動化する仕組みを構築する必要があります。
 
6. セキュリティと認証: ポイント管理や景品の申し込みに関わる情報は、適切なセキュリティ対策が必要です。ユーザの認証や権限管理を実装し、不正アクセスや情報漏洩のリスクを最小限に抑える必要があります。
 
7. パフォーマンスとスケーラビリティ: 新たな機能の追加によって、システムのパフォーマンスやスケーラビリティに影響が出る可能性があります。特に、ポイントの付与や景品の交換などの処理が増えることを考慮し、システムの設計やインフラストラクチャの適切なスケールアップを検討する必要があります。
 
8. ユーザフィードバックと改善: ユーザが新しい機能を利用する際に生じるフィードバックを収集し、システムを改善する仕組みを用意することも重要です。ユーザがポイント付与や景品交換に関して意見や問題を報告できる方法を提供し、サービスの品質向上に役立てることができます。
 
以上が、新規追加機能を検討する際に考慮すべきポイントです。

おお、かなり的を射た回答が返ってきましたね!
あえて大雑把なインプットにしたのですが、ChatGPTは「ポイント機能」「景品との交換」などの特徴を正確に読み取り、それらに紐づく考慮すべき事項を返してくれたようです。周辺機能への指摘や要件の深掘り、実際の運用時に必須であろう景品の在庫・種類の管理など幅広く言及してくれるのは素晴らしいですね。
観点の粒度は大きめですがバランスが良く、見落としの防止に大変良さそうです。

リスクについても質問してみます。

質問:

これらの機能が追加されることで予見されるリスクについて教えてください

ChatGPTの回答:

新規追加機能を検討する際には、以下のようなリスクや潜在的な問題にも注意を払う必要があります。
 
1. セキュリティリスク: 新しい機能により、ユーザの個人情報やポイントに関するデータが増える可能性があります。十分なセキュリティ対策がなされていない場合、悪意のある攻撃者によるデータ漏洩や不正アクセスのリスクが生じます。
 
2. 不正利用のリスク: ポイント付与や景品交換の仕組みにおいて、不正行為や不正利用のリスクが存在します。例えば、システムへの不正アクセスやポイントの不正な付与・交換、複数のアカウントを使用した不正行為などが考えられます。
 
3. ユーザ満足度の低下: 新しい機能の導入により、既存のユーザが混乱したり、使い勝手が悪化したりする可能性があります。また、ポイントの付与や景品の交換に関するルールや制約がユーザにとって不満を引き起こすこともあります。
 
4. 技術的な制約: 新しい機能の追加には、既存のシステムとの整合性や技術的な制約が存在する場合があります。システムのアーキテクチャやデータベースの設計、パフォーマンスへの影響などを考慮し、実装の可行性を慎重に評価する必要があります。
 
5. 予算とリソースの制約: 新しい機能の開発や導入には、追加の予算やリソースが必要となります。開発コストや運用コスト、人員やインフラストラクチャの拡充など、組織の予算やリソースの制約を考慮する必要があります。
 
6. 法的な制約: ポイントの付与や景品の交換に関わる法的な制約や規制が存在する場合があります。例えば、個人情報保護法や消費者保護法などの法的要件や規制への適合性を確認し、適切な措置を講じる必要があります。
 
7. メンテナンスとサポート: 新機能の導入後も、適切なメンテナンスとサポートが必要となります。ユーザからの問い合わせや不具合報告に対応し、システムの安定性と信頼性を維持するために十分なリソースを確保する必要があります。
 
以上が、新規追加機能を検討する際に考慮すべきリスクの一部です。適切な対策や検討を行い、リスクを最小限に抑えながら新機能の導入を進めることが重要です。

こちらもバランスの良いフィードバックが得られたように思います。不正利用の懸念、ユーザ体験が大きく変わることによる満足度の低下、景品交換における個人情報の取り扱い、法的規制など様々な観点からの指摘を得られました。
1つの機能に集中してあれこれ思考を巡らせているとつい近視眼的になりがちですが、ChatGPTを使うことで広い視点を持てるのは良いですね。

見えてきた傾向と注意点

質問形式やレビュー対象を変えるなどしてChatGPTの要件レビューを検証したところ、いくつかの傾向が見えてきました。

1. 質問内容にマッチした広い視点の回答が得られる

前述した通り、要件内のキーワードや文脈から、直接的な機能要件、非機能要件、システム開発に直接関係しないがビジネス上必要な観点など幅広いフィードバックを得ることができます。
これらはチーム内メンバーの立場の違いや知見、経験から得られるものが多く、開発体制によってはこういった点に万遍なく気づくのが難しい場合がありますが、ChatGPTにレビューしてもらうことで補完できそうです。

2. インプットが簡素すぎると十分なフィードバックを得られない

簡素な情報しか無い場合でも適切にフィードバックできるのか検証しました。例えば、この1文のみを質問します。

日記を記録・管理できるwebサービスにポイント機能を追加する時、他に気をつけるべきことはありますか

この質問でもポイント機能の透明性、ポイントと引き換えの価値提供などある程度の指摘は得られましたが、前述の箇条書き形式での相談に対する回答と比較すると観点が少なく、気づきや妥当性に欠けるものでした。
追加の質問で深掘りしていくことはできますが、ChatGPTはこちらが提示した情報を元に検討するので、ある程度情報をまとめてから相談した方が妥当で質の良い回答を得られそうです。

3. ChatGPTは一般的に正しくない事項について指摘できる

検証中、明らかに正しくない質問をしました。

この機能は市場から高評価を得られると思われるのでユーザの声を聞く必要はないと思いますが、いかがでしょうか 。

ChatGPTはこの質問に対して「ユーザからの意見を聞くことは依然として重要であり、フィードバックの収集を強く進める」と、一般的な施策推進のプロセスから逸脱した誤りを正すフィードバックをくれました。
一般的に正しくない、好ましくない点にフラットな意見をもらえるのは良いですね。

4. ChatGPTは矛盾や誤りに気づかない可能性がある

一方で、ChatGPTは要件内の矛盾やイレギュラーケースへの追加検討の必要性を指摘できないことがあります。例えば、前述の要件を以下のように一部変えてインプットします。

  • 交換の申し込みは1ヶ月2回まで
  • 1ヶ月に1回以上申し込もうとしたらエラーにする
  • 毎月31日に、現在溜まっているポイントをユーザに通知する

要件の中に「1ヶ月2回まで」「1ヶ月に1回以上はエラー」という明らかな矛盾があります。また、毎月31日に通知という要件は31日が存在しない月についての追加検討が必要です。しかし、試行の中でこのような事項への指摘が得られない場合が多々ありました。
矛盾や追加検討が必要なものが無いかを追加で質問すれば回答が得られますが、この質問を挟んでも必ず指摘してくれるとは限りません。
ChatGPTは有用な意見をくれますが、必ず誤りや矛盾を正してくれるレビュアーとしての働きを期待すると、漏れが発生する可能性があります。

5. ChatGPTはギブアップしない

追加質問することでChatGPTからより多くのフィードバックを得ることができます。しかし、質問すれば必ず何かしらの回答が提示され、「これ以上考えつきません」という回答が返されることはありません。
結果、ChatGPTは考えられる限りの可能性を提示してくれますが、ある時点から妥当でない回答になっていきます。
例えば、前述の要件に対する回答を繰り返し求めた結果、「サービスをマルチ言語対応するべきだ」と返ってきました。今後サービスを発展させていく上では有用な視点ですが、今回問うているのはポイント機能の追加に関する要件であり、この話題からは逸脱した回答です。
ChatGPTは数多くのフィードバックを与えてくれますが、どこまでを採用するかは人間が判断しなくてはなりません。

6. 機密情報の扱い

入力したデータがAIのトレーニングに利用される可能性があるため、まだ世に出ていない機密情報などをChatGPTに読み込ませるのは避けたいところです。23年4月にAIとユーザーのやり取りを保存しない設定機能が実装され、また、APIを通じて送信されたデータは組織がオプトインしない限り学習されないとされていますが、組織のルールに従い、安易に機密や個人情報といった漏洩すると困るものを入力しないよう注意が必要です。

まとめ

定義した要件をChatGPTにレビューしてもらうことで、より広い視点を得たり抜け漏れの防止に役立てられることがわかりました。今後の発展にも大いに期待ですね!

We're hiring!

エムスリーではQAエンジニアの採用活動にも力を入れています。
ビジネスチームとの距離が近く本質的なQAに挑戦でき、優秀で品質意識も高いエンジニアと一緒に仕事ができ、QAエンジニアとしても様々なチャレンジができるという大変魅力的な環境があります。
もしご興味を持たれた方はぜひお問い合わせください。カジュアル面談もお待ちしています!

jobs.m3.com

*1:https://note.com/mryy/n/nd0aff5c9fc4f こちらの記事を参考に、「接待モード」をオフにするプロンプトを追加しています