7天玩轉性能&接口測試

衆所周知,近10年IT領域有兩個關鍵的風向轉變,傳統IT向雲計算轉變,傳統瀑布和迭代開發模式向敏捷開發模式轉變。這兩個轉變促成了DevOps產品交付模式的出現。互聯網行業競爭激烈,許多公司專一於產品和商業模式的快速迭代創新,指望經過DevOps快速交付產品,縮短產品的上市週期。
華爲DevOps模式下的軟件測試體系的分享主要由 「測試對象的識別、測試組織與流程的演變、測試工具與技術的應用、測試管理和自動化測試」四個領域的關鍵內容組成。華爲雲近期推出了7天玩轉性能&接口測試系列課程,添加小助手微信(devcloud9)便可免費參與學習。
1、測試對象的識別
軟件測試首先須要關注測試對象,不一樣種類的測試對象的測試策略和測試技術會有顯著區別。測試對象即有傳統的Web服務、移動APP,也有新興的微服務和IoT設備。


1. 移動APP
Android和iOS手機客戶端依然是互聯網toC創業的首選產品模式。移動App能夠分爲Web App、混合App和本地App三種模式,2016年以React Native爲表明的技術又帶火了移動跨平臺開發。跨平臺開發能夠幫助開發者複用大部分代碼,但依然沒法解決讓開發者頭疼的Android系統碎片化問題。移動兼容性測試仍然是針對Android機型碎片化的主要測試手段。
2. Web服務
B/S結構的Web服務依然是很典型的IT產品交付形式,尤爲是面向企業客戶的產品。同時不少遺留IT系統仍然使用SOA的架構方式。對新系統而言,先後端分離是B/S結構的標配。後端不管採用什麼語言和框架,和前端的接口基本都是RESTful化的,甚至一些框架能夠幫助生成Swagger標準的接口描述文檔。MVC和MVVM模式的普及使得前端架構模式化,最重要完成了分層化,配合Jasmine等JavaScript單元測試框架,讓前端代碼質量再也不是焦油坑。
3. 微服務
微服務架構被廣泛認爲是一種比分佈式單體架構更優的架構模式,能夠下降服務耦合度,減輕服務器資源浪費,提高交付和運維效率。微服務之間採用API的調用方式下降了服務的耦合度,微服務框架如Spring Boot對Swagger的內置支持也提升了微服務RESTful接口的標準化水平,這些都提高了服務的可測性。
微服務數量多,每一個微服務職能獨立,每一個微服務使用獨立流水線做快速交付,測試模式和傳統單體大服務架構有顯著區別,須要的不是一個大而全的測試工具,而是小而精、快的敏捷自動化測試工具。 
4. 物聯網設備
物聯網市場發展迅速,特別是智能家居、車聯網、可穿戴設備、智慧工廠等領域。共享單車最近很是火熱,其車鎖和定位裝置就是典型的物聯網終端。物聯網終端內置實時嵌入式系統,收集傳感器數據作邊緣計算,並經過Wi-Fi、4G、NB-IoT等接入方式鏈接手機設備或者雲端服務。物聯網設備運行環境苛刻,而且會涉及我的隱私數據甚至生命安全、工廠和基礎設施的安全運行等,所以防黑客侵入的安全測試和防意外事故的遍歷測試和壓力測試等對物聯網產品相當重要。

想了解更多測試知識,請參與華爲雲近期推出的7天玩轉性能&接口測試系列課程,添加小助手微信(devcloud9)便可免費參與學習。

2、測試組織和流程的演變
公司的業務決定了公司的組織和流程。根據康威定律,開發團隊的組織結構決定了產品架構。互聯網公司專一於創造市場須要客戶滿意的產品,同時須要根據市場和政策環境及時調整產品競爭策略。產品的發佈週期愈來愈短,產品需求頻繁發生變動,產品架構頻繁發生重構。這些都對測試活動和產品質量保證提出了巨大挑戰。以上挑戰決定了DevOps模式的測試組織和流程明顯區別於傳統敏捷模式:
1. 測試活動的質量目標發生變化
測試活動的質量目標由單純驗證產品功能需求、非功能需求擴展爲保證客戶滿意和產品的業務可續。測試團隊會站在用戶的角度考察產品的易用性和可用性,同時會監控生產環境的PV、UV、峯值吞吐量等關鍵指標,並歸入測試場景設計。
2. DevOps的閉環敏捷模式
敏捷不只僅體如今開發和測試活動中,業務面也使用敏捷的流程,造成閉環的敏捷。DevOps會向前鏈接市場團隊和產品經理,向後鏈接客服團隊,造成Market-Product-Develop-Operation-Customer的閉環敏捷價值鏈。產品信息的透明快速流動對敏捷的成功相當重要。測試人員會和產品經理同時得到到來自市場的產品反饋,這些反饋會變成測試需求融入測試活動。
3. QA和開發的角色融合
在兩個披薩原則的團隊中,全棧程序員端到端地負責產品的開發、測試和運維,承擔了QA和運維人員的角色。極客風格的全棧程序員傾向於使用自動化的測試框架。自動化測試能夠覆蓋的愈來愈多,解放出來的手工測試人員會向開發轉型。
4. 自動化的持續集成
持續集成的自動化程度愈來愈高,每一個公司的實踐會有不一樣,藉助Jenkins等CI工具能夠實現從代碼提交到自動單元測試再到構建打包的持續集成,甚至和自動化部署、自動化測試打通。在持續集成鏈條上,自動化測試將覆蓋開發環境、測試環境、類生產環境和生成環境上的測試。
5. 測試左移
產品經理使用業務語言描述產品需求,開發人員使用程序語言完成開發,雙方對需求的理解有時會產生誤差。BDD的方式能夠幫助開發人員和產品經理對需求達成一致的理解,配合TDD的開發方式能夠保證開發結果知足需求預期。

