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

企業(yè)級(jí)SaaS產(chǎn)品自動(dòng)化測(cè)試實(shí)踐

云計(jì)算 自動(dòng)化 SaaS
保證自動(dòng)化測(cè)試用例集可持續(xù)運(yùn)行是企業(yè)級(jí)SaaS產(chǎn)品進(jìn)行持續(xù)集成和自動(dòng)化部署(CI/CD)、實(shí)現(xiàn)敏捷開發(fā)的核心。這一挑戰(zhàn)由奧博杰天的測(cè)試團(tuán)隊(duì)來擔(dān)當(dāng)。我們的測(cè)試團(tuán)隊(duì)雖然之前做過很多國(guó)外大型項(xiàng)目的自動(dòng)化測(cè)試,但是對(duì)測(cè)試功能點(diǎn)多、項(xiàng)目干系人分散、交付質(zhì)量要求又高的企業(yè)級(jí)SaaS還是第一次碰到。

項(xiàng)目背景

奧博杰天中國(guó)測(cè)試團(tuán)隊(duì)負(fù)責(zé)一套云端人力資源管理產(chǎn)品的自動(dòng)化測(cè)試,產(chǎn)品簡(jiǎn)稱WHMC (Workforce Management and HCM Could Solution )。 該產(chǎn)品幫助大型企業(yè)管理員工考勤、排班優(yōu)化,以及缺勤等復(fù)雜業(yè)務(wù)邏輯。它的客戶包含制造商、零售商、醫(yī)療機(jī)構(gòu)、服務(wù)機(jī)構(gòu)、交通運(yùn)輸和物流等全球數(shù)千家各種規(guī)模機(jī)構(gòu)。由于業(yè)務(wù)復(fù)雜,WHMC被拆分成15個(gè)組件,每個(gè)組件配備10-20人的研發(fā)團(tuán)隊(duì)。 研發(fā)團(tuán)隊(duì)以項(xiàng)目為單位分布在美國(guó),加拿大,印度和中國(guó)多個(gè)不同的城市。WHMC作為一套SaaS云端解決方案,支持客戶按月購買服務(wù), 同時(shí)也支持整套解決方案駐場(chǎng)部署在客戶的機(jī)房?jī)?nèi)。該產(chǎn)品在研發(fā)上有以下幾個(gè)特點(diǎn):

作為企業(yè)級(jí)SaaS,產(chǎn)品的功能組件多、集成和測(cè)試難度大。

國(guó)際化特征明顯,研發(fā)團(tuán)隊(duì)分布全球,溝通交流不便。

產(chǎn)品迭代更新快,每個(gè)研發(fā)團(tuán)隊(duì)都有自己的進(jìn)度,測(cè)試團(tuán)隊(duì)無法控制研發(fā)團(tuán)隊(duì)的工作安排。

面臨的挑戰(zhàn)

保證自動(dòng)化測(cè)試用例集可持續(xù)運(yùn)行是企業(yè)級(jí)SaaS產(chǎn)品進(jìn)行持續(xù)集成和自動(dòng)化部署(CI/CD)、實(shí)現(xiàn)敏捷開發(fā)的核心。這一挑戰(zhàn)由奧博杰天的測(cè)試團(tuán)隊(duì)來擔(dān)當(dāng)。我們的測(cè)試團(tuán)隊(duì)雖然之前做過很多國(guó)外大型項(xiàng)目的自動(dòng)化測(cè)試,但是對(duì)測(cè)試功能點(diǎn)多、項(xiàng)目干系人分散、交付質(zhì)量要求又高的企業(yè)級(jí)SaaS還是第一次碰到。用之前的項(xiàng)目經(jīng)驗(yàn)去實(shí)施項(xiàng)目碰到了不少挑戰(zhàn),主要集中在以下三方面:

測(cè)試技術(shù)的挑戰(zhàn)

