88 郵箱測試左移和測試右移的落地實踐
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完美郵箱測試主管李雪蘭。
相關文章
- 什麼是測試左移和測試右移
- 構建高效Presubmit卡點,落地測試左移最佳實踐MIT
- 簡單談一下我對持續測試下的測試左移、迭代測試和測試右移的理解吧
- Parasoft軟體測試實踐:什麼是左移測試?
- QTP測試Yahoo郵箱QT
- API 安全中的“左移”測試API
- 自動化測試框架選型和落地實踐路徑框架
- 測試右移:線上質量監控 ELK 實戰
- phpunit測試成功phpunit測試實踐程式碼PHP
- Java的左移和右移運算子Java
- 用QTP進行GMail郵箱的自動化測試QTAI
- 聊聊測試左移到開發階段
- Twitter的A/B測試實踐(一):為什麼要測試以及測試的意義
- Docker與自動化測試及其測試實踐Docker
- 介面測試框架接入效能測試實踐分享框架
- 軟體測試理論和實踐
- 測試平臺系列(88) 完成郵件通知功能(附贈精美郵件模板)
- Vodafone A/B測試實踐
- 精準測試實踐
- Locust效能測試實踐
- Java中的單元測試與整合測試最佳實踐Java
- 測試測試測試測試測試測試
- Golang專案的測試實踐Golang
- DevOps 中的測試實踐dev
- DevOps中的測試實踐dev
- 敏捷測試的方法與實踐敏捷測試
- Go 單元測試實踐Go
- HTTP介面測試實踐(一)HTTP
- 契約測試Pact實踐
- ChaosBlade混沌測試實踐
- 測試用例最佳實踐
- 軟體測試中的功能測試和非功能測試
- vivo 全鏈路多版本開發測試環境落地實踐
- App測試、Web測試和介面測試一般測試流程APPWeb
- 自動化測試的最佳實踐
- 測試團隊的組建實踐
- 在持續測試中使用哪種測試?談談DevOps在測試策略中的實踐!dev
- 負數的右移與左移