自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為CI/CD構(gòu)建高性能的測(cè)試

譯文
開發(fā) 測(cè)試
本文將和您討論如何在高速增長(zhǎng)的公司內(nèi)部,如何通過對(duì)自動(dòng)化、團(tuán)隊(duì)人員、AI/機(jī)器學(xué)習(xí)、乃至基礎(chǔ)架構(gòu)的事先投資與完善,讓質(zhì)量工程師能夠迅速地開展成功有效的高性能測(cè)試。

【51CTO.com快譯】朋友,您還記得小時(shí)候聽過的《三只小豬》的故事嗎?面對(duì)大灰狼的來襲,只有建造了堅(jiān)固的房屋(基礎(chǔ)設(shè)施)的第三只小豬,才能逃過一劫?,F(xiàn)如今,面對(duì)各種高速發(fā)展的持續(xù)集成與交付要求,我們同樣需要構(gòu)建好具有自動(dòng)化特征的基礎(chǔ)環(huán)境,以便快速地開展各種高性能的測(cè)試。

[[328829]]

下面,我們來看看如何通過目標(biāo)、技術(shù)和團(tuán)隊(duì)的準(zhǔn)備,在快速增長(zhǎng)的環(huán)境中,實(shí)現(xiàn)敏捷地高性能測(cè)試與發(fā)布。

定義高性能測(cè)試

從理論上說,那些具有高增長(zhǎng)特征的初創(chuàng)企業(yè)最渴望高性能的測(cè)試。它們通常具有如下的“敏捷”特征:

  • 混亂狀態(tài)–需要適應(yīng)瞬息萬變的內(nèi)、外部環(huán)境。
  • 更少的用時(shí)–所有問題都需要得到全員的重視,并需要得到及時(shí)的解決。
  • 更少的資源–由于現(xiàn)有資源有限,因此需要善于向外部“借勢(shì)”,以促進(jìn)當(dāng)前項(xiàng)目的集成與交付。
  • 市場(chǎng)壓力–需要了解和評(píng)估外部風(fēng)險(xiǎn),以迅速調(diào)整內(nèi)部策略。
  • 獎(jiǎng)勵(lì)–善于發(fā)現(xiàn)點(diǎn)滴改進(jìn),及時(shí)反饋并鼓勵(lì)整個(gè)團(tuán)隊(duì)。

為何要進(jìn)行高性能測(cè)試?

縱觀整個(gè)行業(yè),應(yīng)用業(yè)務(wù)技術(shù)在過去十年中發(fā)生了如下巨大的變化:

  • 使用范圍–當(dāng)前的應(yīng)用服務(wù)往往可以運(yùn)行在多個(gè)平臺(tái)(Web應(yīng)用端、或移動(dòng)設(shè)備)上,而非某個(gè)專有的應(yīng)用程序、或單個(gè)瀏覽器上。
  • 發(fā)布頻率-我們經(jīng)常按需且頻繁地發(fā)布應(yīng)用程序。
  • 流程–我們已經(jīng)從瀑布式的開發(fā)方式,轉(zhuǎn)變成為了持續(xù)交付。
  • 框架-過去的單棧本地部署(singe-stack on-premise)軟件模式,已經(jīng)轉(zhuǎn)變成為如今使用開源、基于云端的開發(fā)與交付模式。

總之,我們沿用了十年的“最后再進(jìn)行測(cè)試”的模式,已經(jīng)不再行之有效。我們正在建立一種新的測(cè)試模式。

如何實(shí)現(xiàn)高性能測(cè)試

為了滿足快速增長(zhǎng)的環(huán)境需求,軟件團(tuán)隊(duì)需要盡早了解現(xiàn)有的情況,以著手解決各種矛盾和問題。例如:您既可以使用思維導(dǎo)圖將情況可視化,也可以通過劃分短期和長(zhǎng)期目標(biāo),讓功能性團(tuán)隊(duì)專注于測(cè)試,讓框架團(tuán)隊(duì)專注于系統(tǒng)的長(zhǎng)期架構(gòu)。

