摘要:Quick Test Pro(簡稱QTP)是一款惠普公司出品的商用自動(dòng)化軟件功能測試的軟件。在QTP11.5版本之后更名為Unified Functional Testing(簡稱UFT)。選用UFT工具,在高校開展《自動(dòng)化功能測試工具》課程的教學(xué)工作。從教學(xué)實(shí)踐活動(dòng)中獲得了一些教學(xué)方面的總結(jié)和經(jīng)驗(yàn),工具軟件每年都可能面臨版本更替、軟件的淘汰,如何能夠?qū)W(xué)生授之以漁,降低他們在學(xué)習(xí)新工具的學(xué)習(xí)成本,能夠盡快上手,這才是在教學(xué)改革活動(dòng)中需要思考的首要問題。本文重點(diǎn)探討了自動(dòng)化功能測試工具課程的教學(xué)內(nèi)容、教學(xué)資源建設(shè)、教學(xué)實(shí)驗(yàn)思路、課程教學(xué)層次四個(gè)方面的改革。從而提高教學(xué)質(zhì)量,提升學(xué)生的實(shí)踐能力。
關(guān)鍵詞:Unified Functional Testing(簡稱UFT);自動(dòng)化功能測試工具;教學(xué)改革;
結(jié)合CDIO的工程教育理念,在高校軟件測試專業(yè)本科生開設(shè)自動(dòng)化功能測試工具初級課程提出改革探討,包括教學(xué)內(nèi)容、教學(xué)資源建設(shè)、教學(xué)實(shí)驗(yàn)思路、課程教學(xué)層次、課外教學(xué)延展五個(gè)方面。
自動(dòng)化功能測試軟件在市場上以Unified Functional Testing(簡稱UFT)和selenium軟件居多,因?yàn)閟elenium是開源軟件,所占市場份額越來越大,但是軟件測試專業(yè)學(xué)生普遍缺少對python或Java語言的深入掌握,selenium對于初學(xué)者來說,缺少通過簡單錄制就能自動(dòng)生成腳本的體驗(yàn)環(huán)節(jié),UFT能夠通過錄制自動(dòng)生成腳本,所以最終選擇UFT作為初級功能工具入門學(xué)習(xí)的首選。
一、教學(xué)內(nèi)容
根據(jù)選用教材,教學(xué)內(nèi)容覆蓋自動(dòng)化測試基礎(chǔ)、UFT工具使用、VBScript腳本編寫、自動(dòng)化測試框架。隨著教學(xué)活動(dòng)的開展,一些功能已發(fā)生變化,比如UFT自帶的驗(yàn)證點(diǎn)功能Standard Checkpoint,與CheckProperty驗(yàn)證點(diǎn)函數(shù)、自定義驗(yàn)證點(diǎn)Reporter函數(shù)進(jìn)行比較,檢查點(diǎn)功能太弱,CheckProperty方法只有Pass和Fail兩種結(jié)果,Reporter函數(shù)在工程應(yīng)用中很普遍,能適用各種程序邏輯中[1]。應(yīng)該認(rèn)真斟酌具有實(shí)踐價(jià)值的知識點(diǎn)。
二、教學(xué)資源建設(shè)
通過設(shè)定知識線路,安排教學(xué)進(jìn)度計(jì)劃、視頻資源建設(shè)、文字資源建設(shè)、參考腳本案例建設(shè)、調(diào)試出現(xiàn)的問題等幾個(gè)方面。每一個(gè)知識點(diǎn)內(nèi)資源建設(shè),包括測試腳本word格式、測試工程文件、AVI格式教學(xué)視頻文件、說明性文檔、調(diào)試中的問題。每一個(gè)視頻資源時(shí)長不超過15分鐘。制作系統(tǒng)性學(xué)習(xí)教程,主要用于教學(xué)參考、課下學(xué)生的自學(xué)參考。制作完成UFT初級基礎(chǔ)教程的完整實(shí)驗(yàn)工程文件,以UFT工具安裝包自帶的案例為測試對象,進(jìn)行相對完整的自動(dòng)化功能測試實(shí)驗(yàn)。
三、教學(xué)實(shí)驗(yàn)思路
工具軟件教學(xué)過程中的實(shí)驗(yàn)開展,應(yīng)該是多層次多維度的。并不強(qiáng)調(diào)在每一個(gè)知識點(diǎn)上重新制作一個(gè)全新的案例,而是在同一個(gè)案例上的多次增強(qiáng)和修改,這樣學(xué)習(xí)才有一定的知識連貫性。以涉及描述性編程的教學(xué)實(shí)驗(yàn)為例,給出以下八個(gè)層次的教學(xué)實(shí)驗(yàn)思路。
第一層次,學(xué)生在初學(xué)階段,可以采用UFT軟件自動(dòng)錄制測試執(zhí)行過程,并且保證回放成功。
第二層次,在自動(dòng)生成的腳本上完成with結(jié)構(gòu)、Function封裝等改造,并增強(qiáng)對可能出現(xiàn)的異常處理。
第三層次,在上一個(gè)版本上,要求測試數(shù)據(jù)預(yù)先存放在數(shù)據(jù)池DataTable對象中,腳本運(yùn)行時(shí)從DataTable中依次取出,實(shí)現(xiàn)腳本參數(shù)化。
第四層次,利用property屬性值進(jìn)行腳本描述性編程。增強(qiáng)對于對象庫Object Repository的管理、對象庫中的常見對象屬性名和屬性值、輔助屬性的熟悉和掌握。
第五層次,利用系統(tǒng)提供的Description對象,實(shí)現(xiàn)對象庫編程,以達(dá)到腳本更大程度的封裝和復(fù)用。
第六層次,利用外部Excel文件,測試數(shù)據(jù)從Excel文件工作表讀入到運(yùn)行時(shí)DataTable數(shù)據(jù)池對象,進(jìn)一步提高復(fù)用。
第七層次,因?yàn)镈ataTable數(shù)據(jù)池對象并不是一個(gè)在其他軟件中通用的數(shù)據(jù)格式,予以摒棄,采用編寫VBScript的Funtion函數(shù),來讀取指定文件路徑下Excel文件,完成輸入數(shù)據(jù)從外部Excel文件讀取,這樣,腳本與數(shù)據(jù)完全分離,從而降低耦合度。
第八層次,增加Excel中多組測試數(shù)據(jù),編寫Function函數(shù),實(shí)現(xiàn)輸出結(jié)果向Excel文件中進(jìn)行寫入,將輸出數(shù)據(jù)直接寫入指定位置的Excel文件單元格中。
四、課程教學(xué)層次
課程的層次由淺入深,包括語法基礎(chǔ)、設(shè)計(jì)模式[2]、自動(dòng)化測試框架的初步設(shè)計(jì)及實(shí)現(xiàn)。
框架概念是比較抽象的,可以鼓勵(lì)學(xué)生寫出框架[]的一些雛形。比如在多臺測試機(jī)的情況下,每臺都要環(huán)境配置比較麻煩,并需要保持配置一致。因此給出如下的教學(xué)案例。
將測試數(shù)據(jù)寫在Excel中,在運(yùn)行UFT時(shí),會進(jìn)行讀取Excel中數(shù)據(jù)來進(jìn)行測試。也可以將一些測試執(zhí)行的參數(shù)配置寫入Excel中,如用1和0表示是否,來進(jìn)行是否重啟IE、是否寫Log等動(dòng)作的控制,也可以寫入數(shù)字,來控制腳本的運(yùn)行次數(shù)。假定有一個(gè)Excel工作簿,包括一個(gè)以項(xiàng)目名稱為名的工作表,記錄測試數(shù)據(jù)是否運(yùn)行,輸入數(shù)據(jù)1,輸入數(shù)據(jù)2,預(yù)期結(jié)果,實(shí)際結(jié)果,成功次數(shù),失敗次數(shù),報(bào)告詳細(xì)描述幾個(gè)列,通過自定義Function函數(shù)對Excel指定單元格進(jìn)行讀取,做出是否執(zhí)行的判斷,如果執(zhí)行,記錄實(shí)際結(jié)果,并判斷成功或失敗,更新計(jì)數(shù)器的值。
五、結(jié)束語
本次課程改革集中在教學(xué)內(nèi)容、資源建設(shè)、實(shí)驗(yàn)思路、教學(xué)層次等方面。在改革過程中取得何種效果和持續(xù)改進(jìn),值得我們不斷斟酌和探索。
參考文獻(xiàn):
[1]余杰.趙旭斌.精通QTP-自動(dòng)化測試技術(shù)領(lǐng)航[J].[2012年1月].
[2]方智.面向?qū)ο缶幊趟季S的建立和培養(yǎng)[J].實(shí)驗(yàn)科學(xué)與技術(shù):2013,10(3):69-70
[3]張偉 周百順. 基于UFT-ALM框架的功能自動(dòng)化測試實(shí)踐[J].南方農(nóng)機(jī),2017年第14期
作者簡介:方智(1981-),女,講師,碩士,主要研究方向:軟件工程、軟件測試。
(作者單位:電子科技大學(xué)成都學(xué)院計(jì)算機(jī)系 成都)