手機(jī)作為專用的消費(fèi)類電子產(chǎn)品需要進(jìn)行以下測試:可靠性測試(對于硬件則是RQT;對于軟件則是field trial);標(biāo)準(zhǔn)符合性測試(FTA);互操作性測試(IOT);安全性測試(安規(guī)測試);強(qiáng)度測試等。
其中,有些種類的測試,例如FTA,有嚴(yán)格的標(biāo)準(zhǔn)(GSM、3GPP等)來明確被測的功能點(diǎn),測試人員所要做的是在測試用例的編寫中體現(xiàn)出這些功能點(diǎn),并且盡量營造這些測試用例所需的運(yùn)行環(huán)境來完成測試,并反饋測試結(jié)果。但是對于性能測試,就沒有這樣的規(guī)范供測試人員來參考,因此性能測試需要進(jìn)行哪些用例以及用例通過的指標(biāo)的高低都有很大彈性,在很大程度上受限于測試人員的經(jīng)驗(yàn)和項(xiàng)目的資源和進(jìn)度壓力。如何在資源、進(jìn)度和質(zhì)量之間找到平衡點(diǎn)是產(chǎn)品負(fù)責(zé)人需要考慮的問題,測試人員可以左右的是劃定性能測試的范圍、明確與性能測試相關(guān)的設(shè)計(jì)需求(提高產(chǎn)品的可測試性)以及通過自動(dòng)化測試工具等手段來進(jìn)行更加有效的性能測試,提高產(chǎn)品的質(zhì)量。
一、手機(jī)性能測試的范圍
性能測試強(qiáng)調(diào)長時(shí)間、重復(fù)或者高強(qiáng)度的進(jìn)行某些操作,來驗(yàn)證產(chǎn)品在各種極限條件下的表現(xiàn)。性能測試隸屬于軟件測試中的系統(tǒng)測試,它對軟件在集成系統(tǒng)中運(yùn)行的性能行為進(jìn)行測試,旨在及早確定和消除軟件中與構(gòu)架有關(guān)的性能瓶頸。通過對測試數(shù)據(jù)和log的分析,還可能找出被測系統(tǒng)隱藏的缺陷。終端作為移動(dòng)通訊類電子產(chǎn)品,其性能測試又主要和其實(shí)現(xiàn)的功能相關(guān),大致可分為以下幾類:
1. 時(shí)間相關(guān)。
時(shí)間相關(guān)的性能測試可分為長時(shí)間保持測試和限定時(shí)間反應(yīng)測試。
長時(shí)間保持測試主要是測試終端長時(shí)間穩(wěn)定進(jìn)行某項(xiàng)功能的能力。主要包括長時(shí)間待機(jī)能力、長時(shí)間CS域業(yè)務(wù)保持能力、長時(shí)間PS域業(yè)務(wù)保持能力、長時(shí)間組合業(yè)務(wù)保持能力等。長時(shí)間待機(jī)測試,就是根據(jù)手機(jī)電池的能力連續(xù)不間斷待機(jī)一定時(shí)間(例如4天),之后驗(yàn)證手機(jī)是否還能夠發(fā)起主叫和被叫業(yè)務(wù),能夠發(fā)起主叫,表示終端在長時(shí)間待機(jī)后自身還處于正常狀態(tài),能夠發(fā)起被叫,說明終端在睡眠模式下可以正常接收尋呼。長時(shí)間CS域業(yè)務(wù)保持測試,就是根據(jù)手機(jī)電池的能力連續(xù)不間斷進(jìn)行語音通話或者視頻通話一定時(shí)間(例如2小時(shí)),測試通話期間圖象聲音是否連續(xù)、清晰,是否有單通現(xiàn)象出現(xiàn),是否會有手機(jī)板子過熱現(xiàn)象。長時(shí)間PS域業(yè)務(wù)保持測試,主要是通過持續(xù)進(jìn)行WWW業(yè)務(wù)、ftp業(yè)務(wù)或者流媒體業(yè)務(wù)一定時(shí)間(例如2小時(shí)),測試進(jìn)行數(shù)據(jù)業(yè)務(wù)期間上下行數(shù)據(jù)傳輸率是否穩(wěn)定,網(wǎng)頁顯示是否流暢,流媒體播放是否連續(xù)等。長時(shí)間組合業(yè)務(wù)保持測試,就是同時(shí)保持CS和PS域業(yè)務(wù)一段時(shí)間,以驗(yàn)證終端長時(shí)間進(jìn)行組合業(yè)務(wù)的能力。
限定時(shí)間反應(yīng)測試主要是測試終端在規(guī)定時(shí)間內(nèi)對用戶的操作作出反應(yīng),給出操作結(jié)果的能力。主要包括開機(jī)駐留時(shí)延、關(guān)機(jī)時(shí)延、CS域業(yè)務(wù)接入時(shí)延、PS域業(yè)務(wù)接入時(shí)延、本地應(yīng)用的操作時(shí)延等。開機(jī)駐留時(shí)延,是指從用戶按下開機(jī)鍵(終端上電、系統(tǒng)引導(dǎo)、啟動(dòng)任務(wù)、搜索網(wǎng)絡(luò)、完成位置更新)到終端進(jìn)入待機(jī)界面,提示用戶可以進(jìn)行正常服務(wù)的總時(shí)間。關(guān)機(jī)時(shí)延,是指從用戶按下關(guān)機(jī)鍵(終端完成網(wǎng)絡(luò)detach、將RAM中修改過的數(shù)據(jù)寫回flash)到終端完全下電所需的總時(shí)間。CS域業(yè)務(wù)接入時(shí)延,是指在進(jìn)行語音或視頻電話時(shí)從按下?lián)芴栨I到聽到對方回鈴聲所需總時(shí)間,由于該過程需要在網(wǎng)絡(luò)側(cè)分配資源,所以測試結(jié)果可能會受到當(dāng)前網(wǎng)絡(luò)資源可用程度的影響,例如在網(wǎng)絡(luò)負(fù)荷高的時(shí)候申請CS 64k業(yè)務(wù)時(shí),網(wǎng)絡(luò)側(cè)需要重新組織或合并無線資源來滿足業(yè)務(wù)要求,所需時(shí)間相對會長一些。PS域業(yè)務(wù)接入時(shí)延,是指在進(jìn)行數(shù)據(jù)業(yè)務(wù)時(shí)從開始連接到能正常進(jìn)行數(shù)據(jù)業(yè)務(wù)所需總時(shí)間。本地應(yīng)用的操作時(shí)延,是指完成某些本地操作維護(hù)功能所需的時(shí)間,例如打開電話薄,在電話薄里查找聯(lián)系人,存儲新建的聯(lián)系人,存儲短信,存儲多媒體文件,打開瀏覽器,播放多媒體文件等所需時(shí)延,這些時(shí)延如果過長,也會極大地降低用戶體驗(yàn)的滿意度。
2. 次數(shù)相關(guān)。
次數(shù)相關(guān)的性能測試是測試終端重復(fù)穩(wěn)定地進(jìn)行某項(xiàng)功能的能力。包括開關(guān)機(jī)成功率、小區(qū)初搜成功率、小區(qū)重選成功率、CS域業(yè)務(wù)成功率、PS域業(yè)務(wù)成功率、組合業(yè)務(wù)成功率、切換成功率、本地應(yīng)用的成功率等。這種重復(fù)操作包括很多對象被多次創(chuàng)建和釋放,因此可能會發(fā)現(xiàn)潛在的內(nèi)存泄漏等問題。開關(guān)機(jī)成功率測試,主要是檢驗(yàn)多次開機(jī)是否會有物理層不能正確收到初搜命令的情況,關(guān)機(jī)不完全也可能會導(dǎo)致下一次開機(jī)失敗,以及在某些情況下系統(tǒng)死機(jī)后只能通過插拔電池板來重新開機(jī)。CS域業(yè)務(wù)成功率的測試,是指通過進(jìn)行一定次數(shù)的主叫或者被叫,統(tǒng)計(jì)失敗的次數(shù),對失敗原因進(jìn)行歸類,分析是否能夠找到和終端相關(guān)的失敗原因。 PS域業(yè)務(wù)成功率、組合業(yè)務(wù)成功率、切換成功率的測試方法也類似。本地應(yīng)用的成功率包括多次存儲再刪除文件、聯(lián)系人、短信等操作,以及多次打開某個(gè)應(yīng)用或執(zhí)行某類操作來對該應(yīng)用的穩(wěn)定性進(jìn)行測試,找出瓶頸。
3. 并發(fā)業(yè)務(wù)。
并發(fā)測試主要是測試終端同時(shí)進(jìn)行多項(xiàng)業(yè)務(wù)時(shí)表現(xiàn)出的處理能力。例如同時(shí)進(jìn)行CS域語音業(yè)務(wù)和PS域下載業(yè)務(wù),或者在MP3播放的同時(shí)進(jìn)行WWW上網(wǎng)業(yè)務(wù),以測試協(xié)議棧、操作系統(tǒng)和處理器對并發(fā)業(yè)務(wù)的支持能力。
4. 負(fù)載測試。
負(fù)載測試主要是驗(yàn)證系統(tǒng)的負(fù)載工作能力。系統(tǒng)配置不變的條件下,在一定時(shí)間內(nèi),終端在高負(fù)載情況下的性能行為表現(xiàn)。例如同時(shí)進(jìn)行多個(gè)ftp下載,使下行傳輸率接近極限值,觀察終端是否可以正常工作。
二、手機(jī)性能測試的方法
手機(jī)性能測試的方法按照自動(dòng)化程度不同可分為手工測試和自動(dòng)測試。
手工測試主要是通過測試人員手動(dòng)操作,并借助某些監(jiān)測儀器和工具,來驗(yàn)證手機(jī)性能。但由于手機(jī)功能眾多,并且性能測試工作量大,如果單個(gè)測試工程師靠手動(dòng)按鍵來執(zhí)行所有測試用例,花費(fèi)的時(shí)間少則幾小時(shí),多則需要幾天的時(shí)間,這樣耗費(fèi)大量測試時(shí)間的同時(shí)也容易讓測試工程師產(chǎn)生疲倦甚至是厭倦心理,很容易造成測試的遺漏。手機(jī)測試中常碰到很多重復(fù)性高的工作,如發(fā)送數(shù)條 SMS 或者 MMS 以驗(yàn)證其收發(fā)成功率以及穩(wěn)定性、連續(xù)進(jìn)行多次呼叫、多次對文件系統(tǒng)進(jìn)行添加刪除操作、多任務(wù)多進(jìn)程情況下的沖突測試以及極限測試等等,都是重復(fù)性高的工作,手動(dòng)執(zhí)行的話費(fèi)時(shí)費(fèi)力,如果能有一套自動(dòng)執(zhí)行的機(jī)制,將能大大提高測試的效率。
由此產(chǎn)生了對手機(jī)自動(dòng)化測試工具的需求。手機(jī)這種板機(jī)的MMI功能測試不同于基于PC上的MMI測試,后者借助PC平臺,目前市場上已有非常多功能強(qiáng)大且通用的自動(dòng)測試工具支持其測試,如比較典型的有Winrunner, Robot, LoadRunner等等,但這些工具通常不能兼容到象手機(jī)這種嵌入式系統(tǒng)中來。這就要求測試人員能夠基于當(dāng)前平臺進(jìn)行二次開發(fā),來滿足自動(dòng)化測試的需求。
手機(jī)的自動(dòng)化性能測試一般分為以下幾個(gè)步驟進(jìn)行:
1. 系統(tǒng)分析
將系統(tǒng)的性能指標(biāo)轉(zhuǎn)化為性能測試的具體目標(biāo)。通常在這一步驟里,要分析被測系統(tǒng)結(jié)構(gòu),結(jié)合性能指標(biāo),制定具體的性能測試實(shí)施方案。這要求測試人員對被測系統(tǒng)結(jié)構(gòu)和實(shí)施業(yè)務(wù)的全面掌握。
2. 建立虛擬用戶腳本
將業(yè)務(wù)流程轉(zhuǎn)化為測試腳本,通常指的是虛擬用戶腳本或虛擬用戶。虛擬用戶通過驅(qū)動(dòng)一個(gè)真正的客戶程序來模擬真實(shí)用戶。在這一步驟里,要將各類被測業(yè)務(wù)流程從頭至尾進(jìn)行確認(rèn)和記錄,弄清這些過程可以幫助分析到每步操作的細(xì)節(jié)和時(shí)間,并能精確地轉(zhuǎn)化為腳本。此過程類似制造一個(gè)能夠模仿人的行為和動(dòng)作的機(jī)器人過程。這個(gè)步驟非常重要,在這里將現(xiàn)實(shí)世界中的單個(gè)用戶行為比較精確地轉(zhuǎn)化為計(jì)算機(jī)程序語言。如果對現(xiàn)實(shí)世界的行為模仿失真,不能反映真實(shí)世界,性能測試的有效性和必要性也就失去了意義。
3. 根據(jù)用戶性能指標(biāo)創(chuàng)建測試場景
根據(jù)真實(shí)業(yè)務(wù)場景,對生成的測試腳本進(jìn)行復(fù)制和控制,轉(zhuǎn)化為滿足性能測試指標(biāo)的測試用例集。在這個(gè)步驟里,對腳本的執(zhí)行制定規(guī)則和約束關(guān)系。具體涉及到對業(yè)務(wù)類型,并發(fā)時(shí)序等參數(shù)的設(shè)置。這好比是指揮腳本運(yùn)行的司令部。這個(gè)步驟十分關(guān)鍵,往往需要結(jié)合用戶性能指標(biāo)進(jìn)行細(xì)致地分析。
4. 運(yùn)行測試場景,同步監(jiān)測應(yīng)用性能
在性能測試運(yùn)行中,實(shí)時(shí)監(jiān)測能讓測試人員在測試過程中的任何時(shí)刻都可以了解應(yīng)用程序的性能優(yōu)劣。系統(tǒng)的每一部件都需要監(jiān)測:協(xié)議棧,MMI應(yīng)用程序,內(nèi)存占用情況,驅(qū)動(dòng)程序運(yùn)行狀態(tài)等。實(shí)時(shí)監(jiān)測可以在測試執(zhí)行中及早發(fā)現(xiàn)性能瓶頸。
5. 性能測試的結(jié)果分析和性能評價(jià)
結(jié)合測試結(jié)果數(shù)據(jù),分析出系統(tǒng)性能行為表現(xiàn)的規(guī)律,并準(zhǔn)確定位系統(tǒng)的性能瓶頸所在。在這個(gè)步驟里,可以利用數(shù)學(xué)手段對大批量數(shù)據(jù)進(jìn)行計(jì)算和統(tǒng)計(jì),使結(jié)果更加具有客觀性。在性能測試中,需要注意的是,能夠執(zhí)行的性能測試方案并不一定是成功的,成敗的關(guān)鍵在于其是否精確地對真實(shí)世界進(jìn)行了模擬。
(AM 8:00-12:00 PM 14:00-18:00)