ChatGPTを活用してテスト作業効率を向上 ~テストエンジニアのための新しいツール(1) | JD Cloudテクニカルチーム

1 はじめに

ChatGPTの普及により、さまざまな業界がChatGPTを活用して作業効率を向上させようと試み始めています。その中で、テストエンジニアも ChatGPT を適用してテスト作業を強化する方法を模索し始めています。この記事では、テストエンジニアの観点から、テスト作業におけるChatGPTの適用について説明します。ChatGPT を通じて、テスト エンジニアは人間とコンピュータの対話を迅速に実行できるため、テスト タスクの実行が迅速化されます。要件分析、テスト ケースの作成、欠陥レポート、自動テスト スクリプト生成など、ChatGPT は正確な提案とガイダンスを提供します。同時に、ChatGPT を使用すると、テスト エンジニアの作業負荷が軽減され、より困難なテスト タスクに集中できるようになります。

それだけでなく、ChatGPT は、テスト エンジニアがテスト実行中に問題を解決するのにも役立ちます。テスト環境の構成、テスト データの生成、テスト ケースの設計などで問題が発生した場合、テスト エンジニアは ChatGPT との会話を通じてリアルタイムのヘルプやガイダンスを得ることができます。要約すると、ChatGPT は作業効率を向上させるツールであるだけでなく、テスト エンジニアにとって信頼できるインテリジェント アシスタントでもあります。ChatGPT の機能を最大限に活用することで、テスト エンジニアはテスト中にタスクをより効率的かつ正確に完了し、ソフトウェアの品質を保護できます。

2. 機能テストケースの生成

テスト エンジニアにとって、要件分析とテスト ケースの作成は、テスト プロセス全体の大部分を占めます。chatGPTを利用して需要分析を行い、より品質の高いテストケースを出力できれば、テストエンジニアの作業効率が大幅に向上します。ただし、テスト後、chatGPT に要件を入力しても満足のいく結果が得られない場合があります。ただし、システムまたはフォームレベルの要件については、chatGPT によって得られる結果は基本的に満足のいくものです。指定されたフロントエンド機能コードからテスト テスト ケースを直接生成することも可能です。

例: マルチテナント システムをまったく理解していない人には、chatGPT にいくつかのテスト ポイントと指示を提供してもらうことができます。注: 結果のスクリーンショットは長すぎるため、一部のみが表示されています。

例: 入力パラメータ、パラメータ値の範囲、指定されたフォームの各フィールドの制約が与えられた場合、chatGPT はさまざまなユースケースの組み合わせを生成する必要があります。注: 結果のスクリーンショットは長すぎるため、一部のみが表示されています。

例: フロントエンド コードの一部を通じて機能テスト ケースを直接生成します (コードのセキュリティ保護に注意してください)。注: 結果のスクリーンショットは長すぎるため、一部のみが表示されています。

示例代码:<div class="valign_wrap">
        <!-- +.withqrc 切换 -->
        <div class="login_pop">
            <div class="login_pop_inner login_withpc" style="height: auto;padding-top:40px;padding-bottom: 20px">
                    <div id="checkCodeDiv" style="display: none;font-size: 18px" class="login_form_row account">
                        <div style="width: 100%;text-align: center;">登录账号:<span style="font-weight:bold">wywangyanjie</span> </div>
                        <br>
                        <div>请在您的<span style="color: red;font-weight:bold">京Me</span>上确认,登录验证码<br><span style="text-align: center;display:-moz-inline-box;display:inline-block;width:90px;color: red;font-weight:bold;font-size: 22px;"></span>,请在<span style="color: red;font-weight:bold">分钟内</span>完成操作!</div>
                        <input type="hidden" id="checkCode" name="checkCode?if_exists" value="">
                        <br>
                    </div>
                    <div id="reSubmitDiv" style="display: none;font-size: 18px" class="login_form_row account">
                        <div style="width: 100%;text-align: center;">您的账号<span style="font-weight:bold">wywangyanjie</span>,本次登录已超时,请重新登录! </div>
                        <br>
                        <div class="login_form_row formsubmit"><input class="formsubmit_btn" type="button" onclick="refreshPage()" value="重新登录"></div>

                    </div>
                    <div id="errorDiv" style="display: none;font-size: 18px" class="login_form_row account">
                        <div style="width: 100%;text-align: center;">您的账号<span style="font-weight:bold">wywangyanjie</span>,本次登录存在异常情况,请重新登录! </div>
                        <br>
                        <div class="login_form_row formsubmit"><input class="formsubmit_btn" type="button" onclick="refreshPage()" value="重新登录"></div>
                    </div>
                    <div id="loginDiv" style="display: none;font-size: 18px" class="login_form_row account">
                        <div style="width: 100%;text-align: center;">您的账号<span style="font-weight:bold">wywangyanjie</span>,已被拒绝登录,请重新登录! </div>
                        <br>
                        <div class="login_form_row formsubmit"><input class="formsubmit_btn" type="button" onclick="refreshPage()" value="重新登录"></div>
                    </div>

                </form>
                <a class="login_style to_qrcode" href="javascript:;" tologintype="2" title="切换到扫码登录"></a>
            </div>
                <div class="login_withqrc_result">
                    <div class="login_withqrc_doge"></div>
                    <div class="login_withqrc_succ">扫描成功!</div>
                    <div class="login_withqrc_tip">请在手机上确认是否登录</div>
                </div>
                <a class="login_style to_password" href="javascript:;" tologintype="1" title="切换到密码登录"></a>
            </div>
            <div id="otherDiv" class="login_pop_inner" style="height: auto;padding-top:20px;padding-bottom: 20px">
                <div style="text-align: center">
                    <div class="login-way" id="passwordDiv" title="密码登录" style="width: 22%;">
                        <div>密码登录</div>
                    </div>
                    <div class="login-way" id="qrcodeDiv" title="扫码登录" style="width: 22%;">
                        <div>扫码登录</div>
                    </div>
                </div>
                <div class="login_form_row formsubmit"><input class="formsubmit_btn" type="button" id="formsubmitButton" value="登  录"></div>
                <div class="login_form_row findback" id="forgetPwdDiv"><a href="/sso/findpwd/index">忘记密码?</a></div>
                <div class="login_form_row warntip hide" style="margin-top: 10px; display: block;"><i class="warntip_icon"></i><span class="warntip_text">用户名或密码错误,请重试!</span>
                </div>
                <div class="login-language">
                    <span class="lan-title">语言选择</span>
                    <div class="lan-part">
                        <select class="lanselect" id="lanSelect" onchange="selectLan()">
                            <option value="zh_CN">中文</option>
                            <option value="en_US">English</option>
                        </select>
                    </div>
                </div>

            </div>
        </div>
    </div>
    

