教育軟件和教育ICT軟件應用程序測試的自動化能減少測試維護失敗的風險,選擇最優化的測試套件能提高效率,因此能降低成本和耗時。本文介紹一種自動化測試工具的研發,這種工具包含教育軟件測試的兩個主要自動化部分:測試套件生成和測試套件優化。本文通過控制流圖表示被試教育軟件的控制流。該工具提供五種測試套件生成方法,即邊界值測試、穩健性測試、最壞情況測試、穩健最壞情況測試和随機測試,并采用人工蜂群算法或布谷鳥搜索算法對所生成的測試套件進行優化,直至達到預期的适應值水平。與其他算法相比,這種方法能夠以最少的一組測試用例達成最大的路徑覆蓋率。最後,我們對所産生的優化測試套件進行自動故障檢測。本文還以一所在線開放大學的一門STEM科目為案例,介紹這個工具的使用情況。
【關鍵詞】教育軟件;教育ICT軟件應用程序;測試套件生成;測試套件優化;STEM;控制流圖;自動化測試
【中圖分類号】G420【文獻标識碼】B【文章編号】1009-458x(2018)6-0028-12
導讀:長期以來,信息技術與教育的深度融合是一個熱點問題。然而,從目前的情況看,這種融合似乎仍然缺乏應有的深度,也還沒有達成預期目标。2017年12月13日,《中國教育報》刊登該報記者張貴勇撰寫的一篇題為“新技術進課堂不等于媒介教育”的文章,文中提到有些課堂“教師利用令人眼花缭亂的電子課件上課,課堂看似熱鬧”,甚至是“課堂上學生全部使用平闆電腦等新媒介設備來上課”,他認為“盡管電子教材也好,多媒體課件也好,其以數字化、交互化、多媒化的形式,将教學内容以科學直觀的視頻、音頻、圖形、文本等展現出來,對學生的知識學習有幫助,但沒有改變傳統的灌輸式學習方式,沒有真正提升學生對各種媒介的解讀、運用能力”。在我看來,這就是典型的“僞融合”。
本期“國際論壇”四位作者分别來自西班牙和印度的遠程在線教學大學和普通高校(研究院),均在技術與教育的融合領域頗有建樹,其中通信作者丹尼爾·布爾戈斯教授是西班牙拉裡奧哈國際大學主管研究和技術的副校長,也是聯合國教科文組織e-learning教席和國際遠程開放教育理事會開放教育資源(OER)教席,一個真正具有跨學科學術背景的學者。他曾經在我們的通信中闡述他的教育科研理念。他認為作為在線教學機構的一員,自己的研究責無旁貸應該紮根具體教育實踐,以解決實際教育教學問題為首要目的。他說學術研究應該接地氣,應該能夠賦權于教師,就技術的教育用途而言,研究成果應該能為并非技術行家的教師所用,而且能提高教學效果、達成預期學習目标,否則談不上“融合”。他本人一直身體力行,比如有關适合大規模招生的e-learning推薦模型的研究①,也許正因為他有這樣的理念而且又取得了豐碩成果,所以才被聯合國教科文組織和國際遠程開放教育理事會委以要職。
本文介紹他們的一項新研究成果,即教育軟件的自動化測試。在今天這個信息時代,教育軟件無處不在,從某種意義上講已經成為當今教育教學不可或缺的組成部分,甚至可以說很多學科的教學離不開教育軟件的應用。比如在生物、醫學和護理等專業的學習中,教育軟件能給學習者提供虛拟現實或增強現實,大大提高學習活動的真實性,完成很多在傳統教學環境下很難開展的學習任務;而在機械、工程和建築等專業的學習中,學習者使用這些軟件開展設計、運算、建模、試驗等活動,即使失敗了也不會造成任何經濟損失或傷害。對于遠程在線學習來講,教育軟件的用途更是非常廣泛,其對提高學習效果、保證教學質量的重要性更是自不待言。
①丹尼爾·布爾戈斯,阿爾貝托·考比.(2017).轉基因學習:構建基于規則、适合大規模招生的e-learning推薦模型[J].中國遠程教育,(07):5-15,79.
随着用途越來越廣泛,教育軟件也越來越大、越來越複雜,因此,“改進教育軟件開發技術,加快開發過程,提高開發效率,這些都勢在必行。高效的軟件開發過程應該是快捷、容易操作、穩健和低成本的”。這其中便涉及軟件測試,這是“教育軟件開發最具挑戰性的階段”。“教育軟件測試在軟件開發生命周期的早期進行,越是往後才發現的錯誤,修複的成本越高”,但是這也是一項非常複雜的工作,手工操作費時耗力、成本高昂,且不說可行性的問題。因此,本研究在系統回顧(教育)軟件測試研究成果的基礎上,研發一種自動化測試工具,即測試套件生成和測試套件優化。
本研究提出的自動化測試工具自身配備四種黑盒技術(即邊界值測試、穩健性測試、最壞情況測試和穩健最壞情況測試)以及随機測試技術。可以用其中任何一種技術生成測試對象教育軟件的測試數據,然後用人工蜂群算法和布谷鳥搜索算法優化這些數據,再把優化的測試套件應用于測試對象軟件上以生成實際輸出,而測試對象軟件的控制流圖則會産生預期輸出,如果實際輸出和預期輸出不一緻,則說明這個軟件有錯誤。在闡明這種自動化測試工具的工作原理之後,文章還介紹了人工蜂群算法和布谷鳥搜索算法。
本研究用這個自動化測試工具對20個教育軟件應用程序進行測試。軟件測試是在西班牙拉裡奧哈國際大學工程與技術學院的e-learning和社交網絡碩士學位課程中進行的,有44名學生參加。限于篇幅,本文以三角形分類問題的軟件應用程序為例,介紹自動化測試工具的運作和實際效果。測試結果表明,這個自動化測試工具在人工蜂群算法和布谷鳥搜索算法的幫助下能以最少的測試用例覆蓋最多的路徑,減少測試時間,降低測試費用,換言之,大大提高測試效率。研究還發現,兩種算法有各自的優點,布谷鳥搜索算法的結果更加穩定但路徑覆蓋率較低,而人工蜂群算法的路徑覆蓋率更好,但結果不如布谷鳥搜索算法穩定。考慮到路徑覆蓋率是選擇測試套件算法更加可靠的決定因素,因此,在本研究中,與布谷鳥搜索算法相比,人工蜂群算法是一個更好的選擇。文章最後還指出本研究的局限和今後研究方向。
這篇文章的意義不僅體現在研發一種教育軟件自動化測試工具上,也是技術與教育融合的一個很好的例子。對遠程(在線)教育工作者而言,它更是布爾戈斯教授的教育科研觀的具體體現。我認為這也是值得遠程(在線)教育機構和實踐者認真謀劃和努力的一個科研方向——把技術與教育的融合紮根于遠程(在線)教育實踐中,旨在解決實際教學問題,達成具體教學目标。
最後,衷心感謝四位國際同行對本刊的支持!(肖俊洪)
引言
過去五十年,教育軟件無所不在,對教育的影響越來越大,因此,人們對可靠教育軟件的需求與日俱增。教育軟件的用途廣泛,幾乎涉及我們生活的每一個方面,因此軟件越來越複雜、越來越大。在這種背景下,改進教育軟件開發技術,加快開發過程,提高開發效率,這些都勢在必行。高效的軟件開發過程應該是快捷、容易操作、穩健和低成本的。
教育軟件的質量通過在軟件開發生命周期(SoftwareDevelopmentLifecycle)的每一個層面對該軟件進行嚴格測試得以保證(Bertolino,2007;Burnstein,2006)。經常升級導緻軟件修改的次數增加,軟件的整體可靠性會随着降低。一種應對措施是增加測試量(Marciniak,1994)。教育軟件測試是軟件開發生命周期一個不可或缺的階段。沒有經過嚴格測試的軟件和錯誤代碼每年給教育軟件開發組織造成數十億美元的損失,很多缺陷是用戶發現的(Burn⁃stein,2006)。測試不僅是保證教育軟件系統質量的有效措施(Miller,1981),也是教育軟件工程最複雜和較不為人所了解的領域之一(Whittaker,2000)。
一些研究闡述了為什麼要開展教育軟件測試(Alba&Chicano,2008;Alshraideh&Bottaci,2006;Bertolino,2007;Harman,Mansouri,&Zhang,2009;Korel&Al-Yami,1998;Markman,McMullen,&Elizaga,2008;Pressman,2005;Ric⁃ca&Tonella,2001;Sommerville,2001;Sthamer,1995),原因包括檢測故障、最大限度降低與教育軟件殘餘錯誤相關的風險(Askarunisa,Prameela,&Ramraj,2009)和對軟件進行全面徹底測試(Huang&Kuo,2002)等。在測試階段發現的系統錯誤多數産生自軟件開發生命周期的早期(Beizer,1990),因此,教育軟件測試應在軟件開發生命周期的早期進行,越是往後才發現的錯誤,修複的成本越高。測試被認為是教育軟件開發最具挑戰性的階段,占用全部開發時間和費用的50%~60%(Bertolino,2007)。
教育軟件測試可以手工進行,也可以通過自動化方式進行,目的是驗證該軟件是否符合工作或客戶要求,也用于檢查實際結果與預期輸出是否一緻(Ra⁃datz,Geraci,&Katki,1990)。這種測試通過使用合适的測試用例(testcase)檢驗軟件是否符合要求,以此評估其質量。有些錯誤是在設計階段因疏忽而引起的,這些錯誤應該立即得到修複。教育軟件測試的目标是生成包含精确測試用例并能達成最大覆蓋率和盡可能發現更多錯誤的最小測試套件(testsuite)(Sthamer,1995)。在此過程中,每一個測試用例都是不同的;每一個測試用例都配上一組輸入和一系列預期輸出。測試的另一個任務是生成合适的測試套件,以滿足測試标準,比如代碼覆蓋(codecoverage)(Sakti,Pesant,&Guéhéneuc,2015)、路徑覆蓋(pathcoverage)、分支覆蓋(branchcoverage)(Sthamer,1995)和語句覆蓋(state⁃mentcoverage)(Clarke,1976)。這方面已經有一些測試标準,必須滿足相關标準才能保證所測試的教育軟件的質量(Ghiduk&Girgis,2010)。教育軟件的全面測試很難手工進行,有些方面必須實現自動化。
手工生成測試套件更加耗時耗力,這是一個勞動密集型而又昂貴的過程,因此必須減少人工測試量(Poon,Tse,Tang,&Kuo,2011)。自動化測試能加快測試過程,節省時間和成本,達成最大覆蓋率。此外,測試過程的自動化還能顯著降低軟件開發維護費用,提高其可靠性。
美國國家标準與技術研究院(NationalInstituteofStandardsandTechnology)的研究表明,軟件測試基礎設施不完善所造成的損失每年估計在222億到595億美元之間(Tassey,2002)。由此可見,必須優化測試過程,才能既減少對資源的要求(時間、經費和人力等)又保證質量。早期的教育軟件技術開發采用爬山(hillclimbing)算法(屬于梯度下降算法[gradientdescentalgorithms]一族)生成測試用例和測試套件(Korel,1990)。這些方法很耗時且無法避免搜索空間的局部最優解(localoptima)。後來,人們使用元啟發式搜索算法(metaheuristicsearchalgorithms)解決這個問題(Edvardsson,1999;Wegener,Baresel,&Sthamer,2001),比如禁忌搜索算法(TabuSearch)(Díaz,Tuya,Blan⁃co,&Dolado,2008;Glover,1997;Zamli,Alkaze⁃mi,&Kendall,2016)、模拟退火算法(SimulatedAnnealing)(Lim,Rodrigues,&Zhang,2006)、遺傳算法(GeneticAlgorithm,GA)(Alander,Man⁃tere,&Turunen,1998;Hermadi,Lokan,&Sarker,2010;Mala,Mohan,&Kamalapriya,2010)、粒子群優化算法(ParticleSwarmOptimization,PSO)(Ahmed&Zamli,2011;Jiang,Shi,Zhang,&Han,2015)和蟻群優化算法(AntColonyOptimization,ACO)(Li&Lam,2004;Markman,McMullen,&Elizaga,2008)。每一種算法都有自己的優缺點。工程界不同領域對基于搜索的算法已經開展了廣泛研究、實驗和應用(Afzal,Torkar,&Feldt,2009;Har⁃man,Mansouri,&Zhang,2009)。
測試邊界值不足以确保教育軟件的準确,因為所有可能的值都必須測試和驗證,但這是行不通的。要對一種教育ICT軟件應用程序進行全面測試,隻增加兩個32-bits整數輸入就要求測試264個不同測試用例,即使每秒鐘完成數千次測試,這個量的測試也需要數百年時間才能做完。因此,必須實現測試套件優化(TestSuiteOptimization,TSO)。TSO是去除不必要、多餘的測試用例,把優質測試用例納入測試套件中的過程,在這裡,優質指的是在路徑覆蓋率、錯誤檢測和代碼覆蓋率方面表現好。TSO從其測試用例母集中發現最好的子集。本研究采用人工蜂群算法(ArtificialBeeColonyAlgorithm,ABC)和布谷鳥搜索算法(CuckooSearchAlgorithm,CSA)實現TSO。這兩種算法都是受到大自然啟發的算法(Karaboga,2005;Yang&Deb,2009)。
研究背景
符号和術語
被測試的教育軟件(EducationalSoftwareUn⁃derTest,SUT)的控制流或邏輯可以通過控制流圖(flowgraph)表示。控制流圖由節點(N)和邊(E)組成,即G(N,E)。用控制流圖表示SUT邏輯,節點代表語句塊,邊代表從一個節點轉移到另一個節點的流向,形成一條路徑。基于控制流圖有限的節點,可以發現獨立路徑(independentpath)。控制流圖與SUT的實際邏輯相似。因此,對一個控制流圖的測試數據進行的運算被看作對教育ICT軟件應用程序的運算。這個軟件應用程序的特點應該體現在其控制流圖中。
路徑測試标準
一般而言,路徑測試包括挑選一組合适的路徑并用測試數據檢測這些路徑。這是一個疊代過程,直至完成對所有路徑的測試。但是,一個控制流圖的所有路徑并非都能通過遍曆,這些路徑被稱為“不可行路徑”。路徑覆蓋率即被成功遍曆的路徑除以全部路徑所得之百分比,如方程式(1)所示:
文獻回顧
科瑞爾(Korel,1990)根據路徑覆蓋測試标準,采用包含各種可能的測試數據的動态路徑測試技術生成教育軟件測試數據,目的是獲取執行期望路徑的測試用例值。迪森等(Deason,Brown,Chang,&Cross,1991)提出基于規則的測試數據生成方法,采用路徑/謂詞分析或随機測試數據生成法。他們認為因為測試用例可能無法覆蓋所有路徑,應該對測試套件進行優化。卡拉博加(Karaboga,2005)根據蜜蜂群智能覓食行為,提出一種新的人工蜂群算法解決多維度和多模态問題。卡拉博加和巴斯圖爾克(Karaboga&Basturk,2007)後來又提出ABC算法解決約束優化問題。羅等(Luo,Liu,Yang,Li,Chen,&Cao,2016)提出一種稱為ABC覆蓋陣列生成器(coveringarraygenerator)的新算法,生成覆蓋陣列和結對測試的混合覆蓋陣列。測試用例優先級排序(Testcaseprioritization)指的是重新排列測試用例執行順序,以在某一特定時間段盡可能發現更多錯誤。作者們還進一步提出一種高效的多目标蟻群優化方法(multi-objectiveantcolonyoptimiza⁃tion)解決多目标和高維多目标問題(multi-objec⁃tiveandmany-objectiveproblems)。這種技術基于帕累托占優和偏好指标(Paretodominanceandpreferenceindicators),使外部包(externalar⁃chives)在每一次生成中産生一種有效的解。
楊和戴布(Yang&Deb,2015)提出CSA算法解決包括NP-hard問題的優化問題,而甘多米等(Gandomi,Yang,&Alavi,2013)則用CSA在沒有調整測試參數的情況下解決結構問題,使CSA成為像PSO一樣的穩健且更加通用的應用程序(Meza,Espitia,Montenegro,Giménez,&González-Cre⁃spo,2016)。庫瑪和查克拉瓦蒂(Kumar&Chakar⁃verty,2011)使用GA和CSA設計嵌入式系統空間探索問題。CSA無需對參數調整進行過多試驗便能夠在更短時間内産生更好的種群。在對SUT更長時間運算之後通過GA獲得最佳解。因此,CSA能在更短運算時間内高效生成某一個問題的多種解,而GA則在求最佳解方面效果最好。拉姆鄒恩等(Ram⁃choun,Amine,Idrissi,Ghanou,&Ettaouil,2016)采用GA,用反向傳播算法(back-propagational⁃gorithm)訓練網絡以優化網絡問題。
馬拉等(Mala,Mohan,&Kamalapriya,2010)提出一種新的教育軟件測試優化範式,采用基于混合智能的搜索方法達成教育軟件測試最優化。這個框架的優點是自動生成測試用例,發現最優測試順序,減少測試用例數量和把測試次數降到最低。
邁克爾等(Michael,McGraw,Schatz,&Wal⁃ton,1997)提出基于啟發式搜索技術的方法解決教育軟件測試的各種問題,他們通過在各種軟件應用程序中使用GA和随機測試技術生成測試數據,比較這兩種技術,發現GA生成更有效的測試數據。
卡裡和庫瑪(Khari&Kumar,2016)提出基于TSO搜索的方法,把局部搜索和全局搜索結合起來,在更短時間、疊代次數更少而空間複雜性的增加可以忽略不計的情況下獲得最優結果。辛格(Singh,2015)的結論肯定自動化生成預期輸出的重要性,因為與人工操作相比,這樣能夠大大降低費用和時間。但是,目前還沒有合适、完整和穩健的技術。
巴朗等(Barón,Crespo,Espada,&Martínez,2015)提出一個學習考核框架,該框架包括結構方程模型和模糊認知圖,旨在促進智慧環境下的學習評價。森沃爾等(Semwal,Singha,Sharma,Chau⁃han,&Behera,2016)使用不同機器學習技術(如支持向量機、人工神經網絡、KNN分類算法和分類器融合等)發現機器學習的原理和分類步态數據。梅紮等(Meza,Espitia,Montenegro,&Crespo,2015)提出像旋轉和直線運動這樣的多目标優化(multi-objectiveoptimization)策略,該策略建立在PSO和探索與利用(E&E)結果的基礎上。查克裡等(Chakri,Khelif,Benouaret,&Yang,2017)提出一種修改的蝙蝠算法(batalgorithm)解決某些情況下基礎蝙蝠算法探索能力低所引起的優化問題,提高該算法在探索和利用方面的效率。
本文嘗試從不同角度研發一種自動化測試工具,即測試套件生成(TestSuiteGeneration,TSG)和測試套件優化(TestSuiteOptimization,TSO)。
自動化測試工具的框架
自動化測試模型
本模型的測試套件生成包含四種黑盒技術,即邊界值測試(boundaryvaluetesting)、穩健性測試(robustnesstesting)、最壞情況測試(worstcasetesting)和穩健最壞情況測試(robustnessworstcasetesting),以及随機測試(randomtesting)。圖1是其完整框架。我們可以用其中任何一種技術生成SUT的測試數據,然後用ABC或CSA對這些數據進行優化,将優化的測試套件應用于SUT上會生成實際輸出,而SUT的控制流圖則會産生預期輸出,通過比較實際輸出和預期輸出發現SUT的錯誤。這個框架的組成部分如下:
•輸入:控制流圖和SUT。
•處理模塊:采用上述測試技術完成TSG,由于所生成的測試套件可能會也可能不會對SUT有100%的路徑覆蓋,因此将其輸入第二階段,即TSO。這個階段是在ABC和CSA幫助下完成的,最終獲得優化測試套件。
•錯誤檢測:将生成的測試套件與控制流圖和SUT一起使用,分别獲得預期輸出和實際輸出。如果兩種輸出不一緻,則說明SUT有錯誤。
在方程式(2)中,每一個測試用例xi有N個值,N等于包含教育ICT軟件應用程序代碼的源文件的變量數目,tik代表每一個變量的獨立值集(individ⁃ualsetofvalues),SN表示每個變量的每一個獨立tik集(eachindividualsetoftikforeachvariable)包含的值的數目。
已存在的測試用例發生位變異(mutationofbits)時産生新的随機測試用例。變異函數從這些位中選擇一個并加以擾動。在方程式(3)中,xi是輸入的測試用例,y是變異測試用例:
如果已存在和變異測試用例的獨立路徑相同,那麼根據馬提亞斯(Matyas)目标函數的值選擇其中一個測試用例(Jamil&Yang,2013),如方程式(4)和(5)所示:
結束分支。
ABC算法
ABC算法基于蜜蜂群的智能行為,包括三種平行工作的蜂:雇傭蜂、觀察蜂和偵察蜂。雇傭蜂的數量與觀察蜂的數量相同,等于SN。我們必須界定該算法的終止條件,通過重複以下步驟尋找每一個食物源ai:
1.随機确定食物源ai以外的鄰居食物源a'i。
2.用目标函數評估鄰居食物源a'i,如果a'i優于ai,則用其代替ai。否則,把嘗試次數增加一次。
在偵察蜂時期,放棄嘗試次數多于終止條件值的食物源,改用另一個随機食物源。ABC算法提供全局搜索,最終把有最佳目标函數值的食物源儲存在記憶中。
ABC算法用于測試的完整僞代碼如下:
第1步:初始化ABC控制參數。
第2步:用本測試工具的任何測試技術初始化初始種群。
第3步:評估這個種群并把通過新獨立路徑的測試用例添加到結果集。
第4步:cycle=1
第5步:Do
【雇傭蜂和觀察蜂時期】
a.用方程式(3)随機确定ai以外的鄰居測試用例a'i
。b.用方程式(4)和(5)評估食物源a'i;如果a'i優于ai,則用其代替ai。如果沒有更好的解,則增加嘗試次數。
【偵察蜂時期】
c.确定嘗試次數多于終止條件值的測試用例并通過方程式(3)用新的随機測試用例取代它們。
d.cycle=cycle+1
第6步:Whilecycle!=終止條件
CSA算法
CSA算法基于布谷鳥下蛋的方法。布谷鳥是在其他鳥的巢下蛋的(Yang&Deb,2015)。在教育軟件測試中使用CSA,布谷鳥的蛋代表測試用例,巢代表教育軟件的獨立路徑,蛋的适應值(fitness)代表測試用例的目标函數值。每一隻布谷鳥随機選擇其他鳥的一個巢,判斷已經存放在裡面的蛋的适應值。在這裡,适應值代表布谷鳥的蛋與巢裡原來的蛋的差别。如果布谷鳥的蛋的适應值優于原來的蛋,布谷鳥就會把那個蛋扔掉,用自己的蛋取而代之。否則,它會繼續尋找另一個巢。
CSA算法用于測試的完整僞代碼如下:
第1步:初始化終止條件的控制參數。
第2步:用本測試工具的任何測試技術初始化初始種群。
第3步:評估這個種群并把通過新獨立路徑的測試用例添加到結果集。
第4步:cycle=1
第5步:Do
【布谷鳥時期】
e.用方程式(3)随機确定一隻準備下蛋的布谷鳥(測試用例)c'i。
f.随機找一個巢,即檢查測試用例通過哪條獨立路徑。
【換/扔蛋時期】
g.用方程式(4)和(5)評估c'i;如果c'i優于原來的蛋(測試用例)ci,則用其代替ci。如果沒有更好的解,則尋找另一個巢。
h.cycle=cycle+1
第6步:Whilecycle!=終止條件
STEM案例:三角形分類問題
雖然我們對研發的20個教育ICT軟件應用程序都進行了測試,限于篇幅,本文以其中一個作為案例,介紹自動化測試工具的運作。
三角形分類問題
這是STEM中數學科目的基礎問題,涉及辨識三角形的性質,即是直角三角形、鈍角三角形、銳角三角形或不是三角形。2017年初,我們在西班牙拉裡奧哈國際大學(UniversidadInternacionaldeLaRioja)工程與技術學院的e-learning和社交網絡碩士學位課程中進行軟件測試,共有48名學生參加,4名後來退出,實際有44人參加本研究。拉裡奧哈國際大學是一所在線大學,工程與技術學院有3,000多名學生,因此能否用合适的教育軟件開展STEM科目的教學對學習結果會有重要影響。另一方面,這也與歐洲委員會①和經濟合作與發展組織②有關這個問題的指導原則相一緻。
①EuropeanComission.ScienceEducation:http://ec.europa.eu/programmes/horizon2020/en/h2020-section/science-edu⁃cation
②OECD.Strengtheningeducationforinnovation.https://www.oecd.org/sti/outlook/e-outlook/stipolicyprofiles/humanre⁃sources/strengtheningeducationforinnovation.htm
我們用三角形分類問題展示ABC和CSA算法的使用。我們首先将這個問題的控制流圖和SUT輸入測試工具,據此生成測試套件并對所生成的測試套件進行優化。如上所述,這個工具有四種黑盒技術和随機測試技術,這些技術用于生成測試套件。TSO則是用ABC或CSA進行運算。優化的測試套件分别與控制流圖和SUT一起生成預期輸出和實際輸出,通過對這兩種輸出的比較發現SUT的錯誤。整個過程如圖1所示。
控制流圖
控制流圖以圖形表示SUT的預期輸出。本案例的控制流圖是手工制作的,然後輸入測試工具(見圖2)。C0,C1,C2,C3,C4,C5是這個軟件應用程序的條件,這些條件導緻不同路徑的出現。N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10和N11代表代碼的節點。圖2是手工制作的控制流圖,圖3則是自動化測試工具顯示的控制流圖。
獨立路徑:獨立路徑指的是在控制流圖中至少遍曆一條沒有被其他任何路徑遍曆過的邊的路徑。根據圖2的控制流圖,三角形分類問題的所有獨立路徑如表1所示。
ABC運算
初始種群
可以用上述任何一種黑盒技術或随機測試生成初始種群。本案例用的是随機技術,規定測試用例數目等于10(随機選擇),測試用例和它們的目标值見表2。表中測試用例的三個值a、b和c表示三角形三條邊的值,目标值表示的是函數最小化的值。表2初始種群
雇傭蜂第一次疊代
雇傭蜂第一次疊代之後,每一條獨立路徑隻剩下一個測試用例,這是對所有通過相同路徑的測試用例的目标值進行比較的結果。目标值最小的測試用例被認為是這條路徑最佳的測試用例。
以通過路徑N0-N1-N2的兩個測試用例為例,它們分别是測試用例1(目标值-189175.5)和測試用例8(目标值-226215.86)(見表2),測試用例8的目标值比測試用例1小,它三邊的值分别是a=235,b=65,c=33,被認為比測試用例1更好,因此被儲存在記憶中。表3是第一次疊代的結果。
雇傭蜂第二次疊代
在雇傭蜂的第二次疊代中,對第一次疊代保留下來的優化測試用例進行變異。這些測試用例的變異導緻新測試用例的産生,雇傭蜂對新測試用例做進一步運算。如果任何測試用例攔截到還沒有被其他測試用例遍曆過的路徑,那麼這個測試用例就被保存在與之相應的記憶中。如果發現任何測試用例遍曆已經有測試用例通過的路徑,那麼比較這兩個測試用例的目标值,把目标值較小的測試用例儲存在記憶中。測試用例的變異和比較用方程式(4)和(5)進行。
以表3通過路徑N0-N1-N2的測試用例(a=235,b=65,c=33)為例。用XOR運算對該測試用例的一個值進行變異:
産生變異測試用例a=107,b=65,c=33。這個測試用例通過路徑N0-N1-N3-N5-N7-N8-N11,因此相應路徑的記憶中就增加了這個變異測試用例。表4是第二次疊代的結果。以此類推,更多的疊代會增強其記憶。圖4是用ABC優化測試套件的截圖。
CSA運算
初始種群
可以用上述任何一種黑盒技術或随機測試生成初始種群。本案例用的是随機技術,規定測試用例數目等于10,測試用例和它們的目标值見表5。
CSA第一次循環
CSA第一次循環之後,每一條獨立路徑隻剩下一個測試用例,這是對所有通過相同路徑的測試用例的目标值進行比較的結果。目标值最小的測試用例被認為是這條路徑最佳的測試用例。
以通過路徑N0-N1-N2的三個測試用例為例,它們分别是測試用例2(目标值-838870.2)、4(目标值-798429.0)和6(目标值-1499877.56)(見表5)。這三個測試用例中,測試用例6的目标值最小,它三邊的值分别是a=912,b=5,c=857。這個測試用例被認為比其他兩個測試用例更好,因此被儲存在記憶中。表6是第一次循環的結果。
CSA第二次循環
CSA第二次循環中,測試工具随機從搜索空間選取一個新測試用例。如果發現這個測試用例遍曆已經有測試用例通過的路徑,那麼比較這兩個測試用例的目标值,把目标值較小的測試用例儲存在記憶中。否則,這個測試用例便保存在與這條路徑相應的記憶中。表7是第二次循環的更新數據。
在第二次循環中,随機生成的一個新測試用例遍曆路徑2。新的循環又發現新測試用例,一旦發現更好的測試用例,表格會随着持續更新。更多的循環會增強其記憶。圖5是用CSA優化測試套件的截圖。實驗結果
表8和表9是用ABC和CSA測試20種教育ICT軟件應用程序所獲得的路徑覆蓋率和适應值(20種軟件應用程序的名單見附錄)。
表8和表9是用ABC和CSA對20種教育ICT軟件應用程序的測試套件進行優化測試的結果。測試結果顯示,用ABC的平均路徑覆蓋率是90.3%,而CSA的平均覆蓋率是75.4%。在優化數據的适應值方面,ABC也優于CSA。這說明在路徑覆蓋方面ABC的表現優于CSA。另外,研究發現,除了教育ICT軟件應用程序3外,總體而言,适應值越高,路徑覆蓋率越高。應用程序3的适應值更高,但路徑覆蓋率卻更低。這可能是由于CSA的各種限制條件所引起的,它們以較低路徑覆蓋率換取優質的數據優化。
我們的這個工具在這兩種算法的幫助下能以最少的測試用例覆蓋最多的路徑,這有助于減少測試時間,大大降低測試費用。
用ABC得出這些軟件應用程序适應值的标準差是2.69E-5單位,而CSA的标準差是1.14E-7單位。換言之,CSA的結果更加一緻但路徑覆蓋率較低,而ABC的路徑覆蓋率更好,但結果不如CSA一緻。因為在為測試套件選擇算法上路徑覆蓋率是更加可靠的決定因素,因此,在本研究中ABC證明是更好的選擇。
結束語
研究局限
雖然我們已經采取一切措施保證研究結果的真實性,但是有些因素可能會影響研究結果的外部和内部效度等。為此,我們在多種教育ICT軟件應用程序上測試ABC和CSA方法,減少上述風險。為了避免結果偏差,我們一共測試了20種軟件程序。為了使測試工具認為代碼沒有錯誤,控制流圖必須正确無誤,哪怕代碼包括一些錯誤。雖然我們采用随機方法,但是所得到的測試數據是最優化的。有時,路徑覆蓋率難以達到100%,這是因為可能有些路徑生成測試用例的可能性較低。本研究的SUT可能比較大,但測試人員應該使用它的控制流圖才能進行測試。本測試工具隻能用于用Java技術研發的教育ICT軟件應用程序,目前尚未用于其他軟件應用程序的測試。其運算速度和表現可能會因平台而異。本測試工具需要Java運行環境。
結論和下一步計劃
研究發現,在執行自動化TSO以達成所生成的測試套件最小化卻有最大路徑覆蓋率的目标方面,ABC方法優于CSA方法。案例研究顯示,采用這兩種算法在本研究的自動化測試工具上測試20種教育ICT軟件應用程序,ABC的路徑覆蓋率平均值為90.3%,而CSA則是75.4%。由此可見,ABC在路徑覆蓋率上優于CSA,是TSO更可靠的選擇。
在今後的研究中,可以運用其他自然啟發算法改進我們所提出的這個模型。另外,也可以在各方面混合使用ABC和CSA以獲得更好結果。上述算法的TSG輸入可以通過其他方法實現自動化,比如決策盒(decisionbox)或因果法(cause-effect),這些方法提供更少的測試套件輸入。
【鳴謝】本研究得到拉裡奧哈國際大學通過工程與技術學院(SchoolforEngineering&Technolo⁃gy)(http://esit.unir)和教育創新和技術研究院(ResearchInstituteforInnovation&TechnologyinEducation,簡稱iTED,http://research.unir/it⁃ed)提供的部分資助。
[參考文獻]
Afzal,W.,Torkar,R.,&Feldt,R.(2009).Asystematicreviewofsearch-basedtestingfornon-functionalsystemproperties.Informa⁃tionandEducationalsoftwareTechnology,51(6),957-976.
Ahmed,B.S.,&Zamli,K.Z.(2011).AvariablestrengthinteractiontestsuitesgenerationstrategyusingParticleSwarmOptimization.JournalofSystemsandEducationalsoftware,84(12),2171-2185.
Alander,J.T.,Mantere,T.,&Turunen,P.(1998).Geneticalgorithmbasededucationalsoftwaretesting.InG.D.Smith,N.C.Steele,&R.F.Albrecht(Eds.),ArtificialNeuralNetsandGeneticAlgorithms,Pro⁃ceedingsofInternationalConference(ICANNGA’97)(pp.325–328).Norwich,UK:Springer-Verlag,Wien.
Alshraideh,M.,&Bottaci,L.(2006).Search-basedsoftwaretestdatagenerationforstringdatausingprogtam-specificsearchoperators.EducationalsoftwareTesting,VerificationandReliability,16(3),175-203.
Alba,E.,&Chicano,F.(2008).Observationsinusingparallelandse⁃quentialevolutionaryalgorithmsforautomaticeducationalsoftwaretesting.ComputersandOperationsResearch,35(10),3161-3183.
Askarunisa,A.,Prameela,P.,&Ramraj,N.(2009).DBGEN-Database(Test)GENerator-AnAutomatedFrameworkforDatabaseApplica⁃tionTesting.InternationalJournalofDatabaseTheoryandApplica⁃tion,2(3),27-54.
Barón,H.B.,Crespo,R.G.,Espada,J.P.,&Martínez,O.S.(2015),As⁃sessmentoflearninginenvironmentsinteractivethroughfuzzycogni⁃tivemaps.SoftComputing,19(4),pp.1037-1050.
Beizer,B.(1990).EducationalsoftwareTestingTechniques(2ndedition).NewYork:VanNostrandReinhold.
Bertolino,A.(2007).Educationalsoftwaretestingresearch:Achieve⁃ments,challenges,dreams.InFutureofSoftwareEngineering,2007.FOSE'07(pp.85-103).Minneapolis,MN.
Burnstein,I.(2006).Practicaleducationalsoftwaretesting:aprocess-ori⁃entedapproach.SpringerNewYork:SpringerScienceandBusinessMedia.
Chakri,A.,Khelif,R.,Benouaret,M.,&Yang,X.S.(2017),Newdirec⁃tionalbatalgorithmforcontinuousoptimizationproblems.ExpertSys⁃temswithApplications,69,159-175.
Clarke,L.A.,(1976).Asystemtogeneratetestdataandsymbolicallyex⁃ecuteprograms.IEEETransactionsoneducationalsoftwareengineer⁃ing,3,215-222.
Deason,W.H.,Brown,D.B.,Chang,K.H.,&Cross,J.H.(1991).Arule-basededucationalsoftwaretestdatagenerator.IEEETransac⁃tionsonKnowledgeandDataEngineering,3(1),108-117.
Díaz,E.,Tuya,J.,Blanco,R.,&Dolado,J.J.(2008).Atabusearchalgo⁃rithmforstructuraleducationalsoftwaretesting.ComputersandOper⁃ationsResearch,35(10),3052-3072.
Edvardsson,J.(1999).Asurveyonautomatictestdatageneration.InProceedingsofthe2ndConferenceonComputerScienceandEngineer⁃ing(pp.21-28).Linkoping,ECSEL.
Gandomi,A.H.,Yang,X.S.,&Alavi,A.H.(2013).Cuckoosearchalgo⁃rithm:ametaheuristicapproachtosolvestructuraloptimizationprob⁃lems.Engineeringwithcomputers,29(1),17-35.
Ghiduk,A.S.,&Girgis,M.R.(2010).Usinggeneticalgorithmsanddominanceconceptsforgeneratingreducedtestdata.Informatica(Slovenia),34(3),377-385.
Glover,F.(1997).TabusearchandadaptivememoryeducationalICTap⁃plications—advances,applicationsandchallenges.InR.S.Barr,R.V.Helgason,&J.L.Kennington(Eds.),Interfacesincomputerscienceandoperationsresearch(pp.1-75).Norwell,MA:KluwerAcademicPublishers.
Harman,M.,Mansouri,S.A.,&Zhang,Y.(2009).Searchbasededuca⁃tionalsoftwareengineering:Acomprehensiveanalysisandreviewoftrendstechniquesandapplications.DepartmentofComputerScience,King’sCollegeLondon,Tech.Rep.TR-09-03.
Hermadi,I.,Lokan,C.,&Sarker,R.(2010).Geneticalgorithmbasedpathtesting:challengesandkeyparameters.InEducationalsoftwareEngineering(WCSE),2010SecondWorldCongressonIEEEVol.2(pp.241-244).Wuhan,China.
Huang,C.Y.,&Kuo,S.Y.(2002).Analysisofincorporatinglogistictesting-effortfunctionintoeducationalsoftwarereliabilitymodeling.IEEETransactionsonReliability,51(3),261-270.
Jamil,M.,&Yang,X.S.(2013).Aliteraturesurveyofbenchmarkfunc⁃tionsforglobaloptimisationproblems.InternationalJournalofMath⁃ematicalModellingandNumericalOptimisation,4(2),150-194.
Jiang,S.,Shi,J.,Zhang,Y.,&Han,H.(2015).Automatictestdataopti⁃mizationbasedonreducedadaptiveparticleswarmoptimizationalgo⁃rithm.Neurocomputing,158,109-116.
Karaboga,D.(2005).Anideabasedonhoneybeeswarmfornumericaloptimization(Vol.200).Technicalreport-tr06,ErciyesUniversity,engineeringfaculty,computerengineeringdepartment.
Karaboga,D.,&Basturk,B.(2007).Artificialbeecolony(ABC)optimi⁃zationalgorithmforsolvingconstrainedoptimizationproblems.InP.Melin,O.Castillo,L.T.Aguilar,&W.Pedrycz(Eds.),FoundationsofFuzzyLogicandSoftComputing(pp.789-798).BerlinHeidelberg:Springer.
Khari,M.,&Kumar,P.(2016).Anovelapproachforeducationalsoft⁃waretestdatagenerationusingcuckooalgorithm.InProceedingsoftheSecondInternationalConferenceonInformationandCommunica⁃tionTechnologyforCompetitiveStrategies(p.98).ACM.
Korel,B.(1990).Automatededucationalsoftwaretestdatagenera⁃tion.EducationalsoftwareEngineering,IEEETransactionson,16(8),870-879.
Korel,B.,&Al-Yami,A.M.(1998).Automatedregressiontestoptimiza⁃tion.ACMSIGSOFTEducationalsoftwareEngineeringNotes,23(2),143-152.
Kumar,A.,&Chakarverty,S.(2011,May).Designoptimizationusingge⁃neticalgorithmandcuckoosearch.In2011IEEEInternationalCon⁃ferenceonElectro/InformationTechnology(EIT)(pp.1-5).IEEE.
Li,H.,&Lam,C.P.(2004).EducationalsoftwareTestDataOptimiza⁃tionusingAntColonyOptimization.InInternationalConferenceonComputationalIntelligence(1-4).
Lim,A.,Rodrigues,B.,&Zhang,X.(2006).Asimulatedannealingandhill-climbingalgorithmforthetravelingtournamentproblem.Europe⁃anJournalofOperationalResearch,174(3),1459-1478.
Luo,J.,Liu,Q.,Yang,Y.,Li,X.,Chen,M.R.,&Cao,W.(2017).Anar⁃tificialbeecolonyalgorithmformultiobjectiveoptimisation.AppliedSoftComputing,50,235-251.
Mala,D.J.,Mohan,V.,&Kamalapriya,M.(2010).Automatededuca⁃tionalsoftwaretestoptimisationframework-anartificialbeecolonyoptimisation-basedapproach.IETeducationalsoftware,4(5),334-348.
Mann,M.(2015).Generatingandprioritizingoptimalpathsusingantcolonyoptimization.ComputationalEcologyandEducationalsoft⁃ware,5(1),1.
Marciniak,J.J.(1994).Encyclopediaofeducationalsoftwareengineer⁃ing.NewYork:Wiley-Interscience.
Markman,K.D.,McMullen,M.N.,&Elizaga,R.A.(2008).Counterfac⁃tualthinking,persistence,andperformance:Atestofthereflectionandevaluationmodel.JournalofExperimentalSocialPsychology,44(2),421-428.
Miller,E.F.(1981).Introductiontoeducationalsoftwaretestingtechnolo⁃gy.Tutorial:EducationalsoftwareTestingandValidationTechniques.SecondEdition,IEEECatalogNo.EHO,(pp.180-200).
Meza,J.,Espitia,H.,Montenegro,C.,&Crespo,R.G.(2015),Statisticalanalysisofamulti-objectiveoptimizationalgorithmbasedonamodelofparticleswithvorticitybehaviour.SoftComputing.Retrievedfromhttps://www.springerprofessional.de/statistical-analysis-of-a-multiobjective-optimization-algorithm/7001512
Meza,J.,Espitia,H.,Montenegro,C.,Giménez,E.,&González-Crespo,R.,(2017).MOVPSO:VortexMulti-ObjectiveParticleSwarmOptimi⁃zation.AppliedSoftComputing,52,1042-1057.
Michael,C.C.,McGraw,G.E.,Schatz,M.A.,&Walton,C.C.(1997).Geneticalgorithmsfordynamictestdataoptimization.InAutomatedEducationalsoftwareEngineering,1997.Proceedingsin12thIEEEInternationalConferenceIEEE(pp.307-308).
Poon,P.L.,Tse,T.H.,Tang,S.F.,&Kuo,F.C.(2011).Contributionsoftesterexperienceandachecklistguidelinetotheidentificationofcategoriesandchoicesforeducationalsoftwaretesting.EducationalsoftwareQualityJournal,19(1),141-163.
Pressman,R.S.(2005).Educationalsoftwareengineering:apractitio⁃ner'sapproach.McGrawHill,NewYork:PalgraveMacmillan.
Radatz,J.,Geraci,A.,&Katki,F.(1990).IEEEstandardglossaryofed⁃ucationalsoftwareengineeringterminology.IEEEStd,610121990(121990),3.
Ramchoun,H.,Amine,M.,Idrissi,J.,Ghanou,Y.,&Ettaouil,M.,(2016).MultilayerPerceptron:ArchitectureOptimizationandTrain⁃ing.InternationalJournalofInteractiveMultimediaandArtificialIn⁃telligence,4(1),26-30.
Ricca,F.,&Tonella,P.(2001).Analysisandtestingofwebapplica⁃tions.InProceedingsofthe23rdinternationalconferenceonEduca⁃tionalsoftwareengineering,IEEEComputerSociety(pp.25-34).
Sakti,A.,Pesant,G.,&Guéhéneuc,Y.G.,(2015).Instancegeneratorandproblemrepresentationtoimproveobjectorientedcodecoverage.IEEETransactionsonEducationalsoftwareEngineering,41(3),294-313.
Semwal,V.B.,Singha,J.,Sharma,P.K.,Chauhan,A.,&Behera,B.(2017).Anoptimizedfeatureselectiontechniquebasedonincremen⁃talfeatureanalysisforbio-metricgaitdataclassificationMultimediaToolsandApplications,76(22),24457-24475.
Singh,Y.(2015).AutomatedExpectedOutputGeneration:IsthisaProb⁃lemthathasbeensolved?.ACMSIGSOFTEducationalsoftwareEngi⁃neeringNotes,40(6),1-5.
Sommerville,I.,(2001).EducationalsoftwareEngineering(6thed.).Bos⁃ton,USA.Addison-Wesley.
Sthamer,H.H.(1995).Theautomaticoptimizationofeducationalsoft⁃waretestdatausinggeneticalgorithms.Doctoraldissertation,Univer⁃sityofGlamorgan.
Tassey,G.(2002).Theeconomicimpactsofinadequateinfrastructureforeducationalsoftwaretesting.NationalInstituteofStandardsandTechnology,RTIProject,7007(011).Retrievedfromhttps://www.nist.gov/sites/default/files/documents/director/planning/report02-3.pdf
Wegener,J.,Baresel,A.,&Sthamer,H.(2001).Evolutionarytestenvi⁃ronmentforautomaticstructuraltesting.InformationandEducationalsoftwareTechnology,43(14),841-854.
Whittaker,J.A.(2000).Whatiseducationalsoftwaretesting?Andwhyisitsohard?.IEEEeducationalsoftware,17(1),70-79.
Yang,X.S.,&Deb,S.(2009).CuckoosearchviaLévyflights.In.WorldCongressonNature&BiologicallyInspiredComputing(pp.210-214).IEEE.
Yang,X.S.,&Deb,S.(2015).CuckooSearchforOptimizationandCom⁃putationalIntelligence.IGIGlobal.
Zamli,K.Z.,Alkazemi,B.Y.,&Kendall,G.,(2016).ATabuSearchhy⁃per-heuristicstrategyfort-waytestsuiteoptimization.AppliedSoftComputing,44,57-74.
附錄:本研究測試的20種教育ICT軟件應用程序
Triangleclassification:rightangled,acuteangledorobtuseangled
Maximumnumberamong3numbers
Divisionofstudentsbasedonmarks
Validtriangleornot
Triangleclassification:equilateral,scalene,isosceles
Classofthegivennetworkaddress
Leapyearornot
Typeofradiationsbyfrequency
PHRASO-MATICGame
Dayofthedate(Mon,Tues,etc.)
Findthetypesofrootsofaquadraticequation(real/imaginary/equal)
LinearSearch
BinarySearch
FindifthreenumbersformaPythagoreantripletornot
Findifastringisapartofagiveninputstring
Findthequadrantofthepointsenteredbytheuser
Findifthenumberenteredbytheuserisperfectornot
Findtheinputgivenbyauserisalphabet,specialcharacteroracharacter
Convertanumbertobinaryorhexadecimaloroctaldependingup⁃onthechoiceenteredbytheuser
FindifanumberenteredbytheuserisArmstrongornot.
作者簡介:
魯賓·岡薩雷斯·克雷斯波(RubénGonzálezCrespo)博士,西班牙拉裡奧哈國際大學(UniversidadInternacionaldeLaRioja)高等工程學院院長,西班牙标準化和認證協會(SpanishAssociationforStandardizationandCertification)會長,認證、質量和技術标準講席,哥倫比亞教育部顧問委員會委員,西班牙國家質量評估與鑒定署(NationalAgencyforQualityEvaluationandAccreditationofSpain)評估專家,國際标準組織(ISO)多個委員會的委員,《交互多媒體和人工智能國際期刊(InternationalJournalofInteractiveMultimediaandArtificialIntelligence)》主編,主持多個歐洲委員會和西班牙教育部資助的課題,發表150多篇論文。
普拉波哈特·庫馬(PrabhatKumar)博士,印度巴特那國家技術學院(NationalInstituteofTechnology,Patna)助理教授,學院IT服務部主管教授,多家國際期刊編委和審稿人,曾在多家著名大學和機構工作,在國内外期刊發表35篇同行評審的論文,研究興趣包括:無線傳感網絡、物聯網、操作系統、軟件工程、電子政務等。
曼珠·卡裡(ManjuKhari)博士,印度安貝德卡高級通信技術與研究研究院(AmbedkarInstituteofAdvancedCommunicationTechnologiesandResearch)助理教授,多家國際期刊編委和審稿人,在國内外期刊發表近百篇同行評審的論文,出版合著兩部,研究興趣包括:軟件測試、軟件質量、軟件度量、信息安全和自然啟發算法。
丹尼爾·布爾戈斯(DanielBurgos)博士,西班牙拉裡奧哈國際大學副校長(知識、轉移和技術)、教授、教育創新和技術研究院院長,聯合國教科文組織e-learning教席,國際遠程開放教育理事會開放教育資源(OER)教席;曾任拉裡奧哈國際大學工程學院院長,源訊研究與創新部教育處總監和用戶體驗實驗室主任,荷蘭開放大學副教授;參與40多個歐盟資助課題,發表120多篇論文;擁有四個博士學位,分别是傳播學博士、計算機科學博士、教育博士和人類學博士。
譯者簡介:肖俊洪,汕頭廣播電視大學教授,DistanceEducation(Taylor&Francis)期刊副主編,System:AnInternationalJournalofEducationalTechnologyandAppliedLinguistics(Elsevier)期刊編委(515041)。https://orcid.org/00000002-5316-2957
收稿日期:2018-01-15
定稿日期:2018-02-05責任
編輯郝丹單玲編校韓世梅