![](https://sqripts.com/wp-content/uploads/2024/07/20240702_thumb-1-1024x538.png)
みなさんこんにちは。テストエンジニアのしば太郎、ひめりです。
ソフトウェアテストの勉強を日々行っていますが、参考書などに書かれた内容について、ほかの誰かに解説してほしいな、と思うことがあります。
同じ部署の先輩に相談したところ「生成AIを使ってみるのはどう?」というアドバイスがあり、初めて「生成AI」の存在を知りました。
生成AIとは
AIという言葉は聞いたことがありましたが、生成AIという言葉は耳慣れない言葉でしたので、Webサイトで調べてみました。
生成AIとは、「ジェネレーティブAI(Generative AI)」とも呼ばれるAI(人工知能)の一種です。AIを用いてクリエイティブな成果物を生み出すことができるのが特徴的で、生成できるものは楽曲や画像、動画、プログラムのコード、文章など多岐にわたります。
AIsmiley「生成AI(ジェネレーティブAI)とは?使い方・種類・仕組み・活用事例を解説》」
生成AIはAIが自ら答えを探して学習する「ディープラーニング(深層学習)」を用いて構築された機械学習モデルであり、AIの中では比較的新しく生まれたモデルです。
「AIが人間のようにクリエイティブな成果物を生み出せる」点が従来のAIとは異なっており、画像生成AIの「Stable Diffusion」や、テキスト生成AIの「ChatGPT」などが一例として挙げられます。
そしてWebサイトを調べていくうちに、生成AIには画像生成、動画生成、音声生成、テキスト生成など、各分野に特化したAIがあり、各分野のAIも複数存在することが分かりました。
生成AIから文章だけではなく、画像や動画などが作り出せることに驚いたのと同時に、自分が利用したい目的を明確にし、適切な生成AIを選択する必要があることが分かりました。
続いては、実際に生成AIを使って勉強する前に、自分たちにはどの生成AIが適しているのかを決めていきたいと思います。
学習に使用する生成AIの決定
私たちは、画像や動画を作るのではなく、ソフトウェアテストを学ぶにあたって、生成AIに説明をしてもらいたいため、質問を入力するとAIが回答を生成してくれる「テキスト生成」の生成AIから選びたいと思います。
いくつかの生成AIを試し、理解しやすい言葉で説明してくれる「Gemini」に決めました。
学習開始
では、実際に生成AI「Gemini」を使って学習を進めてみます。
質問内容、使用してみての感想
1. 質問をし、勉強のきっかけを作ってみる
まずは「ソフトウェアテスト」という仕事について、イメージを掴めるような質問をしようと考えました。
回答はできるだけわかりやすくしてほしいことから、Geminiへの質問文に「わかりやすく」という文言を入れてみました。
質問:「ソフトウェアテストの目的と種類をわかりやすく教えてください。」
Geminiの回答はこちら。
![](https://sqripts.com/wp-content/uploads/2024/07/img01.png)
「ソフトウェアテスト」という仕事の概要について要点を押さえ、すっきりとまとめてくれました。
多少情報の不足はありそうですが、概要を掴むには十分です。学習の入り口にちょうどよいと感じました。
2. 専門用語を使わずに解説してもらう
1.でだいぶわかりやすい回答をもらえたものの、初心者としては、「モジュール」や「コンポーネント」等、専門用語が多い点が気になります。
用語の意味は追々調べるとして、せっかく生成AI学習をしているので、Geminiを活用し、1.の回答をさらにわかりやすく、「専門用語を使わない」形で書き換えてもらうことにしました。
1.の質問に以下の追加質問をしてみます。
追加質問:「専門用語を使わないでもっとわかりやすくしてください。」
Geminiの回答はこちら。
![](https://sqripts.com/wp-content/uploads/2024/07/image-1.png)
質問文の「専門用語を使わないで」「もっとわかりやすく」を忠実に守り、「車」という誰でもイメージできる例を使って回答してくれました。
「モジュール」や「コンポーネント」という単語のイメージが着き難かったのですが、「エンジン」や「ブレーキ」を使った例えが非常にわかりやすく、ようやく「単体テスト」や「結合テスト」等テストの違いが理解できました。
難しい用語でつまずくことも、Webサイトで調べる時間を取られることもなく読み進められました。
3. 疑問点を質問してみる
初心者あるあるだと思うのですが、理解できない部分が増えて勉強が思うように進まなくなると、頭の中にどんどん疑問がたまっていきます。
「なんでこんなにたくさんのテスト技法があるのだろう?」
「たくさんのテスト技法があるけれど、自分でテスト設計するときが来たら、どうやって選べばいいのかな?」
疑問を解決したいのですが、Webサイトで調べても分かりやすく説明されている検索結果を見つけられないことが多くあります。誰かに教えてもらいたいと思っても、身の回りに気軽に質問できる人はなかなかいません。
そのような時、生成AIには遠慮する必要がないので、自分の聞きたいタイミングで質問することができます。
さっそくGeminiに聞いてみます。
質問1:「なぜこんなに多くのテスト技法があるのですか?」
Geminiの回答はこちら。
![](https://sqripts.com/wp-content/uploads/2024/07/image-2.png)
![](https://sqripts.com/wp-content/uploads/2024/07/image-3.png)
「ソフトウェアには様々な側面があり、それぞれの側面を効果的にテストするために、それぞれ異なる技法が必要だから」という端的にまとめられた回答を読み、テスト技法の1つ1つに異なる役割があるからこんなに多くのテスト技法があるのだな、と理解することができました。また、Geminiはまず結論を伝え、次に理由や具体例を提示してくれるので、とても理解しやすいと感じました。
続いて、もう1つ聞いてみます。
質問2:「何を基準にテスト技法を選べばいいのか分かりません。どのように選べばよいのでしょうか。」
Geminiの回答はこちら。
![](https://sqripts.com/wp-content/uploads/2024/07/image-4.png)
![](https://sqripts.com/wp-content/uploads/2024/07/image-5.png)
この回答から、テスト技法だけではなく、テスト対象の種類・規模・複雑性はどうなのか、テスト対象をどういった観点でテストしたいのか、そしてテストにかけられる時間・コスト・テストを実行する担当者のスキルはどのくらいあるのか、といったテスト対象の様子やテストを実行するリソースにも関係することが分かりました。そのため、テスト技法の学習段階では、それぞれのテスト技法の特徴をとらえておき、私たちがテスト設計できるようになったとき、今回学んだ内容を活かしたいと思います。
AI学習の利点と注意点
これまで試した内容から、生成AIを使って勉強するメリットを以下のようにまとめてみました。
【メリット】
- 生成AIを使うことで手軽に学習ができる。
- 生成AIを使うことで学習のハードルを下げることができる。
- 人に聞きづらいことも遠慮なく質問でき、納得いくまで再質問ができる。
メリットがある一方で、生成AIを利用する際、気を付けなければいけない点があります。
生成AIは事実とは異なる情報をもっともらしく回答することがあり、このような現象を「ハルシネーション」と言うそうです。
そのため、初心者には生成AIの回答が合っているかどうかという判断が難しく、生成AIだけでの学習は誤った理解につながる可能性があるため、やはり参考書などのテキストとの併用が必要と感じました。
最後に
「ほかの誰かに解説してほしいな」から始めた今回の試みでしたが、私たちの目的は達成できたと思います。
生成AIを使った学習方法は、手軽に利用できる点、情報が掲載されているサイトを自分で探す必要がない点、生成された回答では理解が不十分である場合、納得できるまで繰り返し質問できる点において、大きなメリットを感じました。
また、今まで理解が難しかったテストの種類や技法が理解できたことで、自信に繋がりました。
生成AIを使うことで、自分ひとりでは理解するまでに時間がかかっていた内容を今までより効率よく学習できることから、これからも日々努力をつづけて、一人前のソフトウェアテスト実施者を目指していきたいです。