paint-brush
ソフトウェアテストにChatGPTを活用する に@ratikeshmisra
4,434 測定値
4,434 測定値

ソフトウェアテストにChatGPTを活用する

Ratikesh4m2023/09/16
Read on Terminal Reader

長すぎる; 読むには

過去 2 年間の AI、特に LLM (Large Language Model) の進歩により、従来の問題がより効率的に解決されることが判明しました。 LLM が生み出すことができるそのような影響の 1 つは、ソフトウェア テストの自動化の支援を通じて行われます。多くのソフトウェア チームにとって、自動化は SDLC サイクルの最優先事項ではなく、チームはテスト ケースの自動化に苦労しています。
featured image - ソフトウェアテストにChatGPTを活用する
Ratikesh HackerNoon profile picture
0-item
1-item

過去 2 年間の AI、特に LLM (Large Language Model) の進歩により、従来の問題をより効率的に解決できることが判明しました。LLM が生み出すことができるそのような影響の 1 つは、ソフトウェア テストの自動化の支援を通じて行われます。多くのソフトウェア チームにとって、自動化は SDLC サイクルの最優先事項ではなく、チームは「テスト自動化の負債」を生み出すテスト ケースの自動化に苦労しています。テスト自動化におけるこのギャップにより、品質チームはこれらのテスト ケースの手動検証と作成に多くの時間を費やし、その結果、エンジニアリング チームの出荷速度が遅くなります。


コードの複雑さによる手動テストの時間の変動


このような困難を逃避するために的存在する唯一一个の逃げ道は、テスト ケースを高速公路で自動化することですが、多くの場合、次の目的により自動化できません。


  • 手動 QA チームには、スケーラブルなコードを作成するための自動化の経験が不足しています。
  • 自動化する必要があるテスト ケースのバックログが膨大であるため、自動化を開始するコスト (エンジニアリング管理と QA に必要な帯域幅の観点から) が高すぎます。
  • テストケースのドキュメントの品質が低く、回帰および健全性スイートの適切なメンテナンスが行われていません。
  • ほとんどの製品会社は機能開発に重点を置いているため、安定性と品質は後回しにされています。
  • テスト ケースの人間による評価は、機械による評価よりも優先されます。


上記の問題すべてについては、ソフトウェア チームがどのように取り組むべきかについて別の記事が必要ですが、このセクションでは、QA エンジニアがBDD (動作駆動テスト) のコパイロットとして ChatGPT または LLM を活用する方法について説明します。

BDD とその自動化に GPT3.5 を使用する


BDDとは何ですか?


動作駆動開発 (BDD) はアジャイル ソフトウェア開発手法であり、アプリケーションを文書化し、ユーザーがアプリケーションを操作するときに経験することが期待される動作に基づいて設計します。この議論の文脈として、YC Web サイトに BDD ベースのテストを適用し、YC ハッカー ニュースのログイン ページを出発点として考えてみましょう。


YC ハッカー ニュース ログイン ページ


上記のページの場合、感触される動作は次のとおりです。

ユーザーがログインを試行し、 =news で有効な認証情報を入力してログインを押すと、ユーザーはハッカー ニュース Web サイトにリダイレクトされるはずです。


BDD ガイドラインに従って、上記の動作は、可能なテスト ケースとなる Gherkin 構文/ステップとして記述することができ、フレームワークとして cucumber を使用すると、同じ Gherkin を自動化でき、この動作は人間の介入を必要としなくなります。ただし、上記のセクションで説明した問題のため、QA チームは通常、自動化に苦労していますが、いくつかのプロンプトを作成し、QA チームが Gherkin ステップとその自動化を行うためのワークフローを作成することで、 LLMの力を活用できます。 cucumber フレームワークでは速度が速くなります。



Gherkin 構文を转化成するためのワークフロー

Gherkin 構文を生成するためのワークフロー


たとえば、一下の肖像では、プロンプトを选择して、那自然言語で表現される動作のガーキン構文を提取することで GPT モデルを微調整する方式 を示しています。


ChatGPT は、提示された動作に関連する Gherkin 構文を出力します。



Gherkin 構文から cucumber 互換コードを转化成するワークフロー

GPT を使用した Gherkin ステップによる Cucumber 互換コードの生成


ステップ 1: エンジニアリングを受けるよう促す


有以下は、可以提供されている HTML コードと Gherkin ステップを施用して適切な自動化を吐き出すように微調整するために ChatGPT コンソールに書き込むことができるプロンプトです。最終的な一定出力として、QA がそのままコピーペーストできる cucumber の有必要的に応じてステップ定義の方式でコードを添加するように依頼しました。



GPT を微調整してキュウリベースの自動化を生成するよう求めるプロンプト


ステップ 2: 自動化のベースとして使用する必要がある関連する HTML を挿入します。

下に示すように、微調整後、ChatGPT は、cucumber のステップ定義を转成するために动用できる関連する HTML および Gherkin ステップを条件します。


自動化に使用する必要がある HTML フィード


ステップ 3: ステップ定義の生成


この結果、GPT は供应された HTML から DOM 構造を体谅し、関連する Gherkin 構文を特殊要求します。上記のケースでは、そのまま渡すことができる Gherkin がすでに自动生成されています。


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "//news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


最終出力


最後に、ワークフローと上述情况のプロンプトに従って、上記の Gherkin ステップとシナリオのステップ定義ファイルが产生されます。これは、想定されていた動作の自動化を速度化するために、マイナーな品質チェック後に QA によってキュウリ フレームワークにコピーされる有机会性があります。テストする。


生成されたキュウリステップ定義

副操縦士の年齢

AI の出現と副操縦士の出現により、人間の生産性は朝上します。总体的で日常生活的なタスクを AI に引き渡すことで、イノベーションの限界をさらに押し上げることができるでしょう。しかし、テクノロジー、マーケティング、セールス、カスタマー サクセスのチームがワークフローで LLM の力を活用しようとしているため、私たちは彼らを単に私たちが行う仕事のアシスタントとして見るべきであり、テクノロジー、マーケティング、セールス、カスタマー サクセスのチームが LLM の力を活用しようとしているので、それらを便用する知性は从未として人間にあると私は从未として考えています。 QA エンジニアも同様のことを行うことができるため、生産性がさらに朝上し、ソフトウェアの品質と安定性を確保する仕事をエキサイティングなものにすることができます。
바카라사이트 바카라사이트 온라인바카라