MeterSphere 案例分享丨 88 郵箱測試左移和測試右移的落地實踐

MeterSphere 小助手發表於2020-11-10

2019 年,全球領先的文化娛樂產業集團完美世界拿下了 “一定是東半球最貴的” 頂級域名 www.88.com。2020年8月8號,歷時一年研發,88 完美郵箱與大家正式見面。立足產品角度,這是完美世界正式進軍郵箱賽道的起點。對於 88 郵箱團隊來說,此舉邁出了從 0 到 1 的第一步。

不同於 QQ 郵箱和網易郵箱,88 完美郵箱主打商務與協同辦公,提供團隊郵件快速建立(日報、週報、月報、任務和審批)、團隊通訊錄、團隊郵件組管理、88 便籤、對接飛書會議、線上文件,以及免費開放 5GB 容量網盤等高效協同的功能。

對於完美世界來說,郵箱業務的誕生與快速發展催生出一個全新的團隊,從 0 到 1 組建團隊,需要建立新的研發流程和規範。在這一過程中,測試如何發揮更大的價值是一個重要的課題,而測試實現左移和右移是關鍵目標和突破方向。

測試左移和測試右移模型

對軟體產品而言,傳統的質量模式透過測試左移和測試右移被賦予更多的內涵,也承擔起更多的職責。

  • 測試左移:測試左移,本質上是藉助工具和測試手段更早地發現問題和預防問題
    • 需求:對需求、架構和設計模型的測試
    • 開發:著重增加對單元、元件和服務層的測試
    • 持續測試:自動化測試
  • 測試右移:對測試同學來說,版本上線後需要持續關注線上監控和預警,及時發現問題並跟進解決,將影響範圍降到最低
    • 灰度釋出:新版本線上測試
    • 監控:合理的效能監測、資料監控和預警機制
    • 使用者反饋:線上問題處理、跟蹤機制

測試左移如何落地?

測試任務跟蹤

測試任務跟蹤,不僅僅只是跟蹤測試本身的工作,還需要介入到需求、技術方案、編碼的全過程。只有前序每一步都跟蹤到位,才能儘量避免測試過程中的不可控因素,從而保證產品質量。

測試同學的任務其實是不好度量和跟蹤的,但是 MeterSphere 開源持續測試平臺為我們解決了這個痛點。測試計劃、測試用例、執行情況等都可以在 MeterSphere 平臺上直觀地看到,做到了 “讓資料為質量說話”。

建立程式碼分支管理規範

開發同學在編碼過程中,經常會因為環境不夠用、或者程式碼被覆蓋等問題而煩惱。對於敏捷開發模式的團隊,需求多、分支多是常態,怎樣讓開發測試有序地協同工作,規範分支管理流程是必要的。

Sonar 程式碼質量檢測

Sonar 是視覺化的程式碼質量檢查平臺,支援的語言包括 PHP、Java、Python、C# 等,包含專案、問題、程式碼規則、質量配置、質量閥和配置五個模組。

以下是專案執行情況的概覽,每個專案名稱代表一個專案,專案檢查的結果簡單呈現在專案首頁概覽中,包含 Bug 數量、漏洞數量、不規範、單元覆蓋率、程式碼重複度等維度。

我們通常會將 Sonar 發現的問題以 Bug 的方式提交給開發團隊,要求致命、嚴重級別的 Bug 必需修改,並跟蹤解決進度。在實際的運用過程中,也會根據專案實際情況調整質量閥門,以避免誤報等情況出現。

持續測試:基於 Metersphere 平臺實現介面自動化

介面測試提前接入,透過 YApi 管理介面文件,開發同學在需求評審後即進入技術設計與介面設計階段,測試同學則根據介面文件進行 Mock 測試。

基於 MeterSphere 開源持續測試平臺,我們實現了測試工作的自動化。提測後自動化測試介面透過率,提前發現問題,有效提升測試效率。

MeterSphere 持續測試平臺採用開源可擴充套件框架,實現了測試跟蹤、介面自動化、效能自動化的全覆蓋,特別適合創業團隊。從測試團隊的角度看,MeterSphere 平臺既能切實地提升產品質量和測試效率,又解決了自研自動化框架人力不足的痛點。

