OpenAI 的 ChatGPT 已成為有史以來增長最快的應用程式 - 如果您嘗試過,那可能不會感到驚訝!
從寫詩等創造性任務到寫程式等技術任務,ChatGPT 已經變得很流行。與此同時,商業世界正在迅速發現其總結複雜資料集或執行複雜分析的能力。但是,當然,這些用例只是觸及了長期可能實現的表面。
許多開發人員已經在使用 ChatGPT 和相關技術(如 GitHub Copilot)來產生程式碼。但這些解決方案對於初級開發人員或剛接觸自動化測試的人員特別有益,而不僅僅是那些具有高級腳本知識的人員。
在本文中,您將了解 ChatGPT 的幕後工作原理、開發人員如何利用這項突破性技術,以及它如何幫助自動化繁瑣的測試工作流程。
什麼是 ChatGPT?
大型語言模型(LLM)代表了自深度學習以來最重大的人工智能突破。這些模型學習使用機器學習概念和大量資料集來識別語言模式。因此,它們可以以語法正確且對人類有意義的方式預測回應。
法學碩士(LLMs)用於學習單詞和語法結構的相同概念也適用於程式碼和應用程式架構。換句話說,ChatGPT 和其他法學碩士可以使用預測句子的相同技術來預測程式碼的外觀。因此,這些工具在開發人員中變得非常流行。
一些常見的開發人員用例包括:
- 編寫或重構程式碼 – ChatGPT 可以根據用戶的指令寫程式。與過去的機器人不同,ChatGPT 可以處理複雜的要求,例如建立 WordPress 插件。
- 解釋程式碼或概念 – ChatGPT 可以幫助開發人員更好地理解一段程式碼的工作原理或以某種方式編寫一段程式碼的基本原理。
- 產生測試和檔案 – ChatGPT 可以為一段程式碼編寫測試案例、測試腳本或檔案,幫助開發人員自動化繁瑣的工作流程。
- 確定最佳實踐 – ChatGPT 可以幫助開發人員思考不同的場景,並在考慮不同的架構或資料模型時遵循最佳實踐。
這些功能可以幫助開發人員消除繁忙的工作並提高他們的生產力。同時,它們可以幫助初級開發人員回答低級問題,而無需讓高級工程師離開工作,從而節省時間和資源。最後,它們可以幫助所有工程師以新的方式思考問題。
重要警告
大型語言模型(LLM)在過去幾年中取得了長足的進步,但它們並不完美。他們只擁有特定日期之前關於世界的固定知識,並且不了解最新的檔案。他們還缺乏對每個輸入做出正確回應的細微差別。
例如,ChatGPT 很難掌握基本的數學和邏輯,聽不懂很多笑話,並且可能會捏造信息。此外,研究人員發現法學碩士存在顯著偏見,這在某些情況下可能是危險的。
ChatGPT 還容易受到提示注入攻擊,其中 Markdown 圖像或其他技術可以竊取聊天資料。因此,ChatGPT 和其他法學碩士存在一些與安全相關的問題,這可能會成為某些專業用途的障礙。
如何使用 ChatGPT 實現自動化
ChatGPT 的程式碼編寫功能有據可查,有無數的示例,從簡單的插件到聊天機器人建立的整個網站。但是,雖然 ChatGPT 在寫程式時仍然需要手動操作,但它在建立測試案例、編寫測試腳本和幫助開發人員採用測試最佳實踐方面表現出色。
建立測試案例
假設您負責建立測試計劃。通過簡單的提示和一些要點,ChatGPT 可以建立包含設置說明和多個測試案例的深入測試計劃。您甚至可以指示 ChatGPT 準備一個測試案例表以輸入 Jira 票證,從而產生一個可複制貼的表!
編寫測試腳本
假設您想為現有程式碼編寫單元測試。通過將程式碼片段複製到 ChatGPT 中,您可以要求對程式碼進行單元測試,它將根據推斷的上下文建立一個測試。您可以將這些測試插入測試自動化流程(例如,您的 CI/CD 流程)並防止將來出現回歸。
解釋測試結果
如果您運行上一節中產生的測試腳本並收到錯誤,您可以將其複制並貼到 ChatGPT 中,它將建立一個解釋。此外,ChatGPT 的對話格式意味著您還可以提出後續問題。這些相同的功能可以幫助開發人員修復錯誤。
建立測試摘要
假設您有一個測試結果列表,並且想要為團隊領導或利益相關者總結結果。您可以要求 ChatGPT 針對特定受眾(例如技術或非技術)以敘述格式總結結果。或者,您可以請求 ChatGPT 將結果放入表格中,該表格可能構成更廣泛的報告的一部分。
實際例子
首先,我們使用 Cucumber 和稱為 Gherkin 的領域特定語言 (DSL) 產生 BDD 場景。這些規範是機器和人類可讀的,可以改善測試人員、開發人員和非技術業務人員之間的溝通。
我們可以從提示開始:“使用 Cucumber for Google Search 產生測試案例。”
注意:您可以將“Google 搜索”替換為您的特性或功能的描述。
Feature: Google Search Engine
Scenario: User performs a successful search
As a user who wants to find information quickly
I want to search using Google's search engine
So that I can find relevant results easily
Given I am on the Google homepage
When I enter a "cucumber testing" query into the search bar
And I click the "Search" button
Then I should see search results related to "cucumber testing"
And the first result should have a title containing "Cucumber"
And the first result should have a URL containing "cucumber.io"
接下來,我們可以使用提示產生具體的測試步驟:“使用 Cucumber 的步驟定義實現這些步驟。”
注意:這些步驟定義是使用 Capybara 庫以 Ruby 編寫的,但您可以指定所需的任何語言或框架。
瞧,您擁有了一個可執行的 BDD 規範,您可以使用它來確保應用程式按預期執行。
您還可以使用 ChatGPT 建立單元測試。例如,如果您想使用 Appium 測試 Mobile 計算機APP的加法和減法功能,請指定提示:“為帶有加法和減法按鈕的 Mobile 計算機應用程式編寫 Appium 測試。”
這些測試相對準確,並且幾乎可以按原樣執行。雖然您可能需要設計提示以獲得最佳結果或修改結果以更好地適合您的項目,但 ChatGPT 足以讓您的測試完成 90%。因此,高級工程師可以節省時間,初級工程師可以簡化他們的工作。
跨設備擴展測試
借助 ChatGPT 建立測試案例和腳本可以顯著提高測試覆蓋率。但這些測試並不能保證跨設備、操作系統和瀏覽器的功能。強大的測試套件需要跨多個設備和平台進行測試,以反應用戶的現實生活模式。
BitBar為端到端測試提供了一個易於使用的基於雲的平台。您無需維護內部設備實驗室,而是可以利用雲中的數百個真實設備並跨操作系統和瀏覽器運行測試。這樣,您就可以放心地部署程式碼,知道它可以在所有環境中運行。
該平台可以輕鬆地將基於瀏覽器的 Mobile 測試合併到現有的 CI/CD 管道中。BitBar 支持 Selenium、Appium 和 Cypress 等流行框架。您還可以使用並行測試來加速測試套件,而無需犧牲測試品質或覆蓋率。手動測試人員可以配置基於雲的設備來執行探索性和其他手動測試任務。
最重要的事
ChatGPT 和其他法學碩士可以顯著提高開發人員的工作效率,為新的可能性打開大門。特別是,它們可以幫助自動建立測試案例和腳本,從而可以擴大測試覆蓋範圍和品質。隨著 GitHub Copilot 和其他工具的積極開發,這些功能在未來只會增長。