王和棟
(廣州粵能電力科技開發(fā)有限公司,廣東 廣州 510080)
省級電能計量系統(tǒng)主站功能自動化測試介紹及應(yīng)用
王和棟
(廣州粵能電力科技開發(fā)有限公司,廣東 廣州 510080)
基于省級電能計量系統(tǒng)主站,使用主流的測試工具對功能進行自動化測試,取代傳統(tǒng)的手工測試。設(shè)計自動化測試流程,并根據(jù)設(shè)計的測試流程對選取的電能計量系統(tǒng)5個核心功能進行自動化測試,在過程中分析測試反映的問題并加以改進,總結(jié)出一套切實可行的自動化測試方法。通過兩輪測試,自動化測試的覆蓋率達到100%,測試結(jié)果正確無誤。測試結(jié)果表明,該方法能夠客觀有效地測試功能開發(fā)質(zhì)量,提高測試的效率。
電能計量系統(tǒng);主站;功能;自動化測試;應(yīng)用
省級電能計量系統(tǒng)是各電網(wǎng)公司根據(jù)各個層面的管理需要開發(fā)的對變電站、電廠、專變大客戶、公變和低壓客戶計量點安裝配套智能計量設(shè)備,采集電能量及電氣數(shù)據(jù),進行綜合展現(xiàn)、分析和處理的系統(tǒng)。該系統(tǒng)較為龐大,在功能開發(fā)測試的過程中通用的軟件功能測評方法并不能完全適用于電能計量系統(tǒng)主站的測評工作,需要根據(jù)電能計量系統(tǒng)主站自身特點,研究有針對性的功能測評方法,以指導(dǎo)電能計量系統(tǒng)主站測評工作,為功能的完善和應(yīng)用作支撐。
軟件功能測試是指根據(jù)軟件產(chǎn)品功能規(guī)范、需求說明書等技術(shù)文檔,對軟件產(chǎn)品的功能進行驗證性測試,以確定其是否滿足開發(fā)要求的過程。軟件功能測試也稱黑盒測試或數(shù)據(jù)驅(qū)動測試,是把測試對象看作一個黑盒子,關(guān)注軟件產(chǎn)品的功能,不需要關(guān)注軟件產(chǎn)品的內(nèi)部結(jié)構(gòu)和處理過程。
傳統(tǒng)的軟件功能測試一般采用手工測試,由測試人員根據(jù)需求說明書對軟件功能進行逐項測試,并判斷是否符合要求。但是現(xiàn)代軟件趨向大型化、高復(fù)雜度,手工測試已經(jīng)不能滿足現(xiàn)代軟件功能測試的要求。
軟件功能自動化測試就是通過測試工具或其他手段,按照測試工程師的預(yù)定計劃對軟件產(chǎn)品進行自動測試,它是軟件測試的一個重要組成部分。自動化測試可以完成手工測試難以完成的工作,減少測試開銷,提高測試的工作效率[1-3]。一個自動化測試框架就是一個由假設(shè)、概念以及為自動化測試提供支持的實踐的集合[4]。在自動化測試框架下,采用自動比較技術(shù),可以自動完成測試用例執(zhí)行結(jié)果的判斷,從而避免人工比對存在的疏漏問題。正確、合理地實施自動化測試,能夠快速、全面地對軟件功能進行測試,從而提高軟件質(zhì)量,節(jié)省經(jīng)費,縮短產(chǎn)品發(fā)布周期。
借用外部成熟的測試工具,吸取成功的測試自動化經(jīng)驗,可以在測試實施過程中降低技術(shù)難度、縮短測試自動化開發(fā)周期[5]。目前,主流的軟件功能自動化測試工具有IBM公司的Rational Functional Tester(簡稱RFT)、惠普公司的QuickTest Professional(簡稱QTP)等。
軟件功能自動化測試一般包括制定測試計劃、搭建測試環(huán)境、設(shè)計測試用例、編寫測試腳本、執(zhí)行測試、分析測試結(jié)果等過程。其流程如圖1所示。
圖1 軟件功能自動化測試流程圖
本次測試針對運行中的電能計量系統(tǒng)主站新增以及需求變更的功能。
4.1 業(yè)務(wù)需求分析
業(yè)務(wù)熟悉階段通過對電能計量系統(tǒng)主站的各個模塊結(jié)合文檔和實際系統(tǒng)來熟悉系統(tǒng)業(yè)務(wù),電能計量系統(tǒng)主站主要功能是對電能量數(shù)據(jù)進行收集,并對采集的數(shù)據(jù)進行管理、統(tǒng)計和分析,因此,在熟悉業(yè)務(wù)的過程中要重點關(guān)注以下要素:模塊功能、信息統(tǒng)計分析的數(shù)據(jù)來源、統(tǒng)計條件參數(shù)、每個統(tǒng)計功能的統(tǒng)計算法、統(tǒng)計對象。
實施過程中測試團隊根據(jù)系統(tǒng)的業(yè)務(wù)特點,對其進行模塊的劃分,統(tǒng)計對象、統(tǒng)計參數(shù)、統(tǒng)計算法的整理,形成業(yè)務(wù)需求整理列表,在需求分析階段對系統(tǒng)不熟悉或者不確定的功能點或統(tǒng)計算法進行整理,形成問題列表,并對問題列表進行解答,從而完善需求分析。
4.2 業(yè)務(wù)場景設(shè)計與評審
在進行自動化功能測試的時候,項目會根據(jù)其實際情況及特點選擇部分業(yè)務(wù)需求實現(xiàn)自動化,以最大發(fā)揮自動化功能測試優(yōu)勢和價值,因此對于測試場景的選取就顯得比較重要。以下是選擇測試場景可采用的一些基本依據(jù):系統(tǒng)核心業(yè)務(wù)、多種條件組合導(dǎo)致測試方法很多的業(yè)務(wù)、數(shù)據(jù)條件不同導(dǎo)致流程分支不同的業(yè)務(wù)、使用頻率較高的業(yè)務(wù)。
在具體設(shè)計測試場景的過程中,針對以上功能模塊進行業(yè)務(wù)的整理后,對系統(tǒng)的功能點進行重要級別的劃分,對是否為核心業(yè)務(wù)、能否通過自動化測試工具進行自動化測試減輕測試工作量等方面進行分析和整理,并且對選取的業(yè)務(wù)場景分別組織內(nèi)部審核和外部評審。
4.3 測試用例設(shè)計與評審
根據(jù)評審修改后的業(yè)務(wù)場景設(shè)計測試用例,分析整理每個業(yè)務(wù)場景的功能、數(shù)據(jù)來源、統(tǒng)計算法、需要驗證的功能。
通過對每個業(yè)務(wù)場景功能的分析和整理,針對每個業(yè)務(wù)場景的功能特點,設(shè)計每個測試用例的測試策略(等價類劃分、邊界值分析、因果分析等),整理需要參數(shù)化的參數(shù)、需要驗證的驗證點及其統(tǒng)計算法、執(zhí)行每個步驟的前提條件、操作步驟、輸入數(shù)據(jù)、預(yù)期結(jié)果以及參數(shù)化時數(shù)據(jù)準(zhǔn)備的相關(guān)要求。
在設(shè)計測試用例過程中對于每個腳本具體的功能點的統(tǒng)計算法、涉及的表/字段之間的關(guān)系,通過整理和分析形成每個驗證點的基準(zhǔn),由于大多數(shù)的業(yè)務(wù)是統(tǒng)計算法,因此統(tǒng)計算法的正確性直接決定了預(yù)期結(jié)果的準(zhǔn)確性,從而影響著判斷系統(tǒng)實際結(jié)果的準(zhǔn)確性。在設(shè)計測試用例的過程中確保了需求的覆蓋率,測試用例設(shè)計為后面的腳本錄制工作做好了鋪墊。
4.4 腳本錄制與完善
4.4.1 測試環(huán)境
測試環(huán)境的準(zhǔn)備過程包括被測系統(tǒng)的環(huán)境部署以及數(shù)據(jù)庫的部署和準(zhǔn)備、測試工具的安裝并確保能正常運行。在執(zhí)行的過程中要確保被測系統(tǒng)及測試環(huán)境數(shù)據(jù)庫的獨立性,而且在執(zhí)行功能自動化測試之前,要確保系統(tǒng)基本穩(wěn)定。
4.4.2 測試腳本錄制和編寫
通過自動化測試工具來錄制或手動編寫測試腳本,錄制完成后調(diào)試測試腳本,確保腳本在執(zhí)行測試的時候不會影響執(zhí)行效果,并且腳本的錄制一定要結(jié)合業(yè)務(wù)流程的梳理、依據(jù),對流程所涉及的頁面進行整理分析,通過腳本錄制或編寫的方式整理測試腳本庫。
4.5 測試執(zhí)行
利用自動化測試工具執(zhí)行測試,以檢測系統(tǒng)的實際結(jié)果與預(yù)期結(jié)果是否一致,從而判斷測試的通過與失敗。在執(zhí)行測試的過程中應(yīng)對每個測試用例、每行測試數(shù)據(jù)都全部執(zhí)行到位,確保測試用例的執(zhí)行率。在執(zhí)行測試的過程中可能由于腳本的不完善導(dǎo)致回放失敗,這時就需檢查腳本的正確性,修改腳本、調(diào)試腳本、回放測試,這個過程可能會存在多次迭代。
4.6 測試實施應(yīng)用
應(yīng)用以上介紹的計量主站功能自動化測評技術(shù)分析成果,將電能計量系統(tǒng)的數(shù)據(jù)導(dǎo)入測試數(shù)據(jù)庫,并搭建相同版本的系統(tǒng)進行功能自動化測試。根據(jù)對系統(tǒng)業(yè)務(wù)需求的分析,選取5個可實現(xiàn)自動化測試的核心應(yīng)用場景分別設(shè)計測試用例,并整理了測試策略需要參數(shù)化的參數(shù)分別進行測試的腳本錄制和編寫。表1為5個核心業(yè)務(wù)場景選取依據(jù)以及測試策略。
表1 業(yè)務(wù)核心場景選取依據(jù)及測試策略
對表1中的業(yè)務(wù)場景分別指定測試用例,并執(zhí)行測試,在測試執(zhí)行過程中對每個測試腳本的每行測試數(shù)據(jù)做到了全面測試。測試分兩輪進行,在對第一次測試失敗的測試數(shù)據(jù)進行了腳本和算法的檢查后進行第二輪測試。所有測試用例全面執(zhí)行了測試,覆蓋率達到了100%。
第一輪測試在所選擇的5個測試場景中,有1個測試用例執(zhí)行時有失敗的記錄,為表1中的第一項“應(yīng)用分析”中的電量統(tǒng)計(表2),通過分析發(fā)現(xiàn)是由于此次的測試環(huán)境數(shù)據(jù)庫數(shù)據(jù)不是完整的數(shù)據(jù),從而導(dǎo)致了測試失敗。針對修復(fù)缺陷后的版本,利用自動化腳本進行回歸測試,經(jīng)過回歸測試,用例全部通過驗證。
表2 測試失敗腳本分析
在功能自動化測試實施過程中測試人員以測試流程為指導(dǎo)來開展工作,通過對本次項目的研究過程的分析,對業(yè)務(wù)場景的分析及腳本編制,為測試的執(zhí)行奠定了基礎(chǔ)。在測試執(zhí)行和結(jié)果分析階段,我們事先列好每個測試腳本的執(zhí)行記錄表格,逐個測試、逐個記錄分析測試結(jié)果,確保測試用例的全面測試。通過兩輪的測試保障,測試用例全部通過。測試結(jié)果分析表明,自動化測試在準(zhǔn)確性方面可以達到與手工測試同樣的效果,測試結(jié)果可靠,如果應(yīng)用推廣開來將對后續(xù)的測試正確性以及效率有較大的提升。
[1](美)達斯汀,(美)加瑞特,(美)高夫.自動化軟件測試實施指南[M].余昭輝,范春霞,譯.北京:機械工業(yè)出版社,2010
[2]鄧正宏,高邐,鄭玉山.面向?qū)ο笞詣踊瘻y試框架的研究與設(shè)計[J].微電子學(xué)與計算機,2005(2)
[3]周娟.基于Web功能測試的自動化框架實現(xiàn)與應(yīng)用的研究[D].長沙:中南大學(xué),2009
[4]朱菊,王志堅,楊雪,等.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[J].計算機技術(shù)與發(fā)展,2006(5)
[5]張斌.精通QTP與自動化測試框架設(shè)計實戰(zhàn)[M].北京:電子工業(yè)出版社,2010
2014-06-03
王和棟(1984—),男,海南文昌人,在讀碩士研究生,研究方向:電能計量自動化、企業(yè)管理。