自動(dòng)化測(cè)試用例集分為UI 測(cè)試, API 測(cè)試, 和混合場(chǎng)景測(cè)試。我們使用TestNG (版本6.8.8)、Selenium (版本2.53.0) 的WebDriver、REST-Assured(版本2.9.0)作為測(cè)試框架的核心工具。開發(fā)完成的自動(dòng)化測(cè)試用例上傳到Git倉庫進(jìn)行版本管理,由Jenkins進(jìn)行CI/CD。測(cè)試用例生命周期及測(cè)試結(jié)果通過惠普的ALM (Application Lifecycle Management) 進(jìn)行管理。 整體測(cè)試框架如下圖:

其中開發(fā)和執(zhí)行UI測(cè)試用例有兩個(gè)技術(shù)難點(diǎn):

一,Selenium判斷異步加載的網(wǎng)頁元素是否完成和如何定位網(wǎng)頁元素。

這是Selenium 的WebDriver進(jìn)行UI測(cè)試的經(jīng)典技術(shù)問題。WHMC的很多網(wǎng)頁數(shù)據(jù)是通過Angular JS異步加載的,測(cè)試用例有時(shí)很難判斷待檢查網(wǎng)頁元素是否裝載完畢,造成超時(shí)或執(zhí)行失敗。例如,在計(jì)算工資的頁面,我們需要等員工的工時(shí)加載完然后點(diǎn)擊“計(jì)算”按鈕來計(jì)算應(yīng)付工資。由于工時(shí)的表格會(huì)動(dòng)態(tài)刷新,則可能計(jì)算錯(cuò)誤。

還有就是定位網(wǎng)頁元素,我們使用XPath定位,最常使用的是網(wǎng)頁元素的屬性值定位元素實(shí)例,例如div標(biāo)簽的ID、 img標(biāo)簽的href,input標(biāo)簽的type等屬性值。但是這些屬性在新版本中可能變化,造成查詢條件不穩(wěn)定。

二,SaaS模式下的多租戶測(cè)試。

SaaS產(chǎn)品不同租戶能使用的功能、 API限制、和數(shù)據(jù)隔離等方式等都不完全相同,多租戶測(cè)試場(chǎng)景有別于傳統(tǒng)自動(dòng)化測(cè)試項(xiàng)目。

產(chǎn)品更新快帶來的挑戰(zhàn)

WHMC的 15個(gè)組件都有自己的開發(fā)計(jì)劃,開發(fā)團(tuán)隊(duì)沒有及時(shí)通知到測(cè)試團(tuán)隊(duì),測(cè)試團(tuán)隊(duì)也很難去控制這些變化。組件發(fā)生變化后,其API文檔更新不及時(shí)或非常有限,很多變化的接口只有API的定義沒有參數(shù)說明,測(cè)試團(tuán)隊(duì)在理解和修改API測(cè)試用例時(shí)遇到很大麻煩。

另外,因?yàn)闇y(cè)試框架是和測(cè)試用例開發(fā)同步進(jìn)行的,測(cè)試框架發(fā)生的變化也對(duì)測(cè)試造成影響。測(cè)試框架新增了功能,意味著需要對(duì)已開發(fā)的測(cè)試用例進(jìn)行更新。 頻繁更新的測(cè)試框架,對(duì)發(fā)現(xiàn)測(cè)試用例失敗的原因也帶來新的不確定因素。

多團(tuán)隊(duì)跨國(guó)溝通的挑戰(zhàn)

由于研發(fā)團(tuán)隊(duì)分散在不同的國(guó)家,項(xiàng)目的測(cè)試流程和溝通流程都存在不足。如圖:

測(cè)試用例的需求溝通完全通過ALM(Application Lifecycle Management)獲取。一些測(cè)試用例需求都寫得比較模糊,測(cè)試團(tuán)隊(duì)需要花費(fèi)很長(zhǎng)時(shí)間和各組件負(fù)責(zé)人在ALM系統(tǒng)中來回澄清細(xì)節(jié)。

由于研發(fā)團(tuán)隊(duì)都在國(guó)外,我們很難得到關(guān)于產(chǎn)品的技術(shù)支持。在測(cè)試用例開發(fā)過程中,一些測(cè)試用例執(zhí)行失敗的原因需要技術(shù)團(tuán)隊(duì)確認(rèn),只能通過郵件,對(duì)方回應(yīng)不及時(shí)。

