秦文江 李換萍 黃澤 張鴻瑞 朱海蓉
摘要:由于云計算快速發(fā)展的不斷壯大,云測試技術也逐步成為最熱門的研究話題。軟件測試作為一種保證軟件產品質量的有效手段,具有更加敏捷,更加高效的特點,其作用也日益凸顯。在云平臺環(huán)境下的軟件測試技術在今天也是軟件測試領域的一種發(fā)展趨勢。該文旨在以軟件測試為前提,探討基于云計算的軟件測試技術的應用與發(fā)展。
關鍵詞:軟件測試;云計算;云測試
中圖分類號:TP311 ? ? ?文獻標識碼:A
文章編號:1009-3044(2019)14-0235-03
在今天的信息時代,云計算作為一種新型的計算模式,已經成為當前 IT 領域最熱門的詞匯之一,近年來,云計算的發(fā)展及應用成為一些學者、專家談論最熱烈的話題之一,在此基礎上,云測試技術的研究也逐漸成為熱點。那么,基于云計算的軟件測試技術作為測試領域的一種發(fā)展趨勢,它已成為如今人們就測試領域的又一探究目的。
1 云計算概述
我們知道云測試是在云計算的基礎上結合軟件測試技術發(fā)展而來的,那么在研究基于云計算的軟件測試技術之前,我們先來認識一下什么是云計算技術。根據文獻我們了解到云計算技術是一種由分布式計算技術、網絡計算技術和并行處理計算技術相結合并發(fā)展得來的新型計算模式,它在互聯網的依賴下,可以直接將一些共享資源和硬件信息提供給計算機,這些資源具有多用戶共享特性,可供用戶方便快捷的操作,可見云計算是一種新型且易擴展的動態(tài)計算模式[1]。
云計算作為一種新型技術,對分布式的處理、并行處理和分布式的數據庫存儲等一系列技術做了進一步的改善,在互聯網寬帶技術和虛擬化技術高速發(fā)展的今天才有云計算的萌發(fā)。隨著云計算的快速發(fā)展,計算機發(fā)展到今天的客戶端一服務器模式,這使得計算機的類型具有巨大的轉變,從而改變了人們獲取信息、軟件、硬件資源的途徑[2]。
2 基于云計算的軟件測試技術
2.1 云測試技術優(yōu)勢
云測試技術是一種新型測試方案,它以云計算平臺為基礎,是對軟件測試的進一步改善與拓展。對于云測試技術的實現則需要滿足以下兩個方面的條件:首先,云測試技術需擁有自身的測試手段、測試方法以及測試流程;其次,要求這些測試技術的流程、方法等能夠在云端實現[1]。用戶將相關測試工具與測試環(huán)境部署到云端,就可以在本地進行測試工作,方便又省力。如今用戶使用云測試技術,可以完成軟件或其他項目的性能、負載、功能等負面的測試,還可以完成自動化的測試,以及軟硬件環(huán)境的測試等。
云測試技術具有很多優(yōu)勢,在各個方面均有體現:1)減少人力及硬件資源:這是云測試技術最顯著的優(yōu)勢,使用云測試技術的時候,測試人員可以在指定硬件配置上利用相關技術在云平臺搭建測試環(huán)境,可以減少手工測試帶來的人力資源浪費,從而節(jié)省了人力資源和硬件資源。2)提供專業(yè)知識:在云測試技術下,用戶可以通過測試相關服務使用專業(yè)知識,如設計測試用例、制定測試計劃等,有利于用戶在云測試平臺的測試過程中加深對專業(yè)知識的使用[1]。3)降低成本:首先,在云測試技術中可以減少個人電腦、各種測試工具的購買實驗,測試人員只需要提供測試需求、測試環(huán)境搭建、需要涉及的虛擬機數,完成這些簡單工作后實現按需支付即可。其次,如今軟件技術的快速發(fā)展,一些測試環(huán)境已不能滿足測試的需求,就需要更新換代,毫無疑問要更新就需要做好維護,相應地就會有較高的費用。但是,在云測試環(huán)境中企業(yè)不需要為了這些因素而產生煩惱,企業(yè)只需要將其上交至提供云測試服務的供應商即可,供應商會解決這些問題。很顯然這樣可以極大地降低成本。4)提升效率:使用云測試技術,可以節(jié)省一些設備、工具的安裝,極大地減少了工作量。在進行測試之前,用戶首先將測試所需要的環(huán)境需求提交給云測試服務商,然后直接使用即可完成測試。這使得測試的效率有很大的提升。5)裝備完備:用戶可以使用云測試平臺完整的測試環(huán)境,云測試可以額外的為用戶提供其他附加服務。對于大規(guī)模的測試,云測試可以提供多臺測試客戶機,他們從主控機上下載測試用例,執(zhí)行并匯報測試結果,主控機將結果匯總后報告給測試人員[1]。
2.2 云測試技術挑戰(zhàn)
云計算在各領域的廣泛應用,自然滋生了一些附屬產品及功能屬性的應用,但由于基于云平臺的發(fā)展還沒有完全成熟,達到深入人心的效果,由此在云平臺下的軟件測試面臨著莫大的機遇和挑戰(zhàn),在此,通過查閱文獻書籍我們總結出云測試在許多方面所面臨的挑戰(zhàn)和不足:1)移動平臺:無論是云計算還是云測試,這些云應用都需要對智能手機終端及計算機等進行訪問,在手機終端和計算機上會出現基于云應用的移動Web版本界面,這就對本地終端的接口提出了更高的要求,因此要對本地應用的接口不斷地進行測試。2)性能測試:我們在實際進行測試的過程中,要使得云測試的性能測試達到最佳效果的測試相當弱,并且在許多特殊的情況下對性能測試的效果能夠達到最佳有較高需求,而對平均性能測試的要求較弱一些[1]。這就好比每逢雙十一淘寶為了更好地滿足用戶的需求,就需要進行最佳性能的測試,因此云計算軟件測試需要加強對最佳性能的測試。3)分布式的云測試:云計算不夠在不受空間的限制下,實現在其他不同方面的應用,因此分布式的云測試仍然是一項新的挑戰(zhàn)。4)斷開及連接測試:云環(huán)境中的軟件是一種連接模式的設計,其數據只在服務器端存儲,而在客戶端沒有數據的存儲,所以當連接斷開時將儲存在本地的數據,與連接測試時在服務器端儲存的數據能夠以某種技術相互聯系是又一挑戰(zhàn)。5)可移植性測試: 在私有云和公有云混合的情況下,應當能夠實現更高層次的測試功能,這樣能夠確保云的可移植特性,在未來的云測試技術研究過程中應當將可移植性測試作為重點研究方向[1]。
2.3 云環(huán)境下的軟件測試技術
2.3.1 自動化測試
自動化測試指通過系統或自動化的測試工具,將測試人員依靠手工逐步執(zhí)行測試用例的操作,使用自動化執(zhí)行的過程代替,它主要集中在自動執(zhí)行測試,包括實施和管理測試活動等內容。因為機器具有高可靠性和永不疲憊性的特性,可以幫助查找一些通過人工無法查找的性能bug。雖然稱為自動化測試,但有時也需要測試人員手動插入腳本的驗證點,因此自動化測試并不是完全自動的。即便如此,自動化測試也很大程度地降低了測試成本和時間,為測試人員和企業(yè)帶來更大的經濟效益。
下面來介紹自動化測試的三個重要發(fā)展階段:
第一階段:錄制和回放[2]。在使用自動化測試工具(如Loadrunner測試工具)時,你所做的一系列操作都會被錄制下來并形成腳本,在需要時還可以手動插入驗證點,之后再回放腳本。錄制腳本的過程就如同用錄像機錄像的過程,可見操作較簡單,也可以達到自動化測試的基本要求。使用測試工具錄制腳本仍存在缺陷:1)缺乏靈活性,它自身沒有判斷能力,因此容易記錄一些錯誤的或無用的信息,一旦測試的界面內容稍微發(fā)生變化,就需要錄制一個新的腳本完成后面的測試,可見測試腳本的可利用率極低。2)數據冗余:錄制腳本后測試腳本會保存所有操作的數據文件,這就使得操作數據和程序內的運算數據發(fā)生混淆,因此所錄制腳本的利用率很低。
第二階段:數據驅動[2]。可以實現從專有的數據文件(如數據池)中讀取數據,讀數據和操作過程的腳本實現了分離,并將這些測試數據通過變量的形式傳入事先錄制好的測試腳本中,且不同的數據文件對應于不同的測試用例。和最初的自動化測試相比,增加了檢查點的功能,即可以針對某個功能點進行功能和屬性的檢查,以此來判斷該功能是否正確實現,提高了腳本的利用率,但是同樣受到被測軟件界面變化的影響。
第三階段:關鍵字驅動[2]。該測試技術在數據驅動方式上做了一些新的改進,相比于前兩個階段,具有更好的可靠性和靈活性。它將測試邏輯按照關鍵字進行分解,形成一個已經篩選好的關鍵字數據表,經過篩選后表格內容包括一些特性數據以及相關的操作記錄,需要將表格存儲在數據庫指定的位置,其中關鍵字驅動比較重要的三個內容就是操作對象、操作及值。因為不同的數據保存在不同的模塊,調用起來相當方便,大大提高了錄制測試腳本的可利用率,并且更加安全可靠。
根據自動化測試的發(fā)展趨勢和流程,我們由此可得出自動化測試的框架主要由以下三部分組成:1)測試用例的自動生成;2)測試工具的自動執(zhí)行;3)測試報告可以自動生成。自動化測試的整體框架如圖1所示:
2.3.2 云測試平臺
云測試平臺是云計算技術為測試提供服務的載體,工作人員將所需測試工具、測試數據等資源部署到服務器上,并向用戶提供調用接口,用戶只需要通過云測試平臺的前端創(chuàng)建測試項目,上傳測試腳本,即可完成測試工作,最后查看并分析測試結果,用戶并不需要了解云測試平臺是如何完成測試的,這樣節(jié)省了測試時間、人力資源。
根據文獻3我們了解到云測試平臺的架構設計分為IaaS 層、TaaS 層和用戶層。其中最底層IaaS 是指基礎設施即服務,該層主要實現虛擬化的物理資源,使得用戶可以同時擁有大量的硬盤和資源來進行更好的測試,也有對云平臺和測試框架的管理,并通過虛擬技術為測試用戶提供倉儲、計算和網絡等資源;中間層TaaS指測試即服務,它提供了一種按需的軟件測試服務,主要實現測試項目的管理、測試代碼的分析與預處理,通過與數據庫服務器的交互,來保存用戶創(chuàng)建的測試項目和上傳的測試腳本,并通過與上下層的交互,完成測試環(huán)境的自動配置,生成測試報告;用戶層則為最頂層,該層主要是面向用戶服務,用戶可以通過互聯網對此接口訪問云平臺,便可以進行自己所需要的測試。云測試平臺的整體架構如圖2所示:
3 基于云計算軟件測試的應用
3.1 云測試在學術界的應用
我們都知道,任何一門技術在學術界,教育界都會有著不同的教育方式,云測試在學術界也具有一定影響力。在我國,云測試技術的應用主要體現在國內相關學者與他國的專家、學者進行的相關研究與交流,旨在探尋新技術、新發(fā)展,可以在軟件測試的基礎上有進一步的拓展。通過查閱參考相關資料,我們了解到國外一些高校就云測試方面所做的一些研究,日本駐波大學的一個教授帶領他的團隊在討論實踐中開發(fā)出一個基于云計算的軟件測試平臺,在一般的軟件測試平臺中不支持故障插入技術,而他們的開發(fā)正好克服了自動化測試的這一缺陷,成了行業(yè)領域下的里程碑。另外,在芬蘭的拉普蘭塔理工大學的一些學者主要針對在云計算環(huán)境下軟件測試和預期的軟件質量之間的關系做了研究,“測試即服務”這個新的概念模型也正是有他們提出的,之后他們又對此進行進一步完善、補充、應用、實踐等環(huán)節(jié),此概念模型再云領域下也取得了很好的成就。此外,國內很多學者也致力于研究云計算環(huán)境下的軟件測試,就關于測試的資源調度和優(yōu)化處理算法等方面取得了很大的進展[4]。對于這樣的行業(yè)趨勢中,云測試雖然還沒有達到深入人心的境界,但它已經擁有自己的圈子,才有討論與發(fā)展、策略與技術、敢作為、有新意的這樣一個新興潮流方向,為學術界帶來了新的研究方向。
3.2 云測試在工業(yè)界的應用
對于不斷更新迭代的知識來說,利用好它才會發(fā)揮它最好的價值。對于云測試技術,它具有很好的商業(yè)技術前景。各大商業(yè)平臺,IT巨頭也敏銳地嗅到了這個商機,抓住機會并在此方面上進行創(chuàng)新,基于現在的發(fā)展水平,能夠較完善的提供云測試服務的網絡平臺并不是很多。Testin云測試服務,Cloud Testing測試云,這兩家企業(yè)是目前在云測試領域站的較高較穩(wěn)的,他們在賺取利潤的同時也為新型軟件的發(fā)展盡了自己的一份力。他們的平臺在云計算涉及的領域主要有私有云、公共云和混合云這三種類型,提供自行測試和測試外包這兩種不同的業(yè)務模式。綜上所述,我們可以得出云測試在工業(yè)界的主要應用涉及以下三個方面:1)測試人員可以在云平臺上使可用多種不同的測試工具完成項目測試;2)云測試的服務商給予企業(yè)或專業(yè)人員測試的服務;3)用戶可以搭建不同的環(huán)境進行不同類型的軟件或項目測試。4)用戶可以根據自己的需求,軟件的類型規(guī)格,不同的測試環(huán)境,測試成本的高低,來選擇值得信賴或者對企業(yè)發(fā)展更有利的測試平臺進行測試,從而達到云平臺供應商和用戶雙贏的一個互惠互利的商業(yè)合作[4]。
4 云測試的未來發(fā)展方向
在我們看來,云測試技術是一個欣欣向榮的發(fā)展產業(yè),但是在它的蓬勃發(fā)展之路,仍然存在很多待解決及難以解決的問題,因此就不能夠滿足用戶的測試需求。以下是我們了解到的一些云測試面臨的問題:1)在我國國內,針對云測試技術的研究仍處于萌芽階段,技術尚未淺,因而不能全面滿足用戶的測試需要,還待做很多改進與完善,達到進一步的發(fā)展。2)同時,安全性和可靠性對于云測試至關重要,是云領域需要特別關注的兩個特性[5-6]。因為技術的不成熟,測試成本不確定,也讓云測試的劣勢逐漸的大于它的優(yōu)勢。但是,我們對于云測試技術研究一直沒有停止,專家學者們花費大量的時間研究如何提高在云環(huán)境下軟件測試的效率,降低它的成本,在云領域的路上越走越遠。基礎越牢,后期發(fā)展才能越穩(wěn)健,對于新的研究熱點,我相信云測試技術會有大好的前程,在互聯網的推動下,一步步地做大做強,為用戶帶來福音,成為改變人們在云環(huán)境下進行軟件測試新的里程碑。
5 結束語
在云計算的不斷發(fā)展以及云測試模式的不斷深化的今天,云測試必然將大規(guī)模的遍及軟件技術研發(fā)中。固然,云測試這種新型模式從萌生到今天,也飽受業(yè)內人士的質疑,以至于會面臨許多待解決的問題,目前云測試的運用仍然在它的初級階段?;谠朴嬎丬浖y試技術的發(fā)展還需我們不斷的努力,不斷地拓展與完善,才能使得云測試技術更好地應對應用方面的挑戰(zhàn)和困難,才容易讓用戶在短時間內接受和認可,只有這樣才能夠實現基于云計算軟件測試技術的廣泛應用。云計算技術以互聯網為前提,我們相信在不遠的未來必定成為人們日常生活的一部分。
參考文獻:
[1] 王明珠. 基于云計算的軟件測試技術探索與研究[J]. 無線互聯科技, 2015(22): 10-11.
[2] 高麗萍. 云環(huán)境下自動化測試的研究與實現[D]. 西安: 西安工業(yè)大學, 2016.
[3] 陳平, 周坤, 董長青, 等. 基于云計算的軟件測試技術研究[J]. 電腦知識與技術, 2015, 11(28): 65-67.
[4] 王文東, 劉繼梅, 王嵃灝, 等. 基于云計算環(huán)境下的軟件測試研究[J]. 電腦知識與技術, 2017(27).
[5] 王清玲, 張文靜. 云計算環(huán)境下的軟件測試研究[J]. 電腦迷, 2017(5).
[6] 趙濤. 基于云計算的軟件測試技術探索與研究[D]. 西安: 西安電子科技大學, 2014.
【通聯編輯:謝媛媛】