另一個(gè)值得關(guān)注的目標(biāo)是:如何通過測(cè)試左移,盡早地發(fā)現(xiàn)缺陷。為此,我們需要了解現(xiàn)有的工具和需要添置的工具,軟件質(zhì)量的行業(yè)標(biāo)準(zhǔn),本團(tuán)隊(duì)當(dāng)前在構(gòu)建自動(dòng)化架構(gòu)方面的實(shí)力,以及如何通過AI和機(jī)器學(xué)習(xí)(ML)的支持來提高效率。

建立團(tuán)隊(duì)

接下來,我們來討論如何建立一支高性能測(cè)試的團(tuán)隊(duì)。

過去我們依靠的是專職的質(zhì)檢(QA)服務(wù)團(tuán)隊(duì)。如今,我們需要配備了集成Pod的真正敏捷團(tuán)隊(duì)。質(zhì)量工程師作為他們的團(tuán)隊(duì)資源,在整個(gè)開發(fā)和交付過程中提供協(xié)助。在團(tuán)隊(duì)中,我們需要有人熟悉行為驅(qū)動(dòng)設(shè)計(jì)(behavior-driven design)和測(cè)試驅(qū)動(dòng)設(shè)計(jì)(test-driven design),有人會(huì)選擇并使用自動(dòng)化工具,有人需要考慮可測(cè)試性設(shè)計(jì)(design-for-testability)。

由于測(cè)試自動(dòng)化的大部分會(huì)涉及到框架,因此我們需要熟悉構(gòu)建代碼的技能集,通過自動(dòng)識(shí)別元素定位符(self-identifies element locators),來構(gòu)建用于自動(dòng)化控件的鉤子(hooks),進(jìn)而確保每次構(gòu)建的一致性和實(shí)現(xiàn)自動(dòng)化的可重復(fù)性。

測(cè)試自動(dòng)化

過去,我們需要從單個(gè)供應(yīng)商那里購(gòu)買一整套測(cè)試工具。如今,開源的解決方案為自動(dòng)化提供了豐富的資源。開源的方式不但可以降低維護(hù)的成本,而且能夠讓您更快、更容易地交付出具有可擴(kuò)展性的軟件產(chǎn)品。作為開源工具的“衍生品”,用戶社區(qū)往往能夠提供某些工具的最佳實(shí)踐,以及各種寶貴的課程可供學(xué)習(xí)。

通常,我們可以在軟件部署過程中的如下方面實(shí)現(xiàn)自動(dòng)化:

  • 斷言行為(Assertions on Action)
  • 初始化和清理
  • 數(shù)據(jù)建模與模擬
  • 配置
  • 各種安全建模的抽象
  • 包和幫助
  • API的使用情況
  • 各項(xiàng)面向未來的功能
  • 本地和云端設(shè)置
  • 速度
  • 各種調(diào)試功能
  • 跨瀏覽器
  • 模擬器與真實(shí)設(shè)備
  • 內(nèi)置的報(bào)告與插件

行業(yè)標(biāo)準(zhǔn)

如今,對(duì)于自動(dòng)化測(cè)試,業(yè)界基本上形成了如下四種類型的標(biāo)準(zhǔn):

  • 質(zhì)量–至少要能夠通過全部測(cè)試的90%。
  • 運(yùn)行時(shí)間–所有測(cè)試的平均運(yùn)行時(shí)間應(yīng)控制在兩分鐘之內(nèi)。
  • 平臺(tái)覆蓋率–平均覆蓋五個(gè)關(guān)鍵性的被測(cè)平臺(tái)。
  • 并發(fā)性–在使用高峰期,測(cè)試至少要占用75%的可用運(yùn)能。

生產(chǎn)環(huán)境的測(cè)試