開發(fā)完測(cè)試用例,需要需求方review并接收。需求方確認(rèn)不及時(shí)造成大量已完成的測(cè)試用例停留在待提交狀態(tài)不能提交到Git進(jìn)行代碼管理,大量積壓的測(cè)試用例產(chǎn)生版本沖突。

項(xiàng)目從2017年1月開始啟動(dòng),經(jīng)過3個(gè)月的實(shí)施,上訴問題帶來的結(jié)果是每次回歸的通過率徘徊在40-50%;測(cè)試用例的產(chǎn)出效率很低,近40人的團(tuán)隊(duì)每天只能產(chǎn)出平均1個(gè)合格的自動(dòng)化測(cè)試用例;因?yàn)榈貌坏窖邪l(fā)團(tuán)隊(duì)的支持和理解,測(cè)試團(tuán)隊(duì)士氣低落,內(nèi)部彌漫著失敗的氣息。

應(yīng)對(duì)策略

測(cè)試團(tuán)隊(duì)意識(shí)到按照現(xiàn)有的流程再繼續(xù)下去是行不通的,于是在4月初果斷停止了所有進(jìn)行中的任務(wù),商量應(yīng)對(duì)方法。 在總結(jié)了前述的各種的挑戰(zhàn)后, 提出了如下應(yīng)對(duì)策略:

測(cè)試框架對(duì)常見的測(cè)試難點(diǎn)進(jìn)行封裝

對(duì)于異步數(shù)據(jù)加載問題,我們將問題分為不同的場(chǎng)景,提供一個(gè)示例來描述問題的細(xì)節(jié)以及我們?nèi)绾翁幚硭漠?dāng)前方式。 同時(shí)負(fù)責(zé)測(cè)試框架的小組系統(tǒng)地了解這些場(chǎng)景,并封裝成標(biāo)準(zhǔn)方法,并為每個(gè)場(chǎng)景設(shè)置最大延遲時(shí)間,如果到時(shí)不返回期望值,則拋出異常。

對(duì)于Web元素定位器問題,我們列出典型的情況,并與測(cè)試框架小組和國(guó)外各組件研發(fā)團(tuán)隊(duì)合作,將穩(wěn)定的查詢條件封裝成一個(gè)明確的查找方法。測(cè)試人員調(diào)用統(tǒng)一的方法進(jìn)行測(cè)試。

加強(qiáng)配置管理

包括:正確使用git工具和提交流程;使用JIRA配合AML對(duì)需求進(jìn)行管理;測(cè)試團(tuán)隊(duì)內(nèi)部代碼審查等。加強(qiáng)配置管理對(duì)于解決SaaS產(chǎn)品更新快這一挑戰(zhàn)非常有效。關(guān)于配置管理業(yè)界討論得比較多我就不詳細(xì)展開,只重點(diǎn)強(qiáng)調(diào)一下對(duì)于測(cè)試數(shù)據(jù)集的配置管理。

我們的測(cè)試數(shù)據(jù)集來源有兩部分:

運(yùn)行整套測(cè)試用例集之前通過工具進(jìn)行初始化填充。

測(cè)試用例內(nèi)自行管理的測(cè)試數(shù)據(jù)。

因?yàn)橹瓣P(guān)于如何維護(hù)測(cè)試數(shù)據(jù)集的定義是模糊的,在運(yùn)行UI測(cè)試和API測(cè)試用例時(shí)都會(huì)對(duì)這兩部分?jǐn)?shù)據(jù)集發(fā)生CRUD操作,造成了我們對(duì)于上述測(cè)試數(shù)據(jù)集的完整性無法保證。

針對(duì)這個(gè)情況, 我們加強(qiáng)了對(duì)數(shù)據(jù)集的配置管理,要求測(cè)試團(tuán)隊(duì)?wèi)?yīng)嚴(yán)格遵循以下規(guī)則:

將初始化測(cè)試數(shù)據(jù)視為只讀。

如果必須更改初始化測(cè)試數(shù)據(jù),我們應(yīng)該在測(cè)試用例退出之前改回原來的值。

將測(cè)試用例自己管理的數(shù)據(jù)視為例外情況,單獨(dú)管理這些測(cè)試用例。

