過去 2 年間の AI、特に LLM (Large Language Model) の進歩により、従来の問題をより効率的に解決できることが判明しました。LLM が生み出すことができるそのような影響の 1 つは、ソフトウェア テストの自動化の支援を通じて行われます。多くのソフトウェア チームにとって、自動化は SDLC サイクルの最優先事項ではなく、チームは「テスト自動化の負債」を生み出すテスト ケースの自動化に苦労しています。テスト自動化におけるこのギャップにより、品質チームはこれらのテスト ケースの手動検証と作成に多くの時間を費やし、その結果、エンジニアリング チームの出荷速度が遅くなります。
上記の問題すべてについては、ソフトウェア チームがどのように取り組むべきかについて別の記事が必要ですが、このセクションでは、QA エンジニアがBDD (動作駆動テスト) のコパイロットとして ChatGPT または LLM を活用する方法について説明します。
BDDとは何ですか?
動作駆動開発 (BDD) はアジャイル ソフトウェア開発手法であり、アプリケーションを文書化し、ユーザーがアプリケーションを操作するときに経験することが期待される動作に基づいて設計します。この議論の文脈として、YC Web サイトに BDD ベースのテストを適用し、YC ハッカー ニュースのログイン ページを出発点として考えてみましょう。
「ユーザーがログインを試行し、 =news で有効な認証情報を入力してログインを押すと、ユーザーはハッカー ニュース Web サイトにリダイレクトされるはずです。 」
BDD ガイドラインに従って、上記の動作は、可能なテスト ケースとなる Gherkin 構文/ステップとして記述することができ、フレームワークとして cucumber を使用すると、同じ Gherkin を自動化でき、この動作は人間の介入を必要としなくなります。ただし、上記のセクションで説明した問題のため、QA チームは通常、自動化に苦労していますが、いくつかのプロンプトを作成し、QA チームが Gherkin ステップとその自動化を行うためのワークフローを作成することで、 LLMの力を活用できます。 cucumber フレームワークでは速度が速くなります。
Gherkin 構文を转化成するためのワークフロー
Gherkin 構文から cucumber 互換コードを转化成するワークフロー
ステップ 1: エンジニアリングを受けるよう促す
ステップ 2: 自動化のベースとして使用する必要がある関連する HTML を挿入します。
下に示すように、微調整後、ChatGPT は、cucumber のステップ定義を转成するために动用できる関連する HTML および Gherkin ステップを条件します。
ステップ 3: ステップ定義の生成
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
最終出力