同時,MeterSphere 支援與 Jenkins 的整合,每次有新的程式碼提交後,平臺自動觸發環境部署和介面自動化 Job 執行,併傳送郵件通知,實現了主流程功能的迴歸測試,提升測試效率。

測試右移如何落地?

灰度釋出

使用灰度釋出方式,新版本上線後先更新部分伺服器,測試人員先進行驗收透過後,再全量釋出。這樣一來,儘可能地避免了測試和正式環境配置不一致、資料庫更新不及時等不確定因素引起的問題。

服務監控

對於測試人員來說,服務上線後仍然需要關注服務的執行情況,以便在出現系統問題時能夠快速做出反應,將影響降至最低。在這一環節,我們引入了 Zabbix 系統檢測工具,實時監控系統硬體資源使用情況。同時設定報警通知,將異常情況第一時間通知給相關負責人。

Zabbix 透過呼叫 ODBC 來獲取資料庫的資料,以及資料庫狀態等資訊;透過 IPMI Agent 監控硬體裝置,例如 Dell 或者 HP 伺服器的主機板溫度、CPU 電壓、蓋子是不是被開啟等;透過 JMX Agent 監控 Java JVM,例如 Tomcat;透過追蹤模擬滑鼠在 Web 網站上的點選操作,來檢查 Web 網站的功能和響應時間。

使用者反饋

“使用者就是上帝”。任何產品的成功與否,都取決於使用者。為此,我們建立了完善的使用者反饋處理機制:對於使用者反饋的問題,第一時間進行修復上線;針對使用者提出的建議,結合實際情況對產品進行打磨和最佳化。

專項測試

安全

保證郵箱資料安全性,是產品研發的一個重要環節。資料面臨的安全威脅來自於多個方面,如何有效地保護資料的保密性、完整性、可用性和真實性,郵箱團隊一直在不斷地升級和最佳化。這部分的工作主要涉及系統安全加固、資料庫加密、全鏈路傳輸加密、反作弊策略、反黑策略、反入侵策略、安全管理、反商業洩密等。

效能

介面層面

根據使用者量預期,制定系統效能要求,再構造資料藉助 JMeter 對系統進行持續壓測,測試系統的極限處理能力,以及最佳處理能力。

同時,將部分主要流程性指令碼透過 MeterSphere 開源持續測試平臺建立自動化效能測試任務,每次版本升級後自動執行穩定性測試,大大提升了測試效率,也能在早期發現問題並解決問題,進一步提升產品質量。

Web 頁面

從資源載入時間、頁面渲染、介面呼叫邏輯多方面分析 Web 頁面效能。這這方面,透過 www.webpagetest.org 工具,測試首頁資源載入、介面響應時長、頁面渲染時間等資料記錄頁面效能。

從不限於以下不同維度的測試資料分析頁面效能,並給出合理的改進措施:

  • 多次測試取平均值
  • 是否有快取資料
  • SSL 握手時間
  • 介面響應時間
  • 介面呼叫合理性(並行、序列、重複請求)
  • 資源最佳化
  • 弱網

MeterSphere 使用體會

對於創業者來說,時間少任務重是常態,反覆地手工測試讓人精疲力竭,要著手去寫自動化程式碼,又需要投入大量的人力,讓人應接不暇。我們團隊引入 MeterSphere 工具之後產生了非常好的效果。

現在來總結一下 MeterSphere 持續測試平臺的優點:

  • 它規範了測試用例,測試計劃可追溯,任務執行情況一目瞭然,團隊合作變得高效;
  • 介面測試上手成本低,將介面用例與部署平臺結合,每次有新程式碼部署後,都自動執行自動化指令碼,在保證質量的同時提升了效率;
  • 效能測試提供圖形化可視介面,且保留歷史資料,方便追溯,效能結果一目瞭然;
  • 開源!開源!開源!

MeterSphere 專案還在持續不斷最佳化和改進,如果能增加以下些功能就更好啦:

  • 增加 UI 自動化模組;
  • 增加效能測試資料的對比功能,方便穩定性測試資料的對比;
  • 場景支援在介面中呼叫,方便用例的組合測試,減少寫重複介面。

對於測試團隊來說,保證產品質量,測試左移和測試右移都是非常重要的突破方向。我們也將在此基礎上不斷地完善和最佳化,全方位提升研發測試效能。

注:本文作者為 88 完美郵箱測試主管李雪蘭。

相關文章