過去 2 年間の AI、特に LLM (Large Language Model) の進歩により、従来の問題をより効率的に解決できることが判明しました。LLM が生み出すことができるそのような影響の 1 つは、ソフトウェア テストの自動化の支援を通じて行われます。多くのソフトウェア チームにとって、自動化は SDLC サイクルの最優先事項ではなく、チームは「テスト自動化の負債」を生み出すテスト ケースの自動化に苦労しています。テスト自動化におけるこのギャップにより、品質チームはこれらのテスト ケースの手動検証と作成に多くの時間を費やし、その結果、エンジニアリング チームの出荷速度が遅くなります。
このような困難を回避するために存在する唯一の逃げ道は、テスト ケースを高速で自動化することですが、多くの場合、次の理由により自動化できません。
上記の問題すべてについては、ソフトウェア チームがどのように取り組むべきかについて別の記事が必要ですが、このセクションでは、QA エンジニアがBDD (動作駆動テスト) のコパイロットとして ChatGPT または LLM を活用する方法について説明します。
BDDとは何ですか?
動作駆動開発 (BDD) はアジャイル ソフトウェア開発手法であり、アプリケーションを文書化し、ユーザーがアプリケーションを操作するときに経験することが期待される動作に基づいて設計します。この議論の文脈として、YC Web サイトに BDD ベースのテストを適用し、YC ハッカー ニュースのログイン ページを出発点として考えてみましょう。
上記のページの場合、期待される動作は次のとおりです。
「ユーザーがログインを試行し、 https://news.ycombinator.com/login?goto =news で有効な認証情報を入力してログインを押すと、ユーザーはハッカー ニュース Web サイトにリダイレクトされるはずです。 」
BDD ガイドラインに従って、上記の動作は、可能なテスト ケースとなる Gherkin 構文/ステップとして記述することができ、フレームワークとして cucumber を使用すると、同じ Gherkin を自動化でき、この動作は人間の介入を必要としなくなります。ただし、上記のセクションで説明した問題のため、QA チームは通常、自動化に苦労していますが、いくつかのプロンプトを作成し、QA チームが Gherkin ステップとその自動化を行うためのワークフローを作成することで、 LLMの力を活用できます。 cucumber フレームワークでは速度が速くなります。
Gherkin 構文を生成するためのワークフロー
たとえば、以下の画像では、プロンプトを使用して、自然言語で表現される動作のガーキン構文を生成することで GPT モデルを微調整する方法を示しています。
Gherkin 構文から cucumber 互換コードを生成するワークフロー
ステップ 1: エンジニアリングを受けるよう促す
以下は、提供されている HTML コードと Gherkin ステップを使用して適切な自動化を吐き出すように微調整するために ChatGPT コンソールに書き込むことができるプロンプトです。最終的な出力として、QA がそのままコピーペーストできる cucumber の必要に応じてステップ定義の形式でコードを生成するように依頼しました。
ステップ 2: 自動化のベースとして使用する必要がある関連する HTML を挿入します。
以下に示すように、微調整後、ChatGPT は、cucumber のステップ定義を生成するために使用できる関連する HTML および Gherkin ステップを要求します。
ステップ 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 "https://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 エンジニアも同様のことを行うことができるため、生産性がさらに向上し、ソフトウェアの品質と安定性を確保する仕事をエキサイティングなものにすることができます。