想了解更多測試知識,請參與華爲雲近期推出的7天玩轉性能&接口測試系列課程,添加小助手微信(devcloud9)便可免費參與學習。

3、測試技術的應用
產品架構的分層模型決定了測試金字塔依然有效。經過單元測試、服務和API測試、性能測試、前端測試、移動App測試的組合能夠覆蓋B/S架構和雲服務+移動客戶端形式產品的測試。DevOps模式下測試自動化水平高,經過集成流水線完成和CI/CD打通的持續測試。一些技術發展爲自動化測試的效率和質量提高提供了利器。
1. Selenium
Selenium已經成爲前端自動化測試的事實標準,主流瀏覽器都提供對Web Driver的支持,Page Object的設計模式能夠實現模塊化的測試,Selenium也支持對多瀏覽器的併發測試。Web Driver協議已經提交到W3C作標準化工做,將來將成爲前端自動化測試的行業標準。

可是如今Selenium還有一些缺點,例如使用Selenium須要必定的編程能力,所以就限定了使用人員角色,不熟悉編程的產品經理和驗收測試人員只能手工作驗收測試。另外若是前端頁面頻繁變更,頁面變更以後就得修改測試腳本,這種狀況腳本維護成本大。
事實上沒有一種測試類型是可以100%勝任產品測試的,前端自動化測試更適合針對相對穩定的頁面作迴歸測試和冒煙測試,對覆蓋不到的能夠經過API級別測試或者手工測試來補充覆蓋。
2. 容器化
Docker爲表明的容器生態系統發展迅速,容器集羣管理系統Docker Swarm和Kubernetes能夠幫助統一部署、管理、維護Docker集羣。Jenkins等CI工具也提供了對Docker的支持。因爲Docker能夠方便地將運行時環境連同應用一併打包到鏡像中,所以能夠快速建立和複製標準化的測試環境,而且保持測試環境和開發環境一致性。
3. Swagger
Swagger 做爲設計、構建和文檔化RESTful API的工具,其OpenAPI標準已經成爲事實上的RESTful API定義標準。在Swagger Editor中,基於YAML語法定義RESTful API就能夠自動生成API描述文檔。一些框架如Spring Boot也提供了對Swagger的原生支持。Swagger描述文檔能夠做爲先後端分離開發中的接口「契約」。測試人員能夠把Swagger描述文件看成接口需求開發API測試。
4. 資源編排和自動部署工具
測試環境管理分兩個層面,一個是環境的標準化,另一個是環境管理的自動化。產品從開發到上線通常通過開發環境、測試環境、類生產環境、生產環境。每個環境的差別均可能產生未知問題。手工搭建和管理測試環境費時而且易出錯,測試人員須要求助於開發人員獲取必要的操做系統信息、環境變量、數據庫和中間件版本信息、配置腳本和安裝步驟等才能順利地搭建起一套測試環境。在環境統一這一層面,環境編排器能夠幫助統必定義各類環境,保持標準化、可配置和易維護。在環境管理自動化這一層面,能夠經過一些自動化管理工具完成批量系統設置,批量程序部署,批量運行命令等。華爲雲軟件開發服務(DevCloud)的部署服務就爲用戶提供了基於Ansible的虛機和容器部署能力。
5. 雲化的壓力測試和移動APP測試
壓力測試做爲非功能性測試的重要一環,在傳統模式下主要考量的是應用服務器與數據庫的最大承載能力,在雲環境下增長了對雲主機彈性伸縮的能力測算。移動APP測試主要解決的是碎片化終端下的功能、性能及兼容性覆蓋測試,主要考量的是覆蓋的機型範圍及如何高效自動化完成總體測試,造成全面的分析報告。

想了解更多測試知識,請參與華爲雲近期推出的7天玩轉性能&接口測試系列課程,添加小助手微信(devcloud9)便可免費參與學習。
4、測試管理和自動化測試
測試用例的管理是全部測試的基礎,在測試的不一樣階段(如迴歸測試、冒煙測試)都須要圍繞測試用例進行校驗,經過「需求-任務-用例-缺陷追溯」各環節的迭代來確保需求的測試覆蓋率,並提供測試驗收報告。自動化測試幫助大幅提高測試效率、穩定性和反饋速度。

華爲雲軟件開發服務(DevCloud)雲測和移動應用測試提供一站式雲端測試平臺,覆蓋測試管理、性能測試、接口測試、移動應用兼容性測試,簡單、專業、高效,助力軟件研發全生命週期的持續自動化測試保障。


看到上面這些內容,你對測試領域是否有了更多認識?想更深刻地掌握測試技能,能夠關注這裏哦!
華爲雲DevCloud近期推出了7天實戰營系列課程:7天玩轉性能&接口測試。課程精編了7天精品視頻,涵蓋接口測試&性能測試兩大領域;同時課程專家駐羣答疑,實現7天跟蹤式教學,幫助學員排除學習障礙;課程實現了理論與實踐相結合,對學員的知識與能力共同進行提高。前端

相關文章
相關標籤/搜索