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