您是否考慮過將測(cè)試移至生產(chǎn)環(huán)境(Shift Right)?我們提出該方法的原因有如下四個(gè)方面:

  • 功能標(biāo)記–在生產(chǎn)環(huán)境中進(jìn)行測(cè)試,可以采集到真實(shí)的數(shù)據(jù),以用于測(cè)試。
  • 流量分配–我們可以逐步引入新的功能,并在不影響整個(gè)客戶群體驗(yàn)的情況下,針對(duì)被測(cè)案例,跟進(jìn)獲取到的部分目標(biāo)用戶的實(shí)時(shí)數(shù)據(jù)。
  • 內(nèi)部測(cè)試(Dog Fooding) –采用CDN之類的快速部署功能,將內(nèi)部用戶引導(dǎo)到新的功能服務(wù)上。
  • 凈減少–通過減少額外的開銷,使應(yīng)用程序可以使用真實(shí)的數(shù)據(jù)集進(jìn)行測(cè)試,并且能在不影響整個(gè)客戶群的情況下快速定位問題。

總之,生產(chǎn)環(huán)境中的測(cè)試,可以讓累計(jì)的大型發(fā)布,變成一組組基于通用代碼的小型迭代。由于有不同職能的人員參與測(cè)試,因此也確保了客戶群不會(huì)因?yàn)榇蠓壬?jí)而感到不適。

人工智能(AI)/機(jī)器學(xué)習(xí)(ML)

AI/ML工具的使用不但能夠提高整個(gè)團(tuán)隊(duì)的工作效率,而且還能夠滿足高性能測(cè)試環(huán)境的質(zhì)量需求。其中,Applitools就是一個(gè)被AI賦能了的測(cè)試工具。它通過自動(dòng)化視覺AI,來開展各種回歸式的視覺測(cè)試,自動(dòng)驗(yàn)證頁(yè)面的提交,進(jìn)而幫助企業(yè)以更低的成本,更快地發(fā)布軟件項(xiàng)目。例如:某個(gè)醫(yī)藥網(wǎng)站有著上百個(gè)介紹藥物適應(yīng)癥和注意事項(xiàng)的頁(yè)面。為了確保這些頁(yè)面一致性,我們可以使用Applitools去進(jìn)行驗(yàn)證。它可以在不到12分鐘的時(shí)間內(nèi)完成完整的視覺回歸,并運(yùn)行350個(gè)測(cè)試案例,其中包括2500項(xiàng)檢查。而我們?nèi)绻捎檬謩?dòng)驗(yàn)證的話,則需要六個(gè)小時(shí)以上。

ReportPortal.io

作為一個(gè)統(tǒng)一的自動(dòng)化測(cè)試平臺(tái),ReportPortal.io可以實(shí)現(xiàn)報(bào)告的收集,分析,可視化,以及集成多種測(cè)試框架,其中包括:TestNG和Selenium等。在實(shí)際應(yīng)用中, Reportportal.io能夠顯示一天中不同時(shí)段的測(cè)試運(yùn)行方式,發(fā)現(xiàn)其中的錯(cuò)誤,進(jìn)而幫助團(tuán)隊(duì)實(shí)現(xiàn)無縫的發(fā)布和改善其統(tǒng)計(jì)的信息。同時(shí),Reportportal.io中任何失敗的測(cè)試用例,都可以被作為測(cè)試結(jié)果日志,直接鏈接到Reportportal.io的用戶界面中。

此外,我們可以配合使用行為驅(qū)動(dòng)設(shè)計(jì)(BDD),來描述被測(cè)功能的所需行為,進(jìn)而滿足客戶所需的高性能和高可用性。

設(shè)立質(zhì)量目標(biāo)

我們?cè)诳焖僭鲩L(zhǎng)的環(huán)境中,需要事先設(shè)立軟件的質(zhì)量目標(biāo),以滿足用戶和運(yùn)行環(huán)境的需求。其中包括:

  • 有分布式質(zhì)量檢查小組,提供7*24的質(zhì)量檢查支持。
  • 有專門從事測(cè)試的SDET(軟件測(cè)試開發(fā)人員)團(tuán)隊(duì)。
  • 有一個(gè)能夠簡(jiǎn)化任何POC(為觀點(diǎn)提供證據(jù))的即插即用式強(qiáng)大框架。
  • 一個(gè)使用Travis(自動(dòng)化集成部署服務(wù))測(cè)試的穩(wěn)定管道。
  • 通過完全自動(dòng)化將回歸的時(shí)間減少90%。

建立團(tuán)隊(duì)和技術(shù)棧

當(dāng)然,為了實(shí)現(xiàn)上述目的,我們需要雇用一個(gè)具有開發(fā)素養(yǎng)和測(cè)試素養(yǎng)的團(tuán)隊(duì),也就是說,他們應(yīng)當(dāng)同時(shí)具備編程和測(cè)試自動(dòng)化的相關(guān)能力。同時(shí),我們?cè)诩夹g(shù)棧方面的投入包括如下方面:

  • Python和Selenium WebDriver。
  • BDD。
  • 能夠在云端運(yùn)行的Browserstack。
  • 針對(duì)視覺回歸的Applitools。
  • Jenkins、Travis和Google Drone for CI。
  • Jira和TestRail的相關(guān)文檔。

在此基礎(chǔ)上,我們可以確定CI/CD的四項(xiàng)成功標(biāo)準(zhǔn):

  • 速度與并行化(parallelization)。
  • BDD易于調(diào)試與閱讀。
  • 在CI/CD中實(shí)現(xiàn)跨瀏覽器、跨設(shè)備的覆蓋。
  • 實(shí)現(xiàn)視覺驗(yàn)證。

為CI/CD測(cè)試設(shè)定QA期望

在CI/CD的環(huán)境中,測(cè)試和構(gòu)建往往并非同步進(jìn)行的。因此,我們需要事先設(shè)定好構(gòu)建與測(cè)試的頻率。您可以借鑒如下公司的設(shè)定標(biāo)準(zhǔn):

  • 質(zhì)量檢查人員每小時(shí)針對(duì)最新的版本運(yùn)行73次測(cè)試,以檢查目標(biāo)站點(diǎn)是否能正常運(yùn)行。
  • 任何新的構(gòu)建都需要在6種跨瀏覽器上試運(yùn)行,并確保涉及到所有的關(guān)鍵性業(yè)務(wù)路徑。
  • 除部分測(cè)試外,每晚例行執(zhí)行300個(gè)回歸測(cè)試。

當(dāng)然,上述只是某些個(gè)案,您可以根據(jù)自身企業(yè)和項(xiàng)目的特點(diǎn),不斷地進(jìn)行增加和完善。

結(jié)論

俗話說:“工欲善其事,必先利其器”。正如我們開頭提到的《三只小豬》的故事那樣,要想在高速增長(zhǎng)的公司內(nèi)部,讓質(zhì)量工程師能夠迅速地開展成功有效的高性能測(cè)試,我們需要對(duì)自動(dòng)化、團(tuán)隊(duì)人員、AI/機(jī)器學(xué)習(xí)、乃至基礎(chǔ)架構(gòu),事先進(jìn)行有針對(duì)性的投資、改造和完善。

【原標(biāo)題】Acing High-Performance Tests for CI/CD (作者: Michael Battat )

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:未麗燕 來源: 51CTO.com
相關(guān)推薦

2022-02-22 09:00:00

軟件開發(fā)CI/CD 管道工具

2023-02-19 15:28:39

CI/CD 管道集成開發(fā)

2009-10-29 09:11:50

Juniper高性能網(wǎng)絡(luò)

2020-10-21 14:10:28

工具測(cè)試開發(fā)

2024-05-20 11:23:18

2021-08-31 09:00:00

開發(fā)Azure DevOp集成

2018-08-24 09:00:00

DevOps持續(xù)集成連續(xù)部署

2020-07-28 09:08:02

自動(dòng)化測(cè)試軟件測(cè)試軟件開發(fā)

2022-08-31 22:25:53

微服務(wù)架構(gòu)DevOPs

2019-11-07 09:00:39

Jenkins流水線開源

2011-12-15 13:28:57

2021-05-13 18:23:53

Tekton云原生Kubernetes

2023-01-30 15:55:08

2018-09-07 11:12:19

CICD工具

2022-12-09 08:40:56

高性能內(nèi)存隊(duì)列

2020-12-15 16:13:21

DevSecOpsCICD

2011-10-21 14:20:59

高性能計(jì)算HPC虛擬化

2011-10-25 13:13:35

HPC高性能計(jì)算Platform

2021-07-02 16:30:01

CICDDevOps

2023-05-04 16:03:50

KubernetesCI/CD集成
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)