■ 中國軟件評測中心 周潤松
云計算是信息技術發展和服務模式創新的集中體現,是信息化發展的重大變革和必然趨勢。支持企業上云,有利于推動企業加快數字化、網絡化、智能化轉型,提高創新能力、業務實力和發展水平;有利于加快軟件和信息技術服務業發展,深化供給側結構性改革,促進互聯網、大數據、人工智能與實體經濟深度融合,加快現代化經濟體系建設。
國家先后出臺了一系列的政策文件,包括《國務院關于促進云計算創新發展培育信息產業新業態的意見》(國發〔2015〕5 號)、《云計算發展三年行動計劃(2017-2019年)》(工信部信軟〔2017〕49號)和《推動企業上云實施指南(2018-2020 年)》(工信部信軟〔2018〕135 號),鼓勵企業上云務實推進企業上云工作,引導企業加快數字化轉型步伐,促進新一代信息技術與實體經濟深度融合。
云計算,通俗來講就是放在云端的IT 服務,云計算讓使用IT 資源就像用水、用電一樣的方便。你無需關心電廠在哪里、是怎么工作的,將插頭插入插座即可獲取電能,對用戶來說電廠好像有用不完的電,而用戶僅需為自己使用那部分電能付費。云計算的快速發展,依托于以下的一些核心技術:
虛擬化技術,云計算技術的核心基礎,實現對物理資源的統一管理。從表面上看,云上運行的虛擬機都是獨立的服務器,但實際上,它們共享了物理服務器的CPU、內存、硬件和網卡等資源。KVM 目前是最熱門的虛擬化方案,但由于用戶交互體驗不是很好,不方便使用,因此OpenStack 這樣的云管理平臺就出現了。很多廠商基于KVM以及OpenStack等主流方案構建自己的云平臺。
容器技術,更輕量級的虛擬化技術。它和虛擬機有很大不同,虛擬機是操作系統級別的資源隔離,而容器本質上是進程級的資源隔離。大家經常聽說的Docker 就是創建容器的工具,是應用容器引擎。容器的技術優勢在于極其輕量、秒級部署、一次構建隨處部署、彈性伸縮。總之容器是一種輕量級的打包和隔離應用工作負載的方法。容器允許在同一物理或虛擬服務器上毫不沖突地運行多項工作負載。Kubernetes(k8s) 目前幾乎成為了實際默認的容器化平臺標準,集成了大規模容器的配置和注冊管理功能。
微服務架構,最新的應用軟件架構設計模式,推崇單一職責、服務自治、輕量通信和接口明確等原則。應用架構正在從采用瀑布模型開發法的單體代碼庫轉變為獨立開發和部署的松耦合服務。成千上萬個相關的服務相互連接就形成了應用。微服務很適合采用容器的方式部署,每個容器承載一個服務。單臺物理機或者虛擬機可以同時運行多個容器,從而輕松地模擬出復雜的微服務架構的應用。容器允許開發人員選擇最適合于每種服務的工具或技術棧,并且可以獨立于應用的其他服務組件,輕松共享、部署、更新和瞬間擴展。
DevOps 技術,是一種軟件開發方法,涉及軟件在整個開發生命周期中的持續開發,持續測試,持續集成,持續部署和持續監控。現代化開發流程快速、持續且具備自動執行能力,最終目標是開發出更加可靠的軟件。通過持續集成(CI)和持續部署(CD),每次開發人員簽入代碼并順利測試之后,IT 團隊都能夠集成新代碼。作為開發運維方法的基礎,CI/CD創造了一種實時反饋回路機制,持續地傳輸小型迭代更改,從而加速更改,提高質量。持續集成環境通常是完全自動化的,通過git 推送命令觸發測試,測試成功時自動構建新鏡像,然后推送到容器鏡像庫。通過后續的自動化和腳本,可以將新鏡像的容器部署到預演環境,從而進行進一步測試。
云測試,狹義的理解就是基于云計算支撐技術,在云平臺進行測試服務的平行遷移工作,開展的類似傳統的測試服務工作。
測試上云的方式主要表現在于利用云平臺的快速部署能力,迅速的將傳統的信息化系統測評能力遷移到云平臺中,配套開展傳統信息系統相關的功能測試、性能測試、兼容性測試、安全性測試等測評服務工作。
云測試的主要優勢在于快速的環境部署能力。基于虛機模板技術以及備份策略,可以快速的部署服務器端應用程序;依托云平臺靈活的主機配置參數調整能力、存儲部署能力以及便捷的網絡部署配置能力,可以在云平臺上快速的構建和更換被測環境;同時基于虛機的定制鏡像技術,也可以快速高效的推送部署測試工具環境以及測試過程管理平臺,相較于傳統測試,更加高效、便捷,也同步降低了測試成本。
另外針對移動應用的盛行,類似于Testin 云測、百度MTC、騰訊移動云測試平臺等,都推出了基于真實終端設備環境,基于自動化測試技術的7×24 云端服務,可以在線上通過鍵盤鼠標的操作控制遠程的移動終端設備(手機或者平板電腦),開展移動APP 的功能測試、兼容性測試、安全測試、遠程真機調試、定制化測試等服務。
測試云,簡單的理解就是針對云計算平臺的特性以及容器、微服務和DevOps 等新的技術發展方向,開展有針對性的測試技術研究,利用云平臺構建進一步的測試組合環境,并采用新的技術方式或者業務模式,創新性地開展測試工作。
當下主要研究發展方向如下:
面向微服務架構的測試探索。面向與容器化部署的微服務應用程序,微服務具有顆粒度更小、部署靈活、運行時環境復雜多變的特性,如何在云環境下有效的對微服務展開接口測試、Mock 測試、性能測試以及故障模擬測試,相較于傳統測試,都是新的挑戰。基于流量錄制和回放的測試方法,已經在阿里、京東等企業內部用于演練雙十一、6.18 等購物狂歡的壓測;基于APM 原理的全鏈路監測分析技術,也將極大地提升微服務架構平臺的性能監測和故障檢測能力。
大數據和人工智能技術在測試中的應用。目前已經出現了基于人工智能技術,進行交互界面的圖像識別,自動創建可編輯的自動化腳本。隨著數據分析技術以及自然語言處理技術的不斷成熟,在自動化測試過程中的數據準備、腳本編輯以及結果驗證比對方面,將會發揮更大的應用。另外,對于測試結果以及缺陷的分析工作,也將隨著沉淀的數據規模增長,為數據分析提供更充分的原料。
面向開源軟件的檢測服務探索。中美貿易摩擦的發生,引起了大家對開源技術的進一步關注。開源代碼的應用與共享、缺陷分析、安全檢測和溯源工作,也成為了各家機構關注的重點。源代碼檢測工具的線上SaaS 化、以及跨工具的檢測結果整合分析,已經成為工具廠商和集成廠商的工作方向之一。源代碼的溯源、危險成分分析也是當下圍繞開源工作的熱門工作。
眾包。眾包測試(Crowdsourced Testing)是軟件測試的一個新興趨勢,它利用了眾包和云平臺的優勢、有效性和效率。允許招募大量的工作人員,圍繞特定的工作內容展開線上的協作工作。當下,圍繞數據采集、數據標注以及眾包測試等新型的創新工作方式,也成為一些公共測試服務平臺布局的功能之一。
隸屬于中國電子信息產業發展研究院的中國軟件評測中心與青云公司合作,部署了自己的私有云環境,物理節點40 多個,552 個物理CPU,2.3TB物理內存,40TB存儲空間,已經完成了云測試的遷移工作,針對主流的測試業務構建了大量的測試鏡像資源,能夠相對比較嫻熟的在云平臺上開展傳統的測評業務。
中國軟件評測中心正在探索研發一體化測試管理平臺,實現全程的信息化管理;積極開展微服務架構的測試、APM 技術的應用探索;針對工業互聯網的典型應用,開展工業時序數據庫產品的專項測評技術突破工作;另外圍繞醫療行業移動APP、工業互聯網平臺的業務需求,開發部署了線上實施數據的監測分析服務平臺,進一步延伸測評咨詢服務能力。