1、前言
隨著ChatGPT的爆火,各個行業(yè)開始嘗試?yán)肅hatGPT來提升工作效率。其中,測試工程師們也開始探索如何應(yīng)用ChatGPT來加強測試工作。在本文中,我們將從測試工程師的角度出發(fā),探討ChatGPT在測試工作中的應(yīng)用。通過ChatGPT,測試工程師可以快速進行人機對話,從而加速測試任務(wù)的執(zhí)行。無論是需求分析、測試用例編寫、缺陷報告還是自動化測試腳本的生成,ChatGPT都能提供準(zhǔn)確的建議和指導(dǎo)。同時,使用ChatGPT還可以減輕測試工程師的工作負(fù)擔(dān),讓他們專注于更有挑戰(zhàn)性的測試任務(wù)。
不僅如此,ChatGPT還可以幫助測試工程師在執(zhí)行測試過程中解決問題。當(dāng)遇到測試環(huán)境配置、測試數(shù)據(jù)生成、測試用例設(shè)計等方面的困擾時,測試工程師可以通過與ChatGPT的對話,獲得實時的幫助與指導(dǎo)。綜上所述,ChatGPT對于測試工程師而言,既是一款提升工作效率的利器,又是一位可靠的智能助手。通過充分利用ChatGPT的能力,測試工程師們可以在測試工作中更加高效、準(zhǔn)確地完成任務(wù),為軟件質(zhì)量保駕護航。
2、功能測試用例生成
測試工程師在整個測試流程中,需求分析及編寫測試用例在整個流程中占很大一部分比例。如果能通過chatGPT進行需求分析后,輸出質(zhì)量比較好的測試用例,將大大提升測試工程師的工作效率。然而經(jīng)過測試有時候?qū)⑿枨筝斎虢ochatGPT后并不能生成令人滿意的結(jié)果。但是對于系統(tǒng)或表單級別的需求,chatGPT給出的結(jié)果基本可以讓人滿意。甚至可以通過給定前端功能代碼直接生成測試測試用例。
例:對于完全不了解多租戶系統(tǒng),完全可以讓chatGPT給出一些測試點和方向。說明:結(jié)果截圖太長只展示了一部分。
例:給出指定表單各個字段輸入?yún)?shù),參數(shù)取值范圍及約束條件,需要chatGPT生成各種用例組合。說明:結(jié)果截圖太長只展示了一部分。
例:直接通過部分前端代碼(注意代碼安全保護)生成功能測試用例。說明:結(jié)果截圖太長只展示了一部分。
示例代碼:<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>上確認(rèn),登錄驗證碼<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">分鐘內(nèi)</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">請在手機上確認(rèn)是否登錄</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、代碼輔助生成
代碼輔助功能屬于基本功能,對于一些方法或函數(shù)完全可以通過給定chatGPT指令或需求讓其自動生成代碼,雖然生成的代碼可能有一些錯誤或不符合預(yù)期,但是的確可以給我們一些思路或基本代碼。可以在自動生成的代碼基礎(chǔ)上進行更改或優(yōu)化,可以大大提高我們寫代碼的效率。
4、接口測試用例生成
給chatGPT輸入接口,及對應(yīng)的入?yún)⒑腿雲(yún)⒌南拗萍s束條件,讓其生成測試用例。chatGPT給出的用例場景基本全部覆蓋了,給定了四個參數(shù)生成了20條用例(這個功能可以打10分了)。實際工作中可以根據(jù)實際場景進行精簡進行測試,但是如果系統(tǒng)要求比較高,例如銀行系統(tǒng)可能就需要盡可能的全量覆蓋。
5、接口自動化腳本生成
細(xì)節(jié)請參考文章: 以效率為導(dǎo)向:用ChatGPT和HttpRunner實現(xiàn)敏捷自動化測試(二)
實現(xiàn)過程思路:先將寫好的接口自動化腳本例子提供給chatGPT,然后將生成的接口測試用例提供給chatGPT.其就可以按照給定的樣例,將接口自動化測試用例自動轉(zhuǎn)換為腳本。當(dāng)然具體的斷言還需要根據(jù)實際情況進行修改。說明:結(jié)果截圖太長只展示了一部分。
說明:以上自動化腳本是通過Httprunner(官網(wǎng)鏈接)框架實現(xiàn)。
6、其他
其他方向,例如SQL,DockerFile,Nginx配置,Shell腳本編寫等等方方面面都可以讓chatGPT幫忙,再此就不再一一截圖舉例了。這個對于未接觸過相關(guān)知識的新手來說簡直太友好了,雖然搜索引擎也可以找到對應(yīng)內(nèi)容,但是可能需要人工進行篩選整合。有了chatGPT輔助后,初級選手如果使用得當(dāng)完全可以變成中級選手。
總體來說,使用ChatGPT生成代碼,生成用例,生成SQL、DockerFile、Nginx配置和Shell腳本等,雖然能提供一定的指導(dǎo)和參考,但仍需要人工進行驗證和優(yōu)化,以確保生成的內(nèi)容符合預(yù)期。盡管一些簡單的東西可以自己從零到一完成,但是如果使用通過命令讓chatGPT去自動生成完成,然后人工再修改校驗肯定會比從零到一實現(xiàn)快。
7、總結(jié)
總結(jié):在測試工作中可以輔助功能測試包括需求分析或解讀代碼(注意代碼安全)后生成測試用例,還可以輔助生成代碼,接口測試用例,自動化腳本等各個方向起作用。當(dāng)然實際使用中可能會因為提示詞的不同生成的結(jié)果需要人工多次對話訓(xùn)練才可以。但是使用chatGPT肯定比不用能提高工作效率。當(dāng)然具體落地后如何進行量化提效抽象等等問題依然在探索中,邁開第一步后依然任重而道遠。
作者:京東科技 張興磊文章來源:http://www.zghlxwxcb.cn/news/detail-710604.html
來源:京東云開發(fā)者社區(qū) 轉(zhuǎn)載請注明來源文章來源地址http://www.zghlxwxcb.cn/news/detail-710604.html
到了這里,關(guān)于利用ChatGPT提升測試工作效率——測試工程師的新利器(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!