• 測(cè)試用例的提取并執(zhí)行
在回歸以及后期的驗(yàn)證測(cè)試過(guò)程中,測(cè)試工程師或者程序員對(duì)應(yīng)提取由 <<*.PTE 文本 >> 和測(cè)試樁組成的測(cè)試用例,執(zhí)行后生成一份 << 實(shí)際的測(cè)試運(yùn)行 trace 信息 >> ,保存該信息,從而測(cè)試執(zhí)行結(jié)束。
• 測(cè)試結(jié)果分析,生成測(cè)試報(bào)告
測(cè)試結(jié)果的分析可以自動(dòng)和手動(dòng)執(zhí)行,手動(dòng)執(zhí)行可以通過(guò) Beyond Compare 工具比較 << 預(yù)期的測(cè)試結(jié)果報(bào)告 >> 和 << 實(shí)際的測(cè)試運(yùn)行 trace 信息 >> ,即可以得出一份測(cè)試的執(zhí)行報(bào)告。
自動(dòng)生成測(cè)試報(bào)告比較復(fù)雜,需要在 pc 中用高級(jí)語(yǔ)言建立一個(gè)測(cè)試管理中心,該管理中心可用 VC 或者 C++ 等高級(jí)語(yǔ)言編寫(xiě),在該管理中心中,用戶(hù)可以選擇需要執(zhí)行的 PTE 腳本或者多個(gè)腳本串成的一組腳本,該測(cè)試管理中心可以指定測(cè)試用例的自動(dòng)執(zhí)行,自動(dòng)提取對(duì)應(yīng)的結(jié)果做自動(dòng)比較分析,從而生成一份對(duì)應(yīng)的測(cè)試報(bào)告,如果無(wú)差異,輸出文件中只顯示 OK ,否則輸出差異信息文件。
• 實(shí)際應(yīng)用 :
下面以待機(jī)下呼叫 1001 共 100 次來(lái)測(cè)試呼叫成功率的例子來(lái)說(shuō)明上述方案的應(yīng)用。下面是該例的錄制,腳本編寫(xiě),及實(shí)際運(yùn)行的例子。
• 錄制按鍵事件 .
首先運(yùn)行 optitrace.exe 程序
設(shè)置 trace 選項(xiàng) , 只選擇 application layer 中的 ALTraceUHMess
后手機(jī)開(kāi)機(jī),跑動(dòng) trace ,測(cè)試工程師針對(duì)某一功能或者某一組測(cè)試用例執(zhí)行一次完整連續(xù)的測(cè)試,得到按鍵信息
后測(cè)試執(zhí)行結(jié)束后,保存該按鍵 trace 信息,做好版本記錄信息。生成對(duì)應(yīng)事件的按鍵列表《呼叫 1001 共 100 次 .TXT 》文檔, 該 TXT 文檔內(nèi)容完全同上圖所示內(nèi)容,在次不再重復(fù)。
• 生成 PTE 腳本:
因?qū)嶋H optitrace 只錄制按鍵消息,需要將這些按鍵消息轉(zhuǎn)換為 PTE 命令并生成工 optitrace 工具運(yùn)行的 *.PTE 腳本。而通常按鍵事件眾多,手動(dòng)逐一生成 PTE 腳本非常麻煩,因此需要做一個(gè)文件轉(zhuǎn)換工具,逐行提取按鍵消息轉(zhuǎn)換成 PTE 命令,并做一些相應(yīng)的注釋。
將以上按鍵列表轉(zhuǎn)換為 PTE 命令列表,生成《呼叫 1001 共 100 次 .PTE 》文件
• 編寫(xiě)測(cè)試樁:
編寫(xiě)測(cè)試代碼對(duì)需要檢測(cè)的路徑、邏輯覆蓋、信息流、數(shù)據(jù)流和控制流等做測(cè)試跟蹤,在檢測(cè)點(diǎn)輸出有效的 trace 信息。
該測(cè)試用例比較簡(jiǎn)單,在此只列舉該測(cè)試任務(wù)中需要關(guān)注的呼叫是否成功,記錄實(shí)際呼叫成功的次數(shù),具體呼叫函數(shù)、以及邏輯覆蓋因篇幅有限不列舉,設(shè)計(jì)一計(jì)數(shù)器( NumOfCallSuclearcase/" target="_blank" >ccess ),如果呼叫成功,該計(jì)數(shù)器累加 1 ,并且每次呼叫后用 printf 語(yǔ)句在 optitrace 工具上輸出該計(jì)數(shù)器的實(shí)際值。
在呼叫窗口的處理函數(shù)中,對(duì)網(wǎng)絡(luò)返回的 GSM 消息進(jìn)行統(tǒng)一處理,在返回的回鈴音處理消息中檢測(cè)呼叫成功即可,如下所示:
case GSMAlerting: // 成功接收回鈴消息
if(NumOfCallSuccess < 100) GSMprintf(" ====NumOfCallSuccess=%d====== ",
++ NumOfCallSuccess); // 呼叫成功
else
{
NumOfCallSuccess =0;
GSMprintf(" ====== NumOfCallSuccess = %d====== ", NumOfCallSuccess);
}
break;
• 結(jié)合以上測(cè)試樁,運(yùn)行《呼叫 1001 共 100 次 .PTE 》,生成預(yù)期的測(cè)試結(jié)果報(bào)告,《呼叫 1001 共 100 次 trace.TXT 》的 trace 跟蹤記錄文件,作為實(shí)際測(cè)試運(yùn)行結(jié)果比較的依據(jù)。
• 自動(dòng)運(yùn)行《呼叫 1001 共 100 次 .PTE 》,測(cè)試結(jié)束后目錄下共有以下文件:
《呼叫 1001 共 100 次 .PTE 》:測(cè)試運(yùn)行的腳本
《呼叫 1001 共 100 次 trace.TXT 》:預(yù)期的測(cè)試結(jié)果文本, Txt 格式。
《呼叫 1001 共 100 次 trace2.TXT 》:實(shí)際運(yùn)行的 trace log 結(jié)果,被管理工具轉(zhuǎn)換后的 TXT 文本。
《呼叫 1001 共 100 次 .Txt 》:測(cè)試后生成的測(cè)試報(bào)告文件, TXT 格式。
• 總結(jié):
本文結(jié)合杰爾系統(tǒng)( Agere system )中開(kāi)發(fā)套件 optitrace 工具的使用,從 PTE 腳本的制作,到回歸測(cè)試中腳本的測(cè)試運(yùn)行,介紹了一個(gè)測(cè)試團(tuán)隊(duì)在手機(jī)功能級(jí)測(cè)試中采用的自動(dòng)化方案,本團(tuán)隊(duì)在實(shí)際的使用中感受了該自動(dòng)化測(cè)試方案所帶來(lái)的樂(lè)趣和效率,在此著成本文供大家一起探討,后感謝本文的所有讀者,如果您能從中汲取一點(diǎn)有用的營(yíng)養(yǎng),得到一些幫助,那我將感到無(wú)限的欣慰,這也是我整理這篇手機(jī)自動(dòng)測(cè)試資料的初衷。
由于時(shí)間倉(cāng)促水平有限,錯(cuò)誤之處在所難免,敬請(qǐng)廣大讀者批評(píng)指正。