優(yōu)化測(cè)試開發(fā)流程和團(tuán)隊(duì)溝通流程

在新的溝通流程中(如圖),我們主要做了以下改進(jìn):

和每個(gè)研發(fā)團(tuán)隊(duì)指定點(diǎn)對(duì)點(diǎn)的聯(lián)系人,建立更緊密的聯(lián)系,獲得必要的技術(shù)支持。

在Git中增加Accept分支,測(cè)試用例開發(fā)完成后在測(cè)試團(tuán)隊(duì)內(nèi)部進(jìn)行review,通過后提交到Git的Accept分支,研發(fā)團(tuán)隊(duì)每周定期review,接收開發(fā)好的測(cè)試用例并Merge到Main分支用于生產(chǎn)。

實(shí)施過程

從4月開始,我們按計(jì)劃進(jìn)行了為期4周改變,具體的做法有:

一,加強(qiáng)例框架研解決疑難技術(shù)點(diǎn)。例如在網(wǎng)頁上查找employee元素,如果employee元素不在屏幕內(nèi),這時(shí)定位就會(huì)報(bào)錯(cuò)。 開發(fā)團(tuán)隊(duì)使用WebDriver JavaScriptExecutor的executeScript方法進(jìn)行滾屏操作,很好的解決了這一問題?,F(xiàn)在只需要調(diào)用getEmployeeNameDiv()方法,傳入employeeName,就可返回要查找的employee元素:

二,采用數(shù)據(jù)驅(qū)動(dòng)測(cè)試的方法解決多租戶測(cè)試需求。使用CSV來管理不同的測(cè)試數(shù)據(jù)集,只需裝載一次測(cè)試數(shù)據(jù)文件,就可使用不同數(shù)據(jù)集多次執(zhí)行測(cè)試用例,簡(jiǎn)化了用例開發(fā)量。例如切換租戶只需要執(zhí)行如下代碼:

三,增派架構(gòu)師參與到測(cè)試框架設(shè)計(jì)工作中,處理諸如異步數(shù)據(jù)加載等技術(shù)挑戰(zhàn), 同時(shí)指導(dǎo)測(cè)試數(shù)據(jù)管理,驗(yàn)證方法抽象和經(jīng)驗(yàn)總結(jié)。

四,重新設(shè)計(jì)測(cè)試開發(fā)流程,增加架構(gòu)師或業(yè)務(wù)分析師對(duì)測(cè)試用例的業(yè)務(wù)流程進(jìn)行Review, 測(cè)試用例在本地的CI/CD環(huán)境進(jìn)行daily run。并將新的流程對(duì)測(cè)試團(tuán)隊(duì)進(jìn)行培訓(xùn)。

五,對(duì)測(cè)試人員進(jìn)行技能培訓(xùn),例如:Git使用,測(cè)試數(shù)據(jù)管理,與異步數(shù)據(jù)加載相關(guān)的Web元素的最佳做法,和代碼審查清單等。

六,派專人出差到國(guó)外和各個(gè)組件團(tuán)隊(duì)面對(duì)面溝通,就產(chǎn)品,API以及疑難的測(cè)試需求進(jìn)行了深入的溝通。指定一對(duì)一的聯(lián)絡(luò)人,加快溝通的響應(yīng)速度。

七,針對(duì)我們之前開發(fā)的623個(gè)測(cè)試用例進(jìn)行了重構(gòu)。

經(jīng)過上述改變,測(cè)試用例集回歸通過率從4月底的50%提升到了80%。未通過的用例進(jìn)行人工維護(hù)更新。大部分是系統(tǒng)更新引起的變化,一次性調(diào)整測(cè)試框架就能解決大部分。新的測(cè)試策略大大提高了CI/CD的可重用性,做到了SaaS產(chǎn)品自動(dòng)化測(cè)試用例的高可用性。

總結(jié)

對(duì)于企業(yè)級(jí)SaaS來說,在自動(dòng)化測(cè)試領(lǐng)域會(huì)有如下新挑戰(zhàn):

