先知-Baidu的系統測試
What We Do:
利用成熟的基礎架構動態獲取產品程式碼,一鍵搭建整個系統的被測模組
依照優先順序同時在千臺測試機二維互斥、加鎖、周 期、定時併發搭建環境和排程測試
一句命令自動同步線上資料,高效完成任務
BackGround:
目前自動化測試多指採用一定的自動化框架和自動化測試指令碼來單機執行自動化Case完成測試。自動化測試用例(Case)隸屬於按照模組、功能劃分的Suite,執行時可以執行單個Case或是執行整個Suite,這些Case沒有直接的邏輯關係,即使是執行整個Suite時,其中每個用例也僅反映出該用例的執行結果。這種方式的自動化難以解決模組複雜互動時的自動化化問題,往往會將自動化測試中斷在介面資料獲取階段,需要人工check資料在繼續。
系統測試是將已經確認的軟體、計算機硬體、外設、網路等其他元素結合在一起,進行資訊系統的各種組裝測試和確認測試,其目的是通過與系統的需求相比較,發現所開發的系統與使用者需求不符或矛盾的地方,從而提出更加完善的方案。系統測試中由於整個軟體系統通常有多個模組組成,分散式的部署在多個伺服器或是伺服器叢集上,在驗證基本功能點的同時需要完成大量的資料和介面互動的確認測試,併發測試等。
Solutions:
百度結合內部基礎架構模型,結合服務和機器監控,完成一套系統測試自動化方案-Prophet。系統測試自動化方案由一套包含有機器、模組執行資料獲取,通過獲取到的資料派生新的測試分支並完成測試,系統結構如下圖:
使用者通過系統提供的資料API(由百度底層監控服務提供)獲取到模組機器的執行資料後,在測試指令碼中嵌入執行邏輯,自動根據當前資料情況分散式的在不同伺服器上派生出新的測試分支完成系統測試。
該測試系統分散式部署在百度的QA叢集中,全面支援由千臺以上伺服器支撐的軟體系統的系統自動化測試工作,幫助使用者節省超過80%的時間。
原來:易實現的多次迴歸case自動化->讓qa能夠投入精力到更深層次的邏輯測試中並提高測試效率。
現在:易實現+深層次迴歸的case自動化->讓qa可以投入到複雜的系統互動、程式碼優化等領域的工作中、更加保證質量和效率
Implementation:
圖中的方塊代表機器,同一行的Suite部署在同一臺機器上,Suite4,7用於測試模組A部署在機器AM上,Suite29,48用於測試模組B部署在機器BM上,Suite109,58用於測試模組C部署在機器CM上。依賴和資料獲取關係由圖表中的箭頭表示。
步驟一:Suite4於指定時間開始執行,執行成功轉步驟二,執行失敗轉步驟五
步驟二:Suite7接到上游Suite4的成功結束通知和執行資料後開始執行, Suite7成功執行後會為機器BM上測試模組B的Suite48提供資料,執行成功轉步驟三,執行失敗轉步驟五
步驟三:Suite29接到機器AM上Suite7成功完成的通知和執行資料後開始執行,Suite29執行成功轉步驟四,執行失敗轉步驟五;同時Suite48接到Suite7成功完成的通知後從A機器上獲取Suite7的資料並執行,執行成功轉步驟四,執行失敗轉步驟五
步驟四:Suite109接到BM機器上Suite29成功完成通知開始執行,Suite109執行完成轉步驟五;同時Suite58判斷如果同時收到了BM機器上測試B模組的Suite29和Suite48的成功通知和資料則開始執行,執行完成轉步驟五
步驟五:結束,通知使用者結果。
每個Suite都可以包含有時間屬性,即使得到了上游機器的Suite的執行結果和資料也會等待到達指定時間才執行。系統會彙報Suite執行的結果,資料,通過率,覆蓋率等同時還包括各項軟體件資源的趨勢圖。
Earnings:
20+ Modules Monitored By Prophet
20+ SystemTest Logical Suites DailyRun On Prophet
150+ ModuleTest Suites DailyRun On Prophet
(作者:laoyong)
相關文章
- OLAP系統解析:Apache Kylin和Baidu Palo哪家強?ApacheAI
- 門戶系統測試---功能測試
- 門戶系統測試---測試計劃
- 軟體系統測試有哪些測試過程?系統測試報告如何收費?測試報告
- 標籤系統測試
- 軟體驗收測試和系統測試的區別點
- Oracle 11gRac 測試案例(三)系統測試Oracle
- 系統測試-從研發到測試過程
- 使用Android系統測試和iOS系統測試,到底有什麼區別?AndroidiOS
- 非同步系統的兩種測試方法非同步
- Oracle 11gRac 測試案例(二)系統測試(一)Oracle
- TPA測試專案管理系統-測試問題管理專案管理
- 軟體測試---單元、整合、系統、驗收測試
- 測試開發之系統篇-常用系統命令
- 4大軟體測試策略的特點和區別(單元測試、整合測試、確認測試和系統測試)
- 測試專案管理系統 — TPA專案管理
- 線上抽獎系統的測試報告測試報告
- 2020 時代的 Rails 系統測試 (翻譯)AI
- 對OrcaMDF的系統測試裡避免regressions(譯)
- 滲透測試系統kali配置源
- 軟體系統功能測試報告測試報告
- ECU 自動化生產測試系統
- 【推薦系統篇】--推薦系統之測試資料
- 測試開發之系統篇-按需建立測試虛擬機器虛擬機
- Python 使用” 先知” 預測公眾號未來的粉絲量Python
- SMT首件測試系統可以與MES系統對接嗎?
- AI測試101:測試AI系統的實用技巧&ML和AI自動化工具AI
- OTT 方面的測試,有沒有熱 做過系統一點的測試,求指教。
- Vue Baidu Map使用VueAI
- UI 測試的作業系統級別的錄製 / 回放UI作業系統
- 論系統測試技術及應用
- 效能測試需要知道點系統概念
- mes系統上線之前要做哪些測試?
- JSR規範,系統引數測試大全JS
- 智慧駕駛實車測試系統-VDAS
- linux系統程式設計CP小測試Linux程式設計
- 在Linux中,如何進行系統效能的峰值測試?Linux
- 最新的 macOS 12 Monterey 系統怎麼測試網速Mac
- 《天龍八部·歸來》「歸來測試」預下載啟動,海量福利搶先知