3. コード支援による生成

コード支援機能は基本的な機能です。一部のメソッドや関数では、chatGPT の指示や要件を指定することでコードを自動的に生成できます。生成されたコードにはエラーが含まれたり、期待を満たしていない可能性がありますが、アイデアや基本的なコードを得ることができます。 . . 自動生成されたコードに基づいて変更や最適化を行うことができるため、コード作成の効率が大幅に向上します。

4. インターフェーステストケースの生成

chatGPT に入力インターフェイス、対応する入力パラメータ、および入力パラメータ制約を与えて、テスト ケースを生成させます。chatGPTで与えられるユースケースシナリオは基本的に全てを網羅しており、4つのパラメータを与えると20個のユースケースが生成される(この機能は10点で評価できる)。実際の作業では、実際のシナリオに基づいて合理化してテストできますが、銀行システムなどシステム要件が比較的高い場合は、可能な限り完全にカバーする必要がある場合があります。

5. インターフェース自動化スクリプトの生成

詳細は記事「効率重視:ChatGPTとHttpRunnerを使ったアジャイル自動テストの実装(2)」をご参照ください。

実装プロセスのアイデア: 最初に書かれたインターフェイス自動化スクリプトの例を chatGPT に提供し、次に生成されたインターフェイス テスト ケースを chatGPT に提供すると、指定された例に従ってインターフェイス自動化テスト ケースをスクリプトに自動的に変換できます。もちろん、具体的な主張は実際の状況に応じて修正する必要があります。注: 結果のスクリーンショットは長すぎるため、一部のみが表示されています。

注: 上記の自動化スクリプトは、Httprunner (公式 Web サイトのリンク)フレームワークを通じて実装されています。

6. その他

SQL、DockerFile、Nginx 構成、シェル スクリプトなど、他の方向では、chatGPT はあらゆる面で役立ちますが、1 つずつスクリーンショットを撮って例を示すつもりはありません。これは、関連する知識に接していない初心者にとっては単純すぎるため、検索エンジンでも対応するコンテンツを見つけることができますが、手動によるスクリーニングと統合が必要になる場合があります。chatGPT の助けを借りて、初心者プレイヤーも適切に使用すれば中級者になることができます。

一般的に、ChatGPT を使用してコードの生成、ユースケースの生成、SQL、DockerFile、Nginx 構成およびシェル スクリプトなどを生成すると、特定のガイダンスと参照が提供されますが、生成されたコンテンツが要件を満たしていることを確認するために手動での検証と最適化が必要になります。期待。簡単なものは自分で0から1まで完成させることもできますが、コマンドを使ってchatGPTに自動生成・完成させて検証を手動で修正した方が、0から1から実装するより断然早いです。

7. まとめ

概要: テスト作業において、テスト ケースを生成するための需要分析やコード解釈 (コードのセキュリティに注意) などの機能テストを支援することができ、コード、インターフェイス テスト ケース、自動スクリプト、その他の指示の生成も支援できます。もちろん、実際の使用では、生成された結果には、プロンプトの単語が異なるため、複数の手動対話トレーニングが必要になる場合があります。しかし、chatGPTを使用しない場合よりも、使用した方が作業効率は確実に向上します。もちろん、導入後の数値化や効率化などの課題はまだ模索中であり、第一歩を踏み出すまでの道のりはまだまだ長い。

著者: Zhang Xinglei、JD Technology

出典:JD Cloud Developer Community 転載の際は出典を明記してください

オープンソース フレームワーク NanUI の作者がスチールの販売に切り替えたため、プロジェクトは中断されました。Apple App Store の無料リストのナンバー 1 はポルノ ソフトウェア TypeScript です。人気が出てきたばかりなのに、なぜ大手はそれを放棄し始めるのでしょうか。 ? TIOBE 10月リスト:Javaが最大の下落、C#はJavaに迫る Rust 1.73.0リリース AIガールフレンドにイギリス女王暗殺を勧められた男性に懲役9年の実刑判決 Qt 6.6正式リリース ロイター:RISC-Vテクノロジーが中米テクノロジー戦争の鍵となる 新たな戦場 RISC-V: 単一の企業や国に支配されない レノボ、Android PC の発売を計画
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4090830/blog/10116827