什麼是持續測試?

持續測試是在軟體開發流程的每個階段,以及每次變更應用程式碼或組態時,都對應用程式進行測試的過程。業務敏捷性需要組織縮短發布週期,並經常提供新功能和修正。持續測試將測試整合在軟體交付管道的每個階段,以及早偵測錯誤並維持軟體品質。軟體測試做為程式碼與應用程式碼一起維護,並經常做為持續測試模式的一部分執行。

什麼是生產中的持續測試?

透過生產中持續測試 (CTIP),您可以在生產環境中自動執行程式碼檢查。某些錯誤可能無法在較早的軟體開發階段偵測到,但是當使用者與應用程式即時互動時會出現。您可以套用軟體測試工具和指令碼來自動偵測問題,並允許迅速修復工作。儘管 CTIP 對於偵測生產環境中隱含軟體問題有幫助,但是不能取代開發期間執行的其他軟體測試。 

持續測試與持續整合和持續交付有何關係?

持續整合和持續交付 (CI/CD) 是一種 DevOps 實務,可在您將軟體版本交付給最終使用者時平衡品質和速度。開發或更新應用程式時,數個開發人員可能會對其各自的程式碼分支進行變更。每個分支都包含原始程式碼的修改版本。開發人員必須將這些分支合併到共用儲存庫中,而沒有任何程式碼衝突。 

透過持續整合 (CI),您可以讓各個分支的程式碼合併自動化。持續交付 (CD) 會自動準備應用程式的功能版本,您可以隨時將其部署給最終使用者。CI 和 CD 合作可簡化交付新軟體的努力,使增量程式碼變更更快且更有效率。

閱讀持續整合的相關資訊

閱讀 DevOps 的相關資訊

CI/CD 中的持續測試

DevOps 中的持續測試是驅動整個 CI/CD 管道的基本原則。軟體團隊可以左移,或隨著開發一起移動測試程序。您可以在軟體開發生命週期 (SDLC) 中的每個機會執行自動化測試,而不是將測試留到後面的階段。您可以使用自動化測試工具來檢查程式碼、執行測試指令碼,並發現可改善軟體品質的寶貴洞察。

當您對程式碼進行變更時,持續測試工具會在 CI 程序期間自動執行功能、程式碼品質和單元測試。這些工具可在 CD 管道中自動化大規模測試 (包括迴歸、整合和負載測試),以進一步降低業務風險。

下圖顯示大型主機 DevOps 中 CI/CD 管道的範例。

閱讀軟體開發生命週期的相關資訊

持續測試有哪些優點?

在現代應用程式開發週期中整合持續測試工具時,您可以體驗以下優勢。 

加速軟體開發

透過持續測試程序,您可以使用自動化測試工具加快開發時間和工作量。通常軟體開發遵循瀑布模型,開發人員完成特定階段,然後再進入下一個階段。透過 Agile 和 DevOps 等現代軟體開發實務,您可以更靈活地使用方法。與持續測試搭配,您可以在編碼時測試和套用修正,而不需等待 QA 工程師的意見反應。這意味著您可以縮短上市時間,並且對功能請求有更好的回應能力。

降低成本

軟體錯誤和效能問題會影響服務交付,這可能會導致組織失去商機並產生大量成本。儘管您已經盡最大努力,但在部署之前未能發現所有軟體問題。您可以使用持續測試工具在整個 SDLC 中評估、監控和報告問題。您可以在開發管道早期發現軟體問題,以降低修復費用和資源。及早修正錯誤比在生產環境中修正更為便宜。 

改善程式碼品質

建置軟體時,您致力於遵守編碼最佳實務。結構良好的原始程式碼很容易理解,包含較少的錯誤,並且耗用較少的運算資源。透過持續測試,您可以在不同專案中保持程式碼一致性。在經過嚴格測試錯誤、功能和效能問題之後,您也可以更有信心地重複使用程式碼。 

改善團隊協作

持續測試在為整個開發階段執行的軟體測試提供可見性方面,扮演重要角色。開發、QA 和營運團隊採取更主動的方法來發現測試環境中的軟體錯誤,而不是在孤島中操作。當您整合到 CI/CD 時,您可以測試不同的軟體模組並同時傳達結果。例如,許多開發人員可能會同時測試新功能,而營運團隊評估現有雲端基礎設施是否可以支援變更的要求。 

