王 游,馮曙明,何金陵,方 泉
(1.江蘇電力信息技術(shù)有限公司,江蘇 南京 210009;2.江蘇省電力公司信息通信分公司,江蘇 南京 210024)
自動(dòng)化測試技術(shù)因其低成本和高可重復(fù)性在大型軟件的開發(fā)中占有重要地位。如在大型企業(yè)級ERP 系統(tǒng)開發(fā)過程中,智能自動(dòng)化測試技術(shù)是保障其軟件質(zhì)量的重要手段。一些跨國公司對此已經(jīng)有了系統(tǒng)研究[1-2],而國內(nèi)企業(yè)隨著信息化建設(shè)的提升,也對此提出了新的要求。本文介紹的面向流程的自適應(yīng)自動(dòng)化測試系統(tǒng)(以下簡稱系統(tǒng)),就是根據(jù)國家電網(wǎng)公司的現(xiàn)代信息化企業(yè)建設(shè)需求而開發(fā)。國家電網(wǎng)公司近年來引進(jìn)SAP 軟件,根據(jù)自身需求開發(fā)ERP 系統(tǒng)實(shí)現(xiàn)企業(yè)管理信息化[3-4]。在系統(tǒng)建立過程中,為了確保ERP 系統(tǒng)流程的正確性需要進(jìn)行大量的測試工作[2,5],特別是ERP 中復(fù)雜的流程經(jīng)常需要進(jìn)行大量回歸測試。這些測試通常使用腳本測試技術(shù),呈現(xiàn)以下3 個(gè)特點(diǎn):
1)測試量大:ERP 系統(tǒng)中包含大量流程,每個(gè)流程又包含多個(gè)功能點(diǎn)。為了測試一個(gè)功能點(diǎn)的正確性,可能涉及多種類型的測試[6],例如界面類Dialog測試、服務(wù)類Web Service 測試、接口類IDOC 以及BAPI 測試、數(shù)據(jù)移植類LSMW 測試、遠(yuǎn)程工作流RFC測試等。這些測試需要使用到大量不同類型的測試腳本。
2)測試復(fù)雜:測試的復(fù)雜性首先表現(xiàn)在大量不同類型的測試,如何把這些大量測試組合在一起是個(gè)艱巨的任務(wù);其次是ERP 流程的復(fù)雜性,使得測試變得復(fù)雜,如何使測試能夠正確反映原來流程的對應(yīng)關(guān)系蔚為重要;還有不同類型測試腳本間的相互配合也十分復(fù)雜。
3)重復(fù)性較高:雖然流程測試使用了大量不同類型的測試腳本,但是同樣數(shù)量巨大的功能點(diǎn)中也存在了很多相似的功能,如界面類、服務(wù)類功能等,可以使用結(jié)構(gòu)類似而用例不同的腳本測試。
現(xiàn)有的單個(gè)測試方法已不能適應(yīng)企業(yè)業(yè)務(wù)流程的迅速變化[7]。為了滿足以上的測試特性,必須開發(fā)新的測試系統(tǒng)解決ERP 系統(tǒng)的流程測試問題。自動(dòng)化測試技術(shù)適合解決重復(fù)的大量測試問題,進(jìn)一步數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測試能夠滿足對結(jié)構(gòu)相似功能的重復(fù)回歸測試要求[6],能很好地應(yīng)對以上特性。本文介紹的測試系統(tǒng)基于腳本測試技術(shù)和數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測試技術(shù),又考慮了腳本管理和對流程變更的自適應(yīng)問題,最終形成了自適應(yīng)的自動(dòng)化測試系統(tǒng)。其中,腳本管理是為了合理組織和使用大量的異構(gòu)測試腳本,并為腳本的數(shù)據(jù)交互奠定基礎(chǔ)。而對流程變更的自適應(yīng)考慮則是為了增加系統(tǒng)的自動(dòng)化程度,減少測試成本,提高測試的正確率。下文將結(jié)合具體的業(yè)務(wù)流程說明該系統(tǒng)運(yùn)行過程。
優(yōu)秀的軟件系統(tǒng)能夠助力企業(yè)發(fā)展,但是同時(shí)一旦軟件出現(xiàn)問題也會(huì)給企業(yè)造成巨大的損失[8-9]。這就需要測試技術(shù)來保障軟件的正確性。特別是對于規(guī)模龐大的SAP 應(yīng)用系統(tǒng),需要使用自動(dòng)化測試技術(shù)來大量、低成本地測試系統(tǒng)正確性。在Rudolf 等人的研究中,就指明了企業(yè)自動(dòng)化測試的重要性,并提出了企業(yè)自動(dòng)化系統(tǒng)的自動(dòng)測試框架,總結(jié)了他們在自動(dòng)化測試的實(shí)踐中所得經(jīng)驗(yàn)和建議[2]。同時(shí),他們還介紹了多種企業(yè)自動(dòng)化系統(tǒng)中使用的測試方法和工具。相似地,文獻(xiàn)[10]和文獻(xiàn)[11]也提出了新的測試方法和工具提高自動(dòng)化測試的效率,而在文獻(xiàn)[12]和文獻(xiàn)[13]中作者介紹了目前常用的幾種自動(dòng)化測試工具及其應(yīng)用,并分析了選擇自動(dòng)化測試工具的方法。然后,結(jié)合軟件自動(dòng)化測試的實(shí)施程序,又探討了測試工具在軟件自動(dòng)化測試中的應(yīng)用。結(jié)合企業(yè)實(shí)例,Achatz 等人研究了Siemens 公司的軟件質(zhì)量保證技術(shù)[1],而Angerer 等人給出鋼鐵企業(yè)軟件測試的實(shí)例研究[14]。這些研究體現(xiàn)了測試在軟件生命周期中的重要性,并且指出使用多種測試技術(shù)對于保障企業(yè)軟件系統(tǒng)的重要性。相比較,同時(shí)研究企業(yè)應(yīng)用實(shí)例,而侯桂波等人[3]和王文[4]的研究則更為具體,他們重點(diǎn)討論了在國家電網(wǎng)SAP 系統(tǒng)中的測試技術(shù),相關(guān)實(shí)現(xiàn)和控制方法。當(dāng)前還有很多其他研究討論了企業(yè)系統(tǒng)的測試問題,但各自解決的問題不同,且尚有不少問題等待研究,如本文在SAP 項(xiàng)目中針對流程正確性自動(dòng)化測試的研究還很少。本文將在國家電網(wǎng)SG-ERP 的應(yīng)用背景下提出針對流程正確性的自動(dòng)化測試方案,解決測試系統(tǒng)中腳本管理、自適應(yīng)變更、腳本自動(dòng)協(xié)作等問題。
該系統(tǒng)的主要應(yīng)用場景是對ERP 系統(tǒng)中流程進(jìn)行自適應(yīng)的回歸測試。ERP 系統(tǒng)中流程可以被分為三層結(jié)構(gòu):流程、功能點(diǎn)和任務(wù)。以較為簡單的“非招標(biāo)服務(wù)需求計(jì)劃提報(bào)”流程為例(結(jié)構(gòu)如圖1 所示),該流程下包含3 個(gè)功能點(diǎn),每個(gè)功能點(diǎn)又有若干個(gè)任務(wù)組成。在系統(tǒng)中,流程的運(yùn)行表現(xiàn)為任務(wù)的順序執(zhí)行,該流程的任務(wù)順序?yàn)槿蝿?wù)層中任務(wù)按從上到下順序執(zhí)行。
圖1 “非招標(biāo)服務(wù)需求計(jì)劃提報(bào)”流程的結(jié)構(gòu)圖
測試流程的正確性,即測試流程下各功能點(diǎn)能夠正常執(zhí)行,其核心就是測試每個(gè)任務(wù)功能是否正確,并且任務(wù)序列是否能按正確路徑完成。因此,流程測試應(yīng)包含2 個(gè)方面:1)測試每個(gè)任務(wù)的正確性,主要由對應(yīng)腳本測試;2)測試任務(wù)序列的正確性,由所有測試腳本相互協(xié)作完成測試,并通過監(jiān)測測試過程中的輸出及最后腳本的總輸出來判斷測試結(jié)果。測試運(yùn)行過程如圖2 所示,測試腳本和任務(wù)相互對應(yīng),兩序列平行執(zhí)行,即測試腳本既參與任務(wù)序列的執(zhí)行,又不影響任務(wù)序列的執(zhí)行次序。測試過程開始時(shí)需輸入測試用例和腳本運(yùn)行計(jì)劃,然后測試平臺會(huì)按照腳本計(jì)劃依次調(diào)用相應(yīng)腳本測試任務(wù),并監(jiān)測腳本測試結(jié)果,最后分析最終結(jié)果。
圖2 系統(tǒng)測試過程
在圖2 中,測試用例和腳本計(jì)劃需要在測試過程之前形成。為了更高的可復(fù)用性,系統(tǒng)采用數(shù)據(jù)驅(qū)動(dòng)的自動(dòng)化測試方法[6],將測試用例放在單獨(dú)的文件中由測試腳本讀取。而腳本計(jì)劃則自適應(yīng)流程測試需要由系統(tǒng)自動(dòng)生成。因此,測試系統(tǒng)分為3 個(gè)部分功能:測試管理部分,測試運(yùn)行部分和結(jié)果分析部分,范圍如圖3 所示。3 部分功能的主要內(nèi)容如下:
1)測試管理部分:合理組織大規(guī)模異構(gòu)腳本,維護(hù)腳本與功能任務(wù)關(guān)系,維護(hù)腳本之間關(guān)系;
2)測試運(yùn)行部分:組織運(yùn)行流程變更后的回歸測試,具體包括:自適應(yīng)流程變更制定腳本運(yùn)行計(jì)劃,按計(jì)劃組織測試腳本,執(zhí)行腳本,實(shí)時(shí)判斷腳本執(zhí)行情況等;
3)結(jié)果分析部分:生成腳本執(zhí)行日志并分析得出結(jié)果。
系統(tǒng)的3 部分相互獨(dú)立,增加系統(tǒng)的靈活性。因?yàn)槟_本的增減和修改,以及腳本間的關(guān)系變化都可以在管理部分完成,與測試過程獨(dú)立,使得測試過程可以執(zhí)行多種腳本計(jì)劃。如此,當(dāng)業(yè)務(wù)流程發(fā)生變化需要回歸測試時(shí),系統(tǒng)可以自適應(yīng)地組織腳本計(jì)劃參與測試而不影響測試過程。
因此,系統(tǒng)的總體設(shè)計(jì)如圖3 所示,測試管理部分把原始測試腳本自動(dòng)轉(zhuǎn)換為具有通用接口的標(biāo)準(zhǔn)腳本,并參考業(yè)務(wù)邏輯維護(hù)任務(wù)關(guān)系及腳本和任務(wù)關(guān)系。之后,測試運(yùn)行階段通過2 種方式觸發(fā):1)人工輸入腳本運(yùn)行計(jì)劃;2)流程發(fā)生變更,系統(tǒng)自動(dòng)搜集受影響的任務(wù),生成自適應(yīng)腳本運(yùn)行計(jì)劃。接收到腳本運(yùn)行計(jì)劃后,系統(tǒng)會(huì)從測試庫中按照計(jì)劃組織腳本序列并轉(zhuǎn)入運(yùn)行。運(yùn)行過程中,所有腳本被加載到測試平臺運(yùn)行,系統(tǒng)實(shí)時(shí)檢測腳本運(yùn)行結(jié)果和運(yùn)行消息。直至測試后,系統(tǒng)會(huì)通過執(zhí)行情況總覽和運(yùn)行日志展示測試結(jié)果。
圖3 面向流程的自適應(yīng)自動(dòng)化測試系統(tǒng)測試過程
圖4 用腳本庫層次化管理任務(wù)腳本及其屬性
ERP 系統(tǒng)的測試需要使用多種腳本,其龐大的數(shù)量使得其自身管理就是測試工作中的一個(gè)難題[8]。本文使用腳本庫來管理各種類型的任務(wù)及其對應(yīng)測試腳本(如圖4 所示),通過構(gòu)建樹形目錄的方式,分層次管理任務(wù)和其對應(yīng)腳本的關(guān)系,使任務(wù)和腳本的關(guān)系清晰,使任務(wù)腳本的創(chuàng)建、編輯和尋找簡單。同時(shí),腳本庫負(fù)責(zé)維護(hù)任務(wù)腳本屬性,如圖4中所示的任務(wù)名稱、任務(wù)ID、實(shí)現(xiàn)類型和對應(yīng)腳本名稱等。其中,任務(wù)ID 是任務(wù)的唯一性標(biāo)識,對應(yīng)腳本名稱明確了任務(wù)和腳本的對應(yīng)關(guān)系。除此之外,使用腳本庫管理腳本還能解決以下幾個(gè)問題:
1)腳本的統(tǒng)一接口:系統(tǒng)中涉及多種類型的腳本,而流程測試要求腳本間相互協(xié)作,能交換數(shù)據(jù)。腳本庫為此定義了標(biāo)準(zhǔn)接口,并在添加腳本時(shí)自動(dòng)檢測、轉(zhuǎn)換腳本接口。接口的轉(zhuǎn)換過程如圖5 所示,在ERP 中的原始腳本可能包含的參數(shù)有:Tables、Changs、Changs Value、Using、Using Value,它們被自動(dòng)轉(zhuǎn)換為2 個(gè)XML 格式的String 串:Import、Export(格式如圖5 所示),在使用時(shí)析取節(jié)點(diǎn)Values 下的<Name、Value >值對即可。XML 具備強(qiáng)大的描述能力,良好的結(jié)構(gòu)和通用性,十分適合用來描述通用接口[15]。
2)腳本的備份和恢復(fù):腳本庫依賴腳本數(shù)據(jù)庫和SVN 版本化文件系統(tǒng)(FSFS)支持。腳本數(shù)據(jù)庫存儲(chǔ)腳本屬性、腳本關(guān)系和腳本在FSFS 中存儲(chǔ)地址,F(xiàn)SFS 永久保存腳本文件。利用數(shù)據(jù)庫的定時(shí)備份功能,腳本庫以半個(gè)月為周期定時(shí)備份。另外,腳本庫在有重大更新后也將不定時(shí)備份存檔。當(dāng)腳本庫出現(xiàn)缺陷時(shí),可以從備份數(shù)據(jù)庫恢復(fù)最近版本。
3)腳本的版本控制:版本控制主要針對單個(gè)腳本,保證測試腳本和開發(fā)代碼保持一致。腳本版本由數(shù)據(jù)庫中腳本版本號記錄,版本控制工具SVN 控制。
4)腳本的自適應(yīng)協(xié)作:以上3 點(diǎn)在已有的研究中已有實(shí)現(xiàn)[16],本文在腳本管理上更強(qiáng)調(diào)腳本的動(dòng)態(tài)關(guān)系建立和維護(hù)。因?yàn)樵贓RP 中流程是動(dòng)態(tài)相關(guān)的,即在不同業(yè)務(wù)場景下的業(yè)務(wù)流程也有可能不同。所以,作為測試動(dòng)態(tài)流程的測試腳本也應(yīng)該具有自適應(yīng)能力,能夠自動(dòng)適應(yīng)流程變化相互協(xié)作。作為自適應(yīng)協(xié)作的基礎(chǔ),腳本庫維護(hù)腳本和流程,以及腳本和腳本的關(guān)系,這種關(guān)系會(huì)在測試時(shí)幫助系統(tǒng)決定哪些腳本要加入腳本計(jì)劃參與測試運(yùn)行。
圖5 腳本庫中腳本轉(zhuǎn)換和腳本通用接口格式
在流程測試中,測試系統(tǒng)首先要能識別流程對象。在系統(tǒng)中,流程對象以任務(wù)序列的形式展現(xiàn),并在腳本庫中維護(hù)該序列,即維護(hù)流程中各流程間的相互關(guān)系。腳本庫通過可視化配置的方式維護(hù)任務(wù)關(guān)系,然后系統(tǒng)根據(jù)圖4 中的任務(wù)和腳本關(guān)系,明確腳本和任務(wù)及腳本和腳本之間的聯(lián)系??梢暬夹g(shù)將數(shù)據(jù)聯(lián)系以顯而易見的連線方式表現(xiàn)出來,顯著降低了測試人員的學(xué)習(xí)成本和發(fā)生配置錯(cuò)誤的概率[16]??梢暬渲玫暮笈_是腳本數(shù)據(jù)庫,配置界面以連線的方式表現(xiàn)任務(wù)在數(shù)據(jù)庫中的關(guān)聯(lián)關(guān)系,并以連線的左右位置表示任務(wù)序列順序和數(shù)據(jù)的傳入傳出關(guān)系,詳細(xì)的配置界面如圖6 所示。
圖6 腳本庫中腳本配置示例
在圖6 中,流程、功能點(diǎn)和任務(wù)以樹形目錄形式陳列,在右側(cè)窗口可以用連線的方式來設(shè)置任務(wù)運(yùn)行順序和數(shù)據(jù)聯(lián)系。以“非招標(biāo)服務(wù)需求計(jì)劃提報(bào)”流程為例,“提報(bào)項(xiàng)目服務(wù)需求計(jì)劃”任務(wù)在連線最左側(cè)表示其運(yùn)行順序最前。其右側(cè)連接“部門審批提交接口”和“創(chuàng)建服務(wù)采購訂單”任務(wù),表示其輸出數(shù)據(jù)“E_CGSQH”(采購申請)和“E_CGSQHXMH”(請求項(xiàng)目)將作為“后兩者的輸入數(shù)據(jù)。
本系統(tǒng)解決的首要問題是業(yè)務(wù)流程的自適應(yīng)回歸測試問題。為了增加系統(tǒng)的可用性,如圖3 所示,系統(tǒng)有以下2 種方式開始測試:
1)測試員配置運(yùn)行計(jì)劃,并啟動(dòng)測試;
2)業(yè)務(wù)流程發(fā)生變更后,測試系統(tǒng)自動(dòng)判斷相關(guān)流程,并根據(jù)需求組織腳本計(jì)劃。
在1)的情況中,主要是由測試人員控制。在2)的情況中,則是測試工具適應(yīng)流程變更的自動(dòng)化測試,系統(tǒng)會(huì)在變更發(fā)生后首先判斷受變更影響的業(yè)務(wù)對象,即功能點(diǎn)下任務(wù)對象,形成可供選擇的測試任務(wù)列表(如圖7 所示),此時(shí)測試人員可以裁剪任務(wù)對象。然后,系統(tǒng)根據(jù)對象唯一標(biāo)示ID 和圖6 中配置的關(guān)聯(lián)關(guān)系,找到對應(yīng)測試腳本形成腳本運(yùn)行計(jì)劃進(jìn)入測試運(yùn)行,如圖8 所示。
圖7 自適應(yīng)受影響任務(wù)對象選擇列表
圖8 面向流程的自動(dòng)化測試系統(tǒng)運(yùn)行圖
該自適應(yīng)過程的核心是2 個(gè)關(guān)聯(lián)過程:
1)根據(jù)發(fā)生變更的任務(wù)找到相關(guān)受影響任務(wù)形成待執(zhí)行任務(wù)列表,其實(shí)現(xiàn)依據(jù)的是圖6 中配置的任務(wù)關(guān)系,系統(tǒng)判斷有邏輯聯(lián)系的任務(wù),即在圖6 中連線可達(dá)的任務(wù),為相關(guān)受影響任務(wù);
2)根據(jù)任務(wù)列表中的任務(wù)對象ID 找到對應(yīng)測試腳本,其實(shí)現(xiàn)依靠的是腳本庫中管理的任務(wù)-腳本對應(yīng)關(guān)系。最后形成的腳本計(jì)劃建立在這2 個(gè)核心關(guān)聯(lián)過程之上,即將相關(guān)測試腳本按照配置好的任務(wù)關(guān)系組織成腳本運(yùn)行計(jì)劃。
在測試運(yùn)行過程中,腳本間的相互協(xié)作主要體現(xiàn)在腳本數(shù)據(jù)的流轉(zhuǎn),腳本的輸入數(shù)據(jù)不僅是固定的測試用例,還會(huì)接受相關(guān)流程任務(wù)的動(dòng)態(tài)數(shù)據(jù),這也是流程測試不同于傳統(tǒng)測試的重要方面。例如,在“非招標(biāo)服務(wù)需求計(jì)劃提報(bào)”流程中,“創(chuàng)建服務(wù)采購訂單”任務(wù)就需要接收“提報(bào)項(xiàng)目服務(wù)需求計(jì)劃”任務(wù)執(zhí)行產(chǎn)生的動(dòng)態(tài)數(shù)據(jù),如采購申請數(shù)據(jù)等。這種自由的、實(shí)時(shí)的數(shù)據(jù)交換功能得益于統(tǒng)一的數(shù)據(jù)接口和明確的腳本關(guān)系。統(tǒng)一的數(shù)據(jù)接口保證不同類型腳本間數(shù)據(jù)交換的可行性,明確的腳本關(guān)系指明了數(shù)據(jù)交換的方向和交換的具體內(nèi)容。在系統(tǒng)中,數(shù)據(jù)交換過程完成自動(dòng)完成,既減少了測試的工作量,又保證了數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性。
如圖2 所示,本系統(tǒng)對測試結(jié)果的判斷包括2 方面,一是單個(gè)腳本運(yùn)行結(jié)果判斷,另一是腳本運(yùn)行最終結(jié)果的判斷。前一個(gè)針對單個(gè)任務(wù)的正確性,后一個(gè)可以判斷任務(wù)序列的正確性。系統(tǒng)判斷正確性的方式包括值監(jiān)測和消息檢測2 個(gè)方面。值監(jiān)測即傳統(tǒng)的比對測試運(yùn)行值和期望值,如果運(yùn)行結(jié)果和預(yù)先設(shè)定的期望值相符則判定為測試結(jié)果正確。消息監(jiān)測是值監(jiān)測的補(bǔ)充,分散在測試過程中,當(dāng)值監(jiān)測不正確時(shí),查看測試過程中關(guān)鍵部分的運(yùn)行消息,判斷消息是否正常來縮小錯(cuò)誤范圍。因此,測試系統(tǒng)是根據(jù)運(yùn)行結(jié)果是否符合期望,運(yùn)行過程是否拋出錯(cuò)誤消息來判斷測試結(jié)果的。特別對于流程的正確性,需要在每一個(gè)流程正確的基礎(chǔ)上判斷是否能產(chǎn)生最終結(jié)果且有無錯(cuò)誤消息,如果有結(jié)果且無錯(cuò)誤消息拋出則認(rèn)為流程每部分正確且可以正常協(xié)作,即流程正確。流程測試結(jié)果同樣采用動(dòng)態(tài)的可視化界面展示,如圖8 所示,深灰色色項(xiàng)為錯(cuò)誤消息,淺灰色為運(yùn)行正常。
上文結(jié)合SG-ERP 中“非招標(biāo)服務(wù)需求計(jì)劃提報(bào)”流程對本文提出的自適應(yīng)自動(dòng)化測試系統(tǒng)進(jìn)行了闡述。該系統(tǒng)的主要目的是個(gè)管理測試腳本,自適應(yīng)業(yè)務(wù)流程變更,自動(dòng)化組織腳本進(jìn)行回歸測試,其主要解決了以下3 個(gè)問題:
1)腳本統(tǒng)一化管理。以腳本庫的形式管理各類型腳本,并自動(dòng)轉(zhuǎn)化各類腳本支持相同的接口。其優(yōu)勢有2 點(diǎn),一是腳本管理更加規(guī)范和方便,腳本使用更加安全;二是統(tǒng)一接口使得系統(tǒng)能支持更多類型腳本,且腳本數(shù)據(jù)交換更加方便,為腳本的自動(dòng)化協(xié)作奠定基礎(chǔ)。
2)自適應(yīng)流程變更。業(yè)務(wù)流程、功能、任務(wù)和測試腳本相互之間的關(guān)系可以可視化配置。系統(tǒng)將它們清晰地聯(lián)系起來,所以當(dāng)流程發(fā)生變更時(shí),系統(tǒng)能自動(dòng)搜集受到影響的任務(wù),并調(diào)用對應(yīng)測試腳本形成測試計(jì)劃,自動(dòng)完成測試。這樣就能保證對測試對象的完全覆蓋,實(shí)現(xiàn)較高的測試自動(dòng)化程度,并減少人力、時(shí)間資源的消耗。
3)多種類型腳本的自動(dòng)協(xié)作。腳本具有統(tǒng)一的數(shù)據(jù)接口,可以自適應(yīng)變更形成測試計(jì)劃。在測試運(yùn)行時(shí),腳本可以自動(dòng)完成數(shù)據(jù)交換,使得腳本不僅能接受多樣的測試用例,還能獲得動(dòng)態(tài)的過程數(shù)據(jù)。這樣測試數(shù)據(jù)能更加貼近實(shí)際,不僅可以測試單個(gè)任務(wù)的正確性,還能測試任務(wù)序列的正確性。
這3 點(diǎn)是本文測試系統(tǒng)的主要貢獻(xiàn),其實(shí)用性在SG-ERP 的實(shí)際開發(fā)中得到證實(shí)。然而該系統(tǒng)還有許多需要改善的地方,如本測試系統(tǒng)還未實(shí)現(xiàn)對錯(cuò)誤的自動(dòng)定位,當(dāng)測試出錯(cuò)后還需要測試人員分析運(yùn)行消息來判斷問題的具體所在。在自動(dòng)化測試研究中,錯(cuò)位定位技術(shù)是研究熱點(diǎn),也是筆者下一步的研究方向。
本文介紹的面向流程的自適應(yīng)自動(dòng)化測試系統(tǒng)是為國家電網(wǎng)SG-ERP 項(xiàng)目開發(fā)的測試流程正確性的自動(dòng)測試系統(tǒng)。該方案針對SG-ERP 項(xiàng)目流程復(fù)雜,正確要求高,包含功能點(diǎn)多等特點(diǎn),通過建立腳本庫、統(tǒng)一腳本接口、配置腳本關(guān)聯(lián)關(guān)系等方法,實(shí)現(xiàn)了腳本的自動(dòng)轉(zhuǎn)換,自適應(yīng)安排運(yùn)行計(jì)劃和自動(dòng)協(xié)作運(yùn)行等功能,成功解決了腳本統(tǒng)一管理、自適應(yīng)流程變更和多種類型腳本自動(dòng)協(xié)作等難題,實(shí)現(xiàn)了對SAP項(xiàng)目中流程的自動(dòng)化回歸測試。為了闡明該解決方案,本文介紹了國內(nèi)外在企業(yè)系統(tǒng)測試方面的相關(guān)研究,結(jié)合SG-ERP 項(xiàng)目中的實(shí)例詳細(xì)闡述了該方案的思路和運(yùn)行過程,分析了該項(xiàng)應(yīng)用在實(shí)踐中的重要意義,并討論了當(dāng)前該解決方案中仍存在的不足和限制。未來筆者會(huì)繼續(xù)完善該技術(shù)方案,并根據(jù)SG-ERP 項(xiàng)目的新要求不斷改進(jìn)。此外,在面向流程的自動(dòng)化測試方面筆者還將做進(jìn)一步研究,特別是在SAP 項(xiàng)目中的流程正確性測試和控制方面做更多的研究和探索。
[1]Achatz R,Paulisch F.Industrial strength software and quality:software and engineering at Siemens[C]// Proceedings of the 3rd IEEE International Conference on Quality Software.2003:321-326.
[2]Ramler R,Putsch?gl W,Winkler D.Automated testing of industrial automation software:Practical receipts and lessons learned[C]// Proceedings of the 1st International Workshop on Modern Software Engineering Methods for Industrial Automation.ACM,2014:7-16.
[3]侯桂波,王喜偉,于春玲,等.持續(xù)集成與自動(dòng)化測試在國家電網(wǎng)電力營銷系統(tǒng)開發(fā)中的應(yīng)用[J].電網(wǎng)技術(shù),2009,33(20):164-167.
[4]王文.浙江電力SAP 升級項(xiàng)目權(quán)限能測試方法研究[J].電力信息化,2010(9):65-67.
[5]Jones C,Bonsignour O.The Economics of Software Quality[M].Addison-Wesley Professional,2011.
[6]姚實(shí)穎,肖沙里,譚霞,等.軟件測試自動(dòng)化中建立可維護(hù)腳本的技術(shù)[J].計(jì)算機(jī)工程,2003,29(11):79-81.
[7]黃雙喜,范玉順.基于工作流的ERP 系統(tǒng)開發(fā)與實(shí)施[J].計(jì)算機(jī)集成制造系統(tǒng),2004,10(2):139-143.
[8]張少博,羅省賢.自動(dòng)化測試腳本運(yùn)行控制方法研究[J].電子測試,2008(6):19-23.
[9]向東,李霄,郭彤.自動(dòng)化測試解決方案實(shí)踐分享[J].金融電子化,2013(6):71-72.
[10]吳伶琳.基于Selenium 的軟件自動(dòng)化測試的研究與應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2013(2):65-68.
[11]張偉,吳黎明.基于因果圖的軟件自動(dòng)化測試方法研究[J].計(jì)算機(jī)與現(xiàn)代化,2012(12):78-81.
[12]鄧青華.軟件自動(dòng)化測試工具研究[J].軟件導(dǎo)刊,2011,10(1):57-59.
[13]姚樹霞.淺析ERP 信息系統(tǒng)測試方法和工具的選用[J].中國管理信息化,2012(13):47-48.
[14]Angerer F,Prahofer H,Ramler R,et al.Points-to analysis of IEC 61131-3 programs:Implementation and application[C]// Proc.of the 18th IEEE Conf.on Emerging Technologies Factory Automation.2013:1-8.
[15]倪銘,黃萍.基于腳本的構(gòu)件測試自動(dòng)化框架[J].計(jì)算機(jī)工程,2010,36(6):94-96.
[16]桑會(huì)蘭.自動(dòng)化軟件測試腳本管理工具研究和實(shí)現(xiàn)[D].上海:上海交通大學(xué),2012.