新聞中心
- 測(cè)試用例執(zhí)行不一致。
- 測(cè)試環(huán)境的人工設(shè)置。
- 乏味和緩慢。
- 測(cè)試結(jié)果格式不一致。
自動(dòng)化測(cè)試以及持續(xù)集成(CI)和持續(xù)交付(CD)的引入,改進(jìn)和提高了開(kāi)發(fā)人員發(fā)布軟件的質(zhì)量和節(jié)奏。本文將深入研究持續(xù)集成(CI)/持續(xù)交付(CD)管道,了解如何使用自動(dòng)化測(cè)試來(lái)顯著地提高軟件發(fā)布的質(zhì)量和速度。此外,還將研究一些可用于創(chuàng)建持續(xù)集成(CI)/持續(xù)交付(CD)管道的最流行和最實(shí)用的工具。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比濰坊網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式濰坊網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋濰坊地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。
持續(xù)集成(CI)/持續(xù)交付(CD)管道
為了發(fā)布軟件,必須滿(mǎn)足一些業(yè)務(wù)需求。在某些情況下,這些業(yè)務(wù)需求包括一組快速的系統(tǒng)測(cè)試和一套用戶(hù)界面(UI)測(cè)試,而其他版本可能需要更多涉及的需求。無(wú)論復(fù)雜程度如何,這些業(yè)務(wù)需求都可以概念化為一組串行和并行執(zhí)行的步驟。在持續(xù)集成(CI)/持續(xù)交付(CD)的術(shù)語(yǔ)中,每個(gè)步驟稱(chēng)為一個(gè)階段,有序階段的集合稱(chēng)為一個(gè)管道。下面是一個(gè)示例管道:
管道中的特定階段將根據(jù)項(xiàng)目的業(yè)務(wù)需求而有所不同,但所有管道都將在觸發(fā)器(例如提交)被激活時(shí)執(zhí)行。一旦管道的執(zhí)行開(kāi)始,每個(gè)階段都會(huì)一個(gè)接一個(gè)地執(zhí)行;當(dāng)一個(gè)階段成功完成時(shí),執(zhí)行下一個(gè)階段。
當(dāng)達(dá)到一組并行階段時(shí),例如上面示例中的用戶(hù)驗(yàn)收測(cè)試、容量測(cè)試和暫存階段,所有階段都同時(shí)執(zhí)行。當(dāng)所有并行階段都成功完成時(shí),管道仍將繼續(xù)運(yùn)行。例如,在用戶(hù)驗(yàn)收測(cè)試、容量測(cè)試和登臺(tái)成功完成之前,不會(huì)開(kāi)始執(zhí)行部署階段。
持續(xù)集成(CI)/持續(xù)交付(CD)管道的所有階段并不一定都必須實(shí)現(xiàn)自動(dòng)化,在某些情況下,將自動(dòng)化測(cè)試用例引入持續(xù)集成(CI)/持續(xù)交付(CD)管道可能很困難。例如:
- 不明確的業(yè)務(wù)需求和規(guī)范——在大多數(shù)情況下,定義自動(dòng)化測(cè)試的困難源于對(duì)項(xiàng)目的業(yè)務(wù)需求(定義CI/ CD管道)和被測(cè)軟件的規(guī)范缺乏明確性。在持續(xù)集成(CI)/持續(xù)交付(CD)管道中創(chuàng)建階段之前,必須了解需要測(cè)試什么以及為什么要測(cè)試它。
- 用戶(hù)界面(UI)測(cè)試——由于具有可視性和波動(dòng)性,用戶(hù)界面(UI)測(cè)試可能難以實(shí)現(xiàn)自動(dòng)化??梢酝ㄟ^(guò)使用用戶(hù)界面(UI)測(cè)試框架來(lái)克服這個(gè)問(wèn)題,例如Selenium。
- 不一致的報(bào)告——許多持續(xù)集成(CI)/持續(xù)交付(CD)管道工具包括一個(gè)測(cè)試摘要,顯示在一個(gè)階段中已經(jīng)執(zhí)行和成功完成的測(cè)試數(shù)量。這一摘要需要自動(dòng)化測(cè)試生成一致的并且眾所周知的報(bào)告??梢酝ㄟ^(guò)使用報(bào)告格式廣為人知的自動(dòng)化測(cè)試工具來(lái)滿(mǎn)足這一要求,例如JUnit(或任何xUnit框架)和Cucumber。
雖然可能存在需要人工測(cè)試的情況,但當(dāng)所有測(cè)試(包括UI測(cè)試)都實(shí)現(xiàn)自動(dòng)化時(shí),就實(shí)現(xiàn)了持續(xù)集成(CI)/持續(xù)交付(CD)管道的最大優(yōu)勢(shì)。
持續(xù)集成(CI)/持續(xù)交付(CD)管道中的自動(dòng)化測(cè)試
在持續(xù)集成(CI)/持續(xù)交付(CD)管道中使用自動(dòng)化測(cè)試的主要優(yōu)勢(shì)在于,可以針對(duì)一系列測(cè)試(包括單元、集成、系統(tǒng)、性能和驗(yàn)收測(cè)試)對(duì)單個(gè)提交進(jìn)行測(cè)試,然后無(wú)需部署即可部署到生產(chǎn)系統(tǒng)中,而無(wú)需任何人工交互。例如,即使在大型項(xiàng)目中,也有可能讓一個(gè)工程師做出提交,這將自動(dòng)導(dǎo)致在幾分鐘或幾小時(shí)內(nèi)將功能部署到生產(chǎn)中。
與其相反,自動(dòng)化管道可確保失敗的測(cè)試禁止將功能部署到生產(chǎn)中。例如,如果開(kāi)發(fā)人員添加了新功能,并且單元或集成測(cè)試失敗,則管道的執(zhí)行會(huì)立即停止,并且不會(huì)部署該功能。然后,開(kāi)發(fā)人員會(huì)收到測(cè)試失敗的通知,并可以追蹤到觸發(fā)管道執(zhí)行失敗的提交的錯(cuò)誤。
除了為部署和發(fā)布帶來(lái)的好處之外,自動(dòng)化測(cè)試還為代碼本身的質(zhì)量帶來(lái)了許多好處:
- 記錄其預(yù)期行為。
- 減少回歸次數(shù)。
- 解耦成更小、更獨(dú)立的組件。
- 減少測(cè)試執(zhí)行時(shí)間。
- 利益相關(guān)者參與測(cè)試規(guī)范的生成(即驗(yàn)收測(cè)試)。
盡管持續(xù)集成(CI)/持續(xù)交付(CD)管道中的所有測(cè)試可能無(wú)法實(shí)現(xiàn)自動(dòng)化,但為了從管道中獲得最大收益,應(yīng)該努力最大限度地增加自動(dòng)化階段的數(shù)量,并在可能的情況下實(shí)現(xiàn)管道的完全自動(dòng)化。
流行的持續(xù)集成(CI)/持續(xù)交付(CD)工具
有許多工具和框架可用于創(chuàng)建自動(dòng)化持續(xù)集成(CI)/持續(xù)交付(CD)管道。下面的例子并不全面,僅代表可用于促進(jìn)持續(xù)集成(CI)/持續(xù)交付(CD)管道的眾多優(yōu)秀工具中的一小部分。一般來(lái)說(shuō),這些工具可以分為兩類(lèi):原生工具和第三方工具。
1.原生工具
原生工具是直接集成到存儲(chǔ)庫(kù)中的持續(xù)集成(CI)/持續(xù)交付(CD)工具。對(duì)于這些工具,創(chuàng)建了一個(gè)與源代碼并存的配置文件,當(dāng)提交時(shí),存儲(chǔ)庫(kù)會(huì)使用配置文件并執(zhí)行定義的階段。
目前可用的兩種最流行的原生工具是:
(1)GitHub Actions——直接與GitHub存儲(chǔ)庫(kù)集成的自動(dòng)化工作流工具??梢酝ㄟ^(guò)在GitHub存儲(chǔ)庫(kù)的.github/workflows/目錄中創(chuàng)建新的另一種標(biāo)記語(yǔ)言(YAML)工作流文件來(lái)構(gòu)建新的管道,在GitHub操作詞典中稱(chēng)為工作流。
(2)GitLab CI/CD——與GitHub Actions類(lèi)似,GitLab CI/CD直接與GitLab存儲(chǔ)庫(kù)集成,允許開(kāi)發(fā)人員通過(guò)在GitLab存儲(chǔ)庫(kù)的根目錄中創(chuàng)建.gitlab-ci.yml文件來(lái)創(chuàng)建新的工作流。
當(dāng)原生工具可用時(shí),最好使用它,因?yàn)樗峁┝伺c存儲(chǔ)庫(kù)和由存儲(chǔ)庫(kù)管理的源代碼的最高級(jí)別的集成。例如,如果其代碼存儲(chǔ)在GitHub或GitLab存儲(chǔ)庫(kù)中,應(yīng)該默認(rèn)分別使用GitHub Actions和GitLab CI/CD,除非迫切需要使用第三方工具。
2.第三方工具
第三方工具是駐留在存儲(chǔ)庫(kù)之外的持續(xù)集成(CI)/持續(xù)交付(CD)工具。對(duì)于其中許多工具,可以在存儲(chǔ)庫(kù)中采用一個(gè)程序用于在提交時(shí)通知第三方工具。然后這些工具從存儲(chǔ)庫(kù)中檢查代碼并執(zhí)行配置的管道。目前可用的兩種最流行的第三方工具是:
(1)Jenkins——這是一個(gè)開(kāi)源自動(dòng)化服務(wù)器,允許開(kāi)發(fā)人員自動(dòng)構(gòu)建、測(cè)試和部署他們的項(xiàng)目。Jenkins通常用作獨(dú)立服務(wù),由開(kāi)發(fā)團(tuán)隊(duì)部署。管道可以直接通過(guò)Jenkins UI配置,也可以通過(guò)在源代碼存儲(chǔ)庫(kù)中創(chuàng)建Jenkins文件來(lái)配置。
(2)CircleCI——這是與GitHub、GitHub Enterprise、Bitbucket集成的托管自動(dòng)化服務(wù)。CircleCI的優(yōu)勢(shì)在于團(tuán)隊(duì)不必部署和維護(hù)CircleCI實(shí)例,而是可以通過(guò)circleci.com訪問(wèn)CircleCI。然而,它在便利性方面獲得的優(yōu)勢(shì)在于其狹窄的存儲(chǔ)庫(kù)支持和缺乏靈活性。
雖然使用原生工具應(yīng)該默認(rèn)選項(xiàng),但在某些情況下第三方工具可能是更好的選擇,例如:
- 原生工具無(wú)法提供需要的功能。
- 第三方工具允許利用更多的計(jì)算能力(即原生工具可能只允許使用單臺(tái)機(jī)器的資源或與存儲(chǔ)庫(kù)相關(guān)的資源來(lái)執(zhí)行管道)。
- 需要一個(gè)獨(dú)立選項(xiàng),以便可以直接管理持續(xù)集成(CI)/持續(xù)交付(CD)管道(希望在防火墻或公司子網(wǎng)內(nèi)管理持續(xù)集成(CI)/持續(xù)交付(CD)服務(wù)器)。
結(jié)論
測(cè)試自動(dòng)化和將持續(xù)集成(CI)/持續(xù)交付(CD)引入軟件開(kāi)發(fā)已經(jīng)不可逆轉(zhuǎn)地改變了創(chuàng)建、測(cè)試和發(fā)布軟件的方式。盡管持續(xù)集成(CI)/持續(xù)交付(CD)領(lǐng)域仍在不斷發(fā)展和進(jìn)步,但必須了解持續(xù)集成(CI)/持續(xù)交付(CD)中自動(dòng)化測(cè)試的基礎(chǔ)知識(shí),并選擇更加節(jié)省時(shí)間和提高質(zhì)量的工具。
原文標(biāo)題:??Continuous Test Automation Using CI/CD: How CI/CD Has Revolutionized Automated Testing??,作者:Justin Albano
網(wǎng)站欄目:持續(xù)集成(CI)/持續(xù)交付(CD)如何徹底改變自動(dòng)化測(cè)試
URL標(biāo)題:http://m.fisionsoft.com.cn/article/cceggoj.html


咨詢(xún)
建站咨詢(xún)