提升客戶體驗

您可以在透過強大的測試策略發佈新軟體變更時,預測可能的問題並規劃回應。您可以使用持續測試架構來模擬可能的案例並預測潛在問題,而不是使用有缺陷的版本降低客戶期望。您可以在將軟體發佈到生產環境之前解決測試中偵測到的問題。這意味著您可以一致地提供引人入勝的軟體體驗。 

什麼是持續測試方法?

持續測試涉及許多測試,您可以使用這些測試來產生安全、方便使用和功能性應用程式。以下是幾種常見的測試方法。

功能測試

透過功能測試,您可以將軟體工作流程與做為其架構基礎的業務要求保持一致。例如,電子商務軟體會針對貨運公司收到的每筆訂單發出提醒。在功能測試中,您可以確保軟體將正確的 API 呼叫傳送到貨運供應商的系統。 

迴歸測試

迴歸測試可確保您的程式碼變更不會影響應用程式的穩定性、效能、安全和功能。當您在現代軟體環境中引入快速程式碼變更時,測試可確保一致的軟體行為。 

效能測試

透過效能測試,您可以評估應用程式的非功能性層面。在效能測試期間,您可以評估應用程式的功能,儘管網路流量、記憶體消耗量、並行使用者和其他環境參數增加,仍能夠以最佳方式運作。您可以使用測試的可行洞察來識別瓶頸並最佳化程式碼工作流程。 

整合測試

透過整合測試,您可以確保第三方軟體元件和相依性在應用程式中的行為如預期般運作。例如,API 呼叫應該傳回文件中指定的適當回應。您可以執行整合測試,以確保當它們整合在一起時所有相依性能夠順暢運作。 

使用者接受測試

使用者接受測試通常在專為特定使用者設計的自訂軟體上執行。舉例來說,為零售業的客戶建置客戶關係管理 (CRM) 軟體應用程式。您可以執行使用者接受測試,以驗證所有要求和功能是否按照軟體要求規格中所述設計。根據使用者意見反應,您可以修訂軟體或簽署以完成交付。 

煙霧測試

煙霧測試是一種軟體測試自動化,QA 工程師在收到開發人員的新組建時執行。QA 團隊使用煙霧測試 (也稱為建置驗證測試) 來確保軟體中的關鍵功能沒有任何重大缺陷。如果這樣做,QA 團隊會通知開發人員發現的問題,並等待重新設計,然後再繼續進行進一步測試。 

持續測試有哪些挑戰?

儘管持續測試有優點,但是基於以下原因,當您大規模實作時可能會遇到挑戰:

  • 您已經習慣了傳統測試和測試資料管理實務,這些實務並不會在開發早期階段優先測試。 
  • 您需要更好地存取自動化測試工具,這些工具可以輕鬆與現有開發工作流程整合。 
  • 您將持續測試限制為自動化軟體測試,降低其正面效果。您必須改為套用持續測試做為更廣泛策略的一部分,例如 DevOps 和 Agile,以提供可改善使用者體驗的功能性軟體。 

結合持續測試需要從最高領導層開始的思維和文化轉變。

AWS 如何協助處理您的持續測試要求?

使用 Amazon Web Services (AWS),您可以使用 CI/CD 管道中的自動化測試工具來擴展開發工作。您可以使用 AWS 提供的持續測試工具來建置功能性、一致且方便使用的現代應用程式。例如,您可以:

  • 將原始程式碼編譯成可立即部署的軟體套件時,使用 AWS CodeBuild 將測試自動化。CodeBuild 與您現有的 CI/CD 管道整合,因此您可以在更容易發現錯誤時偵測錯誤。 
  • 在測試或生產環境中發佈迭代軟體變更時,使用 AWS CodePipeline 來發現錯誤。使用 CodePipeline,您可以在與 AWS CodeCommitAWS CodeDeployAWS CloudFormation 整合的管道中,將部署工作流程模組化。

立即建立帳戶,開始在 AWS 上使用持續測試。

AWS 的後續步驟

註冊免費帳戶

立即存取 AWS 免費方案。

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入