莊子健
摘 要:本文從數(shù)字電視應(yīng)用項目的軟件測試實踐出發(fā),根據(jù)軟件測試基本原理和系統(tǒng)設(shè)計用例,選用合適的測試工具制定自動化測試腳本,有效地提高系統(tǒng)回歸測試質(zhì)量,提升回歸測試效率,確保產(chǎn)品質(zhì)量穩(wěn)定。
關(guān)鍵詞:自動化測試腳本;軟件測試;系統(tǒng)設(shè)計用例
1 引言
隨著軟件產(chǎn)品在各個應(yīng)用領(lǐng)域的普及,軟件的質(zhì)量問題逐漸成為人們關(guān)注的焦點。質(zhì)量不過關(guān)的軟件產(chǎn)品在使用中可能出現(xiàn)各種意想不到的問題。軟件使用者經(jīng)常發(fā)現(xiàn)一些已經(jīng)推向市場的產(chǎn)品,由于存在嚴重質(zhì)量缺陷而導(dǎo)致大量退貨,或者一再返工,進行長期的修改和維護。這樣不僅影響了軟件提供商的工作,額外提高了產(chǎn)品成本,也耽誤了客戶業(yè)務(wù)的開展,影響正常工作,甚至會產(chǎn)生嚴重的或災(zāi)難性的后果[1]。
本文中的項目產(chǎn)品為“TVNow”。TVNow系統(tǒng)是國內(nèi)SeaChange公司針對國內(nèi)市場推出的一套視頻服務(wù)產(chǎn)品,能夠為客戶提供實現(xiàn)媒體流點播,錄播,實時收看等多種媒體服務(wù)功能的硬件和軟件的架構(gòu)。筆者參與了這個項目的測試工作,主要負責系統(tǒng)中的隨心點播應(yīng)用的測試用例設(shè)計,測試的管理,測試文檔的維護,測試環(huán)境的搭建,自動化測試軟件的設(shè)計與開發(fā)以及ADI測試。
本課題研究主要從以下幾方面著手:⑴根據(jù)TVNow系統(tǒng)的需求設(shè)計測試用例。⑵針對測試的特點,開發(fā)出一套簡單易用的自動化測試腳本。⑶對整個自動化測試框架流程進行總體設(shè)計。⑷TVNow測試文檔的編寫與管理,在整個項目實施過程中,指定項目進度。本項目自動化測試的目標是:提升工作效率50%,加快測試進度50%,控制產(chǎn)品的bug數(shù)量在上一個版本中bug數(shù)量的50%以下。
2 數(shù)字電視平臺應(yīng)用性需求分析
數(shù)字電視交互業(yè)務(wù)平臺(Back Office)為各個業(yè)務(wù)的接入提供一個開放式的平臺,對內(nèi)屏蔽各業(yè)務(wù)系統(tǒng)的差異[2],對外屏蔽內(nèi)部各種復(fù)雜的業(yè)務(wù)邏輯,為新業(yè)務(wù)的快速接入提供有力的支撐。業(yè)務(wù)平臺層提供認證、鑒權(quán)、計費等業(yè)務(wù)控制能力和產(chǎn)品管理、內(nèi)容管理等能力,從而實現(xiàn)業(yè)務(wù)的可管理性與可運營性[3]。
2.1 TVBS系統(tǒng)簡介
本產(chǎn)品的工程實踐項目“TVBS”是SeaChange公司針對國內(nèi)市場推出的數(shù)字電視解決方案,為客戶提供多種方便、簡捷媒體服務(wù)功能的硬件和軟件的架構(gòu)。TVBS能將媒體提供的廣播節(jié)目錄制到存儲服務(wù)器,提供給數(shù)字機頂盒和PC客戶端進行點播。
TVNow系統(tǒng)可以主要實現(xiàn)以下三種功能:
2.1.1 隨心點播(Video-on-Demand,VOD)
2.1.2 隨心錄像(Network Personal Video Recorder,NPVR)
2.1.3 實時節(jié)目點播(Pause TV)
一種能讓用戶在電視廣播節(jié)目播送過程中,使用暫停,回放鍵來定格電視畫面和回放電視節(jié)目的點播功能。用戶可以實時觀看當前播放的電視廣播節(jié)目,并在觀看節(jié)目時進行暫停、回放等流控操作。
2.2 數(shù)字電視平臺功能性需求分析
數(shù)字電視平臺功能決定了系統(tǒng)軟件所要執(zhí)行的任務(wù)。TVBS產(chǎn)品主要有以下功能模塊:OTE接口模塊,OSS接口模塊和Nav接口模塊組成。
2.2.1 OTE接口模塊
需求定義及分析: 從機頂盒客戶端購買RVOD和促銷中的產(chǎn)品,OTE將會執(zhí)行促銷和優(yōu)惠規(guī)則,然后對用戶發(fā)布tickets,價格和租賃期限的相關(guān)信息。
用戶通過PO或優(yōu)惠券購買節(jié)目和節(jié)目包,機頂盒客戶端提交數(shù)據(jù)到OTE,OTE將會根據(jù)優(yōu)惠規(guī)則計算價格,發(fā)布tickets或優(yōu)惠券給用戶。
如果用戶是通過PO購買產(chǎn)品的,需要product offering id;如果用戶是通過優(yōu)惠券購買產(chǎn)品的,需要coupon id。該操作保證售出的產(chǎn)品可以播放并使用相應(yīng)的促銷或優(yōu)惠券。
返回數(shù)據(jù)是一個優(yōu)惠列表。OTE將會為每一個節(jié)目發(fā)布一個ticket。如果用戶購買一個節(jié)目包,第一個ticket將會是節(jié)目包的價格,其它ticket的價格為0;如果用戶購買的產(chǎn)品正在促銷買2送1,前兩個ticket將會是兩個節(jié)目的價格,第三個ticket 價格為0。測試方法是模擬STB發(fā)送http的請求,根據(jù)設(shè)置不同的參數(shù),來判斷返回的XML中判斷測試標準,測試環(huán)境要求:Windows 2003 Server, client網(wǎng)絡(luò)連接正常且有自己的IP。
測試點涉及:Device ID,Home ID,Product Offering ID, Coupon ID,Local Entry ID,Entry Type。
測試方法:通過測試頁面驗證參數(shù),在各類參數(shù)中輸入相應(yīng)的數(shù)據(jù)要求。
通過標準:檢查返回數(shù)據(jù)中的參數(shù),Transaction ID, Product Type,Transaction Time,Ticket ID,Ticket Type,Buy From,Price,Purchase Time,Effective Time, Expiration Time, View Status
2.2.2 OSS接口模塊
含有User Login,機頂盒下的用戶登錄;User Update password,更新已登錄用戶賬號密碼;Create User,創(chuàng)建新用戶;Add Favorite Item,該操作添加收藏夾節(jié)目到SMS。
它們都有各自的測試點,測試方法和通過標準。
2.2.3 Nav接口模塊
需求定義及分析:List Entry是將指定的導(dǎo)航過程中產(chǎn)生的Entry以文件數(shù)據(jù)方式列出。Entry是一種抽象的數(shù)據(jù),它可以是PO,Space,View,F(xiàn)older,節(jié)目包,節(jié)目或關(guān)聯(lián)節(jié)目中的任意一種數(shù)據(jù)。
2.3 數(shù)字電視平臺性能需求分析
2.3.1 分析角度
按照成熟的性能測試策略,從前端、服務(wù)端、網(wǎng)絡(luò)幾個層次來分析。(為以后的測試打下指標基礎(chǔ))前端:并發(fā)用戶數(shù);服務(wù)端:系統(tǒng)處理能力和硬件選型等;網(wǎng)絡(luò)端:網(wǎng)絡(luò)流量和帶寬。從軟件結(jié)構(gòu)分析,找出可能瓶頸。系統(tǒng)將來是否能夠滿足性能壓力?從軟件系統(tǒng)耗時功能分析。標準主體數(shù)據(jù)庫維護平臺:元數(shù)據(jù)樹的瀏覽,因為需要從多個表中構(gòu)建多一個元數(shù)據(jù),A市的數(shù)據(jù)量很大,所以應(yīng)該重點測試。數(shù)據(jù)庫結(jié)構(gòu)的創(chuàng)建,需要在數(shù)據(jù)庫中創(chuàng)建實例和結(jié)構(gòu),所以耗用時間長,需要測試。
2.3.2 用戶訪問量
目的:知道最大的并發(fā)用戶數(shù)。
用戶數(shù):調(diào)查了解和本項目相關(guān)的模塊,OSS、OTE、Nav或TianShan 4個模塊。以每個模塊訪問的數(shù)量按500至1000人計算,乘上4個模塊,合計為4000人次。檢查系統(tǒng)需要支持1000×4=4000人次的最大并發(fā)。
到目前為止,如果不在標準主題數(shù)據(jù)庫上面增加別的應(yīng)用,整個WFES端需要支持4000最大并發(fā)數(shù)。
3 數(shù)字電視平臺自動化測試框架的設(shè)計與實現(xiàn)
3.1 自動化測試框架的設(shè)計
一個自動化測試項目會有一個到多個測試場景(Scenario),而每個測試場景又會有一個到多個測試用例(Test Case)。
自動化測試配置到每個測試用例上,每個Scenario便包含了這些測試用例的載體,其本身不包含任何數(shù)據(jù)。
3.2 自動化測試框架的實現(xiàn)
3.2.1 數(shù)據(jù)準備模塊實現(xiàn)方法
數(shù)據(jù)準備模塊是整個自動化測試框架的執(zhí)行入口,它需要為整個執(zhí)行過程完成一個良好的鋪墊,所以執(zhí)行模塊不僅包括了執(zhí)行所有用例本身,還需要負責完成包括執(zhí)行之前的一系列動作。
3.2.2 主線程組模塊
測試腳本主線程組模塊的主要方法包括:瀏覽節(jié)目,訂錄并購買節(jié)目,點播節(jié)目。
3.2.3 性能測試的實現(xiàn)
根據(jù)軟件系統(tǒng)耗時功能分析, 用戶訪問量和系統(tǒng)業(yè)務(wù)量的混合業(yè)務(wù)分析,按照用戶的實際使用人數(shù)比例來模擬各個模塊的組合并發(fā)情況。混合業(yè)務(wù)測試特點是根據(jù)用戶使用系統(tǒng)的情況分成不同的用戶組進行并發(fā),每組的用戶比例要根據(jù)實際情況來匹配,通常會取各個相關(guān)模塊最大的并發(fā)用戶數(shù)目進行組合。
按照性能測試設(shè)計定義的每個模塊1000人次訪問并發(fā)量,配500個線程,單位1秒內(nèi)遞增,共計循環(huán)2次。⑴通過新建一個Test Plan,設(shè)置Thread Group。⑵設(shè)2個頁面接受模擬訪問,如OSS和OTE頁面。⑶添加幾個關(guān)鍵**,如Aggregate Graph、Graph Results、Summary Report、View Results in Table、View Results Tree等。
[參考文獻]
[1]William E.Perry.軟件測試的有效方法[M].清華大學出版社, 2008:20~200頁.
[2]許永明.IPTV:技術(shù)與應(yīng)用實踐[M].電子工業(yè)出版社,2006:19~28.
[3]盧官明,宗昉.IPTV技術(shù)及應(yīng)用[M].人民郵電出版社,2007:10~245頁.
[4]崔啟亮,胡一鳴.國際化軟件測試[M].電子工業(yè)出版社,2006:13~27頁.