人工知能はソフトウェア・デリバリーを支援し、ソフトウェア・テストの自動化とプロジェクト作業の最適化に利用できる。Dimitar Panayotov氏は、ChatGPTを使ってテストデータを生成し、電子メールテンプレートを作成し、テスト結果に基づいて説明を作成する。これにより、彼は時間を節約し、より生産的になるために投資できる。
Dimitar Panayotov氏は、QA Challenge Accepted 2023で、テストにおけるChatGPTの使用方法について語った。
人工知能(AI)はアルゴリズムとニューラルネットワークの集合体であり、IT専門家を支援するのに十分なデータが与えられている、とPanayotov氏は語った。そのため、特定のテーマに関する情報ダンプ、テスト文書作成、ケース作成からワークフローの推測パターンまで、品質保証エンジニアの日常生活を支援するための非常に高度なヘルパーツールになる、と彼は付け加えた。
ChatGPTはテストデータの作成に優れており、これが最大の強みだとPanayotov氏は言う。また、要件に基づき、世界のベストプラクティスに基づいてテスト戦略を作成もできる。テストケースを作成することもできるが、トレーニングが十分でないため、追加のサポートが必要だ。
ChatGPTは、テスト結果に基づいてEメールのテンプレートや説明を生成するのに使えるとPanayotov氏は説明する。
技術者でない人たちにとって、通常はグラフや数字でしかないテスト結果を、より分かりやすく説明できる。また、入力に基づいて表を作成する。
Panayotov氏の説明によれば、AIモデルはまだ開発途中であるため、使用中にバグや不具合が発生する可能性がある。
データとのオーバーフィッティング(ChatGPTの開発者がインプットした情報が間違っていたり、一般的な、あるいは欠陥のあるソースから得られたものである可能性がある)により、質問されたときに間違った答えが返ってきたり、値が欠落したりする。
また、幻覚も大きな問題である。基本的に、モデルはユーザーが入力した文字列に基づいて答えをコンパイルしようとするが、それには従わなければならない制限やルールがあるため、答えは完全なフィクションになる可能性がある。
ChatGPTは、例えばGoogleやReddit、あるいは全知全能のStackoverflowよりも強力なソフトウェアツールである、とPanayotov氏は言う。通常のツールとして使用し、製品の限界を知り、悪意のある目的に悪用しないように、と彼は提案した。
例えば、新しいソフトウェア言語やツールを学んだり、業務能力を拡張したりすることで、より生産的になるために投資できる時間を大幅に確保できる。
InfoQは、Panayotov氏に、日々の仕事でChatGPTをどのように使っているかについてインタビューした。
InfoQ: 自動テストにChatGPTをどのように使っている?
Panayotov氏: 私は自動化プロジェクトやCI/CDパイプラインの作成と実行時間を短縮する多くの操作にChatGPTを使っている。以下は、私がこのモデルを使用している機能のリストです。
テストプランとテストシナリオの作成-ウェブ、モバイル、または Cucumberのテストケースを基に新しいテストシナリオを作成するときに、このモデルはとても役に立ちます。
異なる言語でのスクリプトの作成-各プログラミング言語に対するモデルの一般的な知識には、ただただ驚かされるばかりです。
テストケースの設計 - 普遍的なモデルに基づいて、特定のビジネスロジックのための特定のデザインパターンを作成できます。
メールテンプレートの作成-テストデータの生成は、このモデル自体の最大の強みのひとつです。
InfoQ: ChatGPTを使ってソフトウェアプロジェクトの作業を最適化するのはどうだろう?
Panayotov氏: ここでは、実行速度の向上、リソースの使用量の最適化、プロジェクトの構造化など、このモデルでできることの例をいくつか紹介しましょう。
データのフォーマットとドキュメントの作成-プロジェクトのためのドキュメントの作成は、ITスペシャリストの人生で最も退屈なことだ。モデルはそれを生成することができるが、それはあなたがプロジェクトの構造を与えなければできないです。
CI/CDパイプラインをほとんどゼロから実装します-簡単なリクエストと指定があれば、モデルはCI/CDファミリーに属するほとんどすべてのソフトウェアと製品で実行するスクリプトを生成できます。
特定のクラスを作成する-要求があれば、モデルはプロジェクトの構造に基づいて特定のクラスを生成できます。
コードレビューとエラー処理-モデルはあなたのコードの基本的なコードレビューを行い、脆弱性を発見できます。しかし、あなたのデータが将来の模範解答の世代で使用できるかどうかを知る必要があります。
私たちは、モデルに私たちのプロジェクトにアクセスさせ、個人情報を提供させたいかどうかを確信しなければならなりません。ChatGPTはオープンソースの製品なので、クライアントや個人の機密情報を入力するのは賢明ではありません。
InfoQ: ChatGPTでテストする際のアドバイスは?
Panayotov氏: 私がいつも言っているように、ハードに働くのではなく、スマートに働くことです。 ChatGPTのモデルはそのため、それ以上のために作られているので、すべての手作業やデータ入力、データ生成は最終的に省略できます。必要なだけダミーデータと基本的なプロジェクト構造を作成します。ただ、個人データや顧客データは追加しないことです。将来のバージョンアップやデータマイニングによって、その使用が危険にさらされる可能性があるからです。