除了頁面自動(dòng)化測(cè)試的技術(shù)挑戰(zhàn),還要考慮SaaS產(chǎn)品多租戶對(duì)測(cè)試用例設(shè)計(jì)帶來的挑戰(zhàn)。

SaaS產(chǎn)品迭代周期快, 對(duì)自動(dòng)化用例的開發(fā)效率,用例的通過率都帶來很大挑戰(zhàn)。

企業(yè)級(jí)SaaS產(chǎn)品研發(fā)團(tuán)隊(duì)經(jīng)??绲赜虻奶攸c(diǎn),給處在不同地域的技術(shù)團(tuán)隊(duì)帶來更大的溝通挑戰(zhàn)。

奧博杰天中國(guó)測(cè)試團(tuán)隊(duì)在實(shí)施WHMC的自動(dòng)化測(cè)試項(xiàng)目中得到的企業(yè)級(jí)SaaS產(chǎn)品最佳實(shí)踐是:

基于成熟第三方測(cè)試軟件開發(fā)適合產(chǎn)品需要的自動(dòng)化測(cè)試框架,封裝測(cè)試中遇到的疑難技術(shù)點(diǎn),例如網(wǎng)頁元素定位和判斷異步加載成功。

采用數(shù)據(jù)驅(qū)動(dòng)測(cè)試來應(yīng)對(duì)多租戶的挑戰(zhàn)。

配備經(jīng)驗(yàn)豐富的架構(gòu)師參與測(cè)試框架設(shè)計(jì),關(guān)鍵問題解決和經(jīng)驗(yàn)總結(jié)。

加強(qiáng)配置管理,有效應(yīng)對(duì)產(chǎn)品更新快的挑戰(zhàn)。特別是測(cè)試數(shù)據(jù)集的管理,對(duì)于初始測(cè)試數(shù)據(jù)集保持只讀;如果必須更改初始化數(shù)據(jù),需要在用例退出時(shí)恢復(fù)原值;特殊的測(cè)試數(shù)據(jù)單獨(dú)管理。

加強(qiáng)測(cè)試團(tuán)隊(duì)和技術(shù)團(tuán)隊(duì)的溝通,建立必要的跨團(tuán)隊(duì)溝通流程,得到研發(fā)團(tuán)隊(duì)的技術(shù)支持。

多地辦公的團(tuán)隊(duì)有必要指定一對(duì)一聯(lián)系人,肉身出差對(duì)于跨國(guó)團(tuán)隊(duì)溝通是最有效的辦法。

責(zé)任編輯:武曉燕 來源: 中國(guó)云計(jì)算
相關(guān)推薦

2021-11-25 11:08:07

智能

2021-07-15 20:02:12

AI 數(shù)據(jù)人工智能

2021-09-03 09:56:18

鴻蒙HarmonyOS應(yīng)用

2015-04-24 14:21:26

甲骨文PaaS

2023-02-07 08:11:15

2014-08-28 14:48:29

New Relic企業(yè)級(jí)SaaS

2018-01-23 06:41:46

SaaS云服務(wù)企業(yè)級(jí)

2022-09-12 16:02:32

測(cè)試企業(yè)工具

2020-02-01 14:29:55

滲透測(cè)試信息收集安全工具

2014-03-27 09:57:33

BorlandSilk組合

2014-03-05 11:06:23

SaaS企業(yè)及服務(wù)B2B

2015-12-29 15:17:58

SaaS2B企業(yè)級(jí)應(yīng)用軟件互聯(lián)網(wǎng)2B企業(yè)級(jí)產(chǎn)品

2015-05-26 09:41:45

china-pub

2023-03-29 07:49:05

企業(yè)級(jí)項(xiàng)目研發(fā)

2021-11-02 20:12:47

弘璣CycloneRPA

2012-08-14 14:57:51

Red Hat紅帽OpenStack

2013-01-11 11:03:51

金蝶KISimo用友 CRM

2016-03-09 15:13:38

移動(dòng)信息化研究中心

2015-10-14 10:23:59

企業(yè)應(yīng)用SaaS數(shù)據(jù)加密

2018-06-07 08:20:51

自動(dòng)化測(cè)試移動(dòng)技術(shù)云平臺(tái)
點(diǎn)贊
收藏

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