魯賓·岡薩雷斯·克雷斯波 普拉波哈特·庫(kù)馬 曼珠·卡里 丹尼爾·布爾戈斯
【摘 要】 教育軟件和教育ICT軟件應(yīng)用程序測(cè)試的自動(dòng)化能減少測(cè)試維護(hù)失敗的風(fēng)險(xiǎn),選擇最優(yōu)化的測(cè)試套件能提高效率,因此能降低成本和耗時(shí)。本文介紹一種自動(dòng)化測(cè)試工具的研發(fā),這種工具包含教育軟件測(cè)試的兩個(gè)主要自動(dòng)化部分:測(cè)試套件生成和測(cè)試套件優(yōu)化。本文通過(guò)控制流圖表示被試教育軟件的控制流。該工具提供五種測(cè)試套件生成方法,即邊界值測(cè)試、穩(wěn)健性測(cè)試、最壞情況測(cè)試、穩(wěn)健最壞情況測(cè)試和隨機(jī)測(cè)試,并采用人工蜂群算法或布谷鳥(niǎo)搜索算法對(duì)所生成的測(cè)試套件進(jìn)行優(yōu)化,直至達(dá)到預(yù)期的適應(yīng)值水平。與其他算法相比,這種方法能夠以最少的一組測(cè)試用例達(dá)成最大的路徑覆蓋率。最后,我們對(duì)所產(chǎn)生的優(yōu)化測(cè)試套件進(jìn)行自動(dòng)故障檢測(cè)。本文還以一所在線開(kāi)放大學(xué)的一門(mén)STEM科目為案例,介紹這個(gè)工具的使用情況。
【關(guān)鍵詞】 教育軟件;教育ICT軟件應(yīng)用程序;測(cè)試套件生成;測(cè)試套件優(yōu)化;STEM;控制流圖;自動(dòng)化測(cè)試
【中圖分類(lèi)號(hào)】 G420 【文獻(xiàn)標(biāo)識(shí)碼】 B 【文章編號(hào)】 1009-458x(2018)6-0028-12
導(dǎo)讀:長(zhǎng)期以來(lái),信息技術(shù)與教育的深度融合是一個(gè)熱點(diǎn)問(wèn)題。然而,從目前的情況看,這種融合似乎仍然缺乏應(yīng)有的深度,也還沒(méi)有達(dá)成預(yù)期目標(biāo)。2017年12月13日,《中國(guó)教育報(bào)》刊登該報(bào)記者張貴勇撰寫(xiě)的一篇題為“新技術(shù)進(jìn)課堂不等于媒介教育”的文章,文中提到有些課堂“教師利用令人眼花繚亂的電子課件上課,課堂看似熱鬧”,甚至是“課堂上學(xué)生全部使用平板電腦等新媒介設(shè)備來(lái)上課”,他認(rèn)為“盡管電子教材也好,多媒體課件也好,其以數(shù)字化、交互化、多媒化的形式,將教學(xué)內(nèi)容以科學(xué)直觀的視頻、音頻、圖形、文本等展現(xiàn)出來(lái),對(duì)學(xué)生的知識(shí)學(xué)習(xí)有幫助,但沒(méi)有改變傳統(tǒng)的灌輸式學(xué)習(xí)方式,沒(méi)有真正提升學(xué)生對(duì)各種媒介的解讀、運(yùn)用能力”。在我看來(lái),這就是典型的“偽融合”。
本期“國(guó)際論壇”四位作者分別來(lái)自西班牙和印度的遠(yuǎn)程在線教學(xué)大學(xué)和普通高校(研究院),均在技術(shù)與教育的融合領(lǐng)域頗有建樹(shù),其中通信作者丹尼爾·布爾戈斯教授是西班牙拉里奧哈國(guó)際大學(xué)主管研究和技術(shù)的副校長(zhǎng),也是聯(lián)合國(guó)教科文組織e-learning教席和國(guó)際遠(yuǎn)程開(kāi)放教育理事會(huì)開(kāi)放教育資源(OER)教席,一個(gè)真正具有跨學(xué)科學(xué)術(shù)背景的學(xué)者。他曾經(jīng)在我們的通信中闡述他的教育科研理念。他認(rèn)為作為在線教學(xué)機(jī)構(gòu)的一員,自己的研究責(zé)無(wú)旁貸應(yīng)該扎根具體教育實(shí)踐,以解決實(shí)際教育教學(xué)問(wèn)題為首要目的。他說(shuō)學(xué)術(shù)研究應(yīng)該接地氣,應(yīng)該能夠賦權(quán)于教師,就技術(shù)的教育用途而言,研究成果應(yīng)該能為并非技術(shù)行家的教師所用,而且能提高教學(xué)效果、達(dá)成預(yù)期學(xué)習(xí)目標(biāo),否則談不上“融合”。他本人一直身體力行,比如有關(guān)適合大規(guī)模招生的e-learning推薦模型的研究①,也許正因?yàn)樗羞@樣的理念而且又取得了豐碩成果,所以才被聯(lián)合國(guó)教科文組織和國(guó)際遠(yuǎn)程開(kāi)放教育理事會(huì)委以要職。
本文介紹他們的一項(xiàng)新研究成果,即教育軟件的自動(dòng)化測(cè)試。在今天這個(gè)信息時(shí)代,教育軟件無(wú)處不在,從某種意義上講已經(jīng)成為當(dāng)今教育教學(xué)不可或缺的組成部分,甚至可以說(shuō)很多學(xué)科的教學(xué)離不開(kāi)教育軟件的應(yīng)用。比如在生物、醫(yī)學(xué)和護(hù)理等專(zhuān)業(yè)的學(xué)習(xí)中,教育軟件能給學(xué)習(xí)者提供虛擬現(xiàn)實(shí)或增強(qiáng)現(xiàn)實(shí),大大提高學(xué)習(xí)活動(dòng)的真實(shí)性,完成很多在傳統(tǒng)教學(xué)環(huán)境下很難開(kāi)展的學(xué)習(xí)任務(wù);而在機(jī)械、工程和建筑等專(zhuān)業(yè)的學(xué)習(xí)中,學(xué)習(xí)者使用這些軟件開(kāi)展設(shè)計(jì)、運(yùn)算、建模、試驗(yàn)等活動(dòng),即使失敗了也不會(huì)造成任何經(jīng)濟(jì)損失或傷害。對(duì)于遠(yuǎn)程在線學(xué)習(xí)來(lái)講,教育軟件的用途更是非常廣泛,其對(duì)提高學(xué)習(xí)效果、保證教學(xué)質(zhì)量的重要性更是自不待言。
隨著用途越來(lái)越廣泛,教育軟件也越來(lái)越大、越來(lái)越復(fù)雜,因此,“改進(jìn)教育軟件開(kāi)發(fā)技術(shù),加快開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率,這些都勢(shì)在必行。高效的軟件開(kāi)發(fā)過(guò)程應(yīng)該是快捷、容易操作、穩(wěn)健和低成本的”。這其中便涉及軟件測(cè)試,這是“教育軟件開(kāi)發(fā)最具挑戰(zhàn)性的階段”。“教育軟件測(cè)試在軟件開(kāi)發(fā)生命周期的早期進(jìn)行,越是往后才發(fā)現(xiàn)的錯(cuò)誤,修復(fù)的成本越高”,但是這也是一項(xiàng)非常復(fù)雜的工作,手工操作費(fèi)時(shí)耗力、成本高昂,且不說(shuō)可行性的問(wèn)題。因此,本研究在系統(tǒng)回顧(教育)軟件測(cè)試研究成果的基礎(chǔ)上,研發(fā)一種自動(dòng)化測(cè)試工具,即測(cè)試套件生成和測(cè)試套件優(yōu)化。
本研究提出的自動(dòng)化測(cè)試工具自身配備四種黑盒技術(shù)(即邊界值測(cè)試、穩(wěn)健性測(cè)試、最壞情況測(cè)試和穩(wěn)健最壞情況測(cè)試)以及隨機(jī)測(cè)試技術(shù)。可以用其中任何一種技術(shù)生成測(cè)試對(duì)象教育軟件的測(cè)試數(shù)據(jù),然后用人工蜂群算法和布谷鳥(niǎo)搜索算法優(yōu)化這些數(shù)據(jù),再把優(yōu)化的測(cè)試套件應(yīng)用于測(cè)試對(duì)象軟件上以生成實(shí)際輸出,而測(cè)試對(duì)象軟件的控制流圖則會(huì)產(chǎn)生預(yù)期輸出,如果實(shí)際輸出和預(yù)期輸出不一致,則說(shuō)明這個(gè)軟件有錯(cuò)誤。在闡明這種自動(dòng)化測(cè)試工具的工作原理之后,文章還介紹了人工蜂群算法和布谷鳥(niǎo)搜索算法。
本研究用這個(gè)自動(dòng)化測(cè)試工具對(duì)20個(gè)教育軟件應(yīng)用程序進(jìn)行測(cè)試。軟件測(cè)試是在西班牙拉里奧哈國(guó)際大學(xué)工程與技術(shù)學(xué)院的e-learning和社交網(wǎng)絡(luò)碩士學(xué)位課程中進(jìn)行的,有44名學(xué)生參加。限于篇幅,本文以三角形分類(lèi)問(wèn)題的軟件應(yīng)用程序?yàn)槔?,介紹自動(dòng)化測(cè)試工具的運(yùn)作和實(shí)際效果。測(cè)試結(jié)果表明,這個(gè)自動(dòng)化測(cè)試工具在人工蜂群算法和布谷鳥(niǎo)搜索算法的幫助下能以最少的測(cè)試用例覆蓋最多的路徑,減少測(cè)試時(shí)間,降低測(cè)試費(fèi)用,換言之,大大提高測(cè)試效率。研究還發(fā)現(xiàn),兩種算法有各自的優(yōu)點(diǎn),布谷鳥(niǎo)搜索算法的結(jié)果更加穩(wěn)定但路徑覆蓋率較低,而人工蜂群算法的路徑覆蓋率更好,但結(jié)果不如布谷鳥(niǎo)搜索算法穩(wěn)定??紤]到路徑覆蓋率是選擇測(cè)試套件算法更加可靠的決定因素,因此,在本研究中,與布谷鳥(niǎo)搜索算法相比,人工蜂群算法是一個(gè)更好的選擇。文章最后還指出本研究的局限和今后研究方向。
這篇文章的意義不僅體現(xiàn)在研發(fā)一種教育軟件自動(dòng)化測(cè)試工具上,也是技術(shù)與教育融合的一個(gè)很好的例子。對(duì)遠(yuǎn)程(在線)教育工作者而言,它更是布爾戈斯教授的教育科研觀的具體體現(xiàn)。我認(rèn)為這也是值得遠(yuǎn)程(在線)教育機(jī)構(gòu)和實(shí)踐者認(rèn)真謀劃和努力的一個(gè)科研方向——把技術(shù)與教育的融合扎根于遠(yuǎn)程(在線)教育實(shí)踐中,旨在解決實(shí)際教學(xué)問(wèn)題,達(dá)成具體教學(xué)目標(biāo)。
最后,衷心感謝四位國(guó)際同行對(duì)本刊的支持?。ㄐた『椋?/p>
引言
過(guò)去五十年,教育軟件無(wú)所不在,對(duì)教育的影響越來(lái)越大,因此,人們對(duì)可靠教育軟件的需求與日俱增。教育軟件的用途廣泛,幾乎涉及我們生活的每一個(gè)方面,因此軟件越來(lái)越復(fù)雜、越來(lái)越大。在這種背景下,改進(jìn)教育軟件開(kāi)發(fā)技術(shù),加快開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率,這些都勢(shì)在必行。高效的軟件開(kāi)發(fā)過(guò)程應(yīng)該是快捷、容易操作、穩(wěn)健和低成本的。
教育軟件的質(zhì)量通過(guò)在軟件開(kāi)發(fā)生命周期(Software Development Lifecycle)的每一個(gè)層面對(duì)該軟件進(jìn)行嚴(yán)格測(cè)試得以保證(Bertolino, 2007; Burnstein, 2006)。經(jīng)常升級(jí)導(dǎo)致軟件修改的次數(shù)增加,軟件的整體可靠性會(huì)隨著降低。一種應(yīng)對(duì)措施是增加測(cè)試量(Marciniak, 1994)。教育軟件測(cè)試是軟件開(kāi)發(fā)生命周期一個(gè)不可或缺的階段。沒(méi)有經(jīng)過(guò)嚴(yán)格測(cè)試的軟件和錯(cuò)誤代碼每年給教育軟件開(kāi)發(fā)組織造成數(shù)十億美元的損失,很多缺陷是用戶(hù)發(fā)現(xiàn)的(Burnstein, 2006)。測(cè)試不僅是保證教育軟件系統(tǒng)質(zhì)量的有效措施(Miller, 1981),也是教育軟件工程最復(fù)雜和較不為人所了解的領(lǐng)域之一(Whittaker, 2000)。
一些研究闡述了為什么要開(kāi)展教育軟件測(cè)試(Alba & Chicano, 2008; Alshraideh & Bottaci, 2006; Bertolino, 2007; Harman, Mansouri, & Zhang, 2009; Korel & Al-Yami, 1998; Markman, McMullen, & Elizaga, 2008; Pressman, 2005; Ricca & Tonella, 2001; Sommerville, 2001; Sthamer, 1995),原因包括檢測(cè)故障、最大限度降低與教育軟件殘余錯(cuò)誤相關(guān)的風(fēng)險(xiǎn)(Askarunisa, Prameela, & Ramraj, 2009)和對(duì)軟件進(jìn)行全面徹底測(cè)試(Huang & Kuo, 2002)等。在測(cè)試階段發(fā)現(xiàn)的系統(tǒng)錯(cuò)誤多數(shù)產(chǎn)生自軟件開(kāi)發(fā)生命周期的早期(Beizer, 1990),因此,教育軟件測(cè)試應(yīng)在軟件開(kāi)發(fā)生命周期的早期進(jìn)行,越是往后才發(fā)現(xiàn)的錯(cuò)誤,修復(fù)的成本越高。測(cè)試被認(rèn)為是教育軟件開(kāi)發(fā)最具挑戰(zhàn)性的階段,占用全部開(kāi)發(fā)時(shí)間和費(fèi)用的50%~60%(Bertolino, 2007)。
教育軟件測(cè)試可以手工進(jìn)行,也可以通過(guò)自動(dòng)化方式進(jìn)行,目的是驗(yàn)證該軟件是否符合工作或客戶(hù)要求,也用于檢查實(shí)際結(jié)果與預(yù)期輸出是否一致(Radatz, Geraci, & Katki, 1990)。這種測(cè)試通過(guò)使用合適的測(cè)試用例(test case)檢驗(yàn)軟件是否符合要求,以此評(píng)估其質(zhì)量。有些錯(cuò)誤是在設(shè)計(jì)階段因疏忽而引起的,這些錯(cuò)誤應(yīng)該立即得到修復(fù)。教育軟件測(cè)試的目標(biāo)是生成包含精確測(cè)試用例并能達(dá)成最大覆蓋率和盡可能發(fā)現(xiàn)更多錯(cuò)誤的最小測(cè)試套件(test suite)(Sthamer, 1995)。在此過(guò)程中,每一個(gè)測(cè)試用例都是不同的;每一個(gè)測(cè)試用例都配上一組輸入和一系列預(yù)期輸出。測(cè)試的另一個(gè)任務(wù)是生成合適的測(cè)試套件,以滿足測(cè)試標(biāo)準(zhǔn),比如代碼覆蓋(code coverage)(Sakti, Pesant, & Guéhéneuc, 2015)、路徑覆蓋(path coverage)、分支覆蓋(branch coverage)(Sthamer, 1995)和語(yǔ)句覆蓋(statement coverage)(Clarke, 1976)。這方面已經(jīng)有一些測(cè)試標(biāo)準(zhǔn),必須滿足相關(guān)標(biāo)準(zhǔn)才能保證所測(cè)試的教育軟件的質(zhì)量(Ghiduk & Girgis, 2010)。教育軟件的全面測(cè)試很難手工進(jìn)行,有些方面必須實(shí)現(xiàn)自動(dòng)化。
手工生成測(cè)試套件更加耗時(shí)耗力,這是一個(gè)勞動(dòng)密集型而又昂貴的過(guò)程,因此必須減少人工測(cè)試量(Poon, Tse, Tang, & Kuo, 2011)。自動(dòng)化測(cè)試能加快測(cè)試過(guò)程,節(jié)省時(shí)間和成本,達(dá)成最大覆蓋率。此外,測(cè)試過(guò)程的自動(dòng)化還能顯著降低軟件開(kāi)發(fā)維護(hù)費(fèi)用,提高其可靠性。
美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology)的研究表明,軟件測(cè)試基礎(chǔ)設(shè)施不完善所造成的損失每年估計(jì)在222億到595億美元之間(Tassey, 2002)。由此可見(jiàn),必須優(yōu)化測(cè)試過(guò)程,才能既減少對(duì)資源的要求(時(shí)間、經(jīng)費(fèi)和人力等)又保證質(zhì)量。早期的教育軟件技術(shù)開(kāi)發(fā)采用爬山(hill climbing)算法(屬于梯度下降算法[gradient descent algorithms]一族)生成測(cè)試用例和測(cè)試套件(Korel, 1990)。這些方法很耗時(shí)且無(wú)法避免搜索空間的局部最優(yōu)解(local optima)。后來(lái),人們使用元啟發(fā)式搜索算法(metaheuristic search algorithms)解決這個(gè)問(wèn)題(Edvardsson, 1999;Wegener, Baresel, & Sthamer, 2001),比如禁忌搜索算法(Tabu Search)(Díaz, Tuya, Blanco, & Dolado, 2008; Glover, 1997; Zamli, Alkazemi, & Kendall, 2016)、模擬退火算法(Simulated Annealing)(Lim, Rodrigues, & Zhang, 2006)、遺傳算法(Genetic Algorithm,GA)(Alander, Mantere, & Turunen, 1998; Hermadi, Lokan, & Sarker, 2010; Mala, Mohan, & Kamalapriya, 2010)、粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)(Ahmed & Zamli, 2011; Jiang, Shi, Zhang, & Han, 2015)和蟻群優(yōu)化算法(Ant Colony Optimization,ACO)(Li & Lam, 2004; Markman, McMullen, & Elizaga, 2008)。每一種算法都有自己的優(yōu)缺點(diǎn)。工程界不同領(lǐng)域?qū)谒阉鞯乃惴ㄒ呀?jīng)開(kāi)展了廣泛研究、實(shí)驗(yàn)和應(yīng)用(Afzal, Torkar, & Feldt, 2009; Harman, Mansouri, & Zhang, 2009)。
測(cè)試邊界值不足以確保教育軟件的準(zhǔn)確,因?yàn)樗锌赡艿闹刀急仨殰y(cè)試和驗(yàn)證,但這是行不通的。要對(duì)一種教育ICT軟件應(yīng)用程序進(jìn)行全面測(cè)試,只增加兩個(gè)32-bits整數(shù)輸入就要求測(cè)試[264]個(gè)不同測(cè)試用例,即使每秒鐘完成數(shù)千次測(cè)試,這個(gè)量的測(cè)試也需要數(shù)百年時(shí)間才能做完。因此,必須實(shí)現(xiàn)測(cè)試套件優(yōu)化(Test Suite Optimization,TSO)。TSO是去除不必要、多余的測(cè)試用例,把優(yōu)質(zhì)測(cè)試用例納入測(cè)試套件中的過(guò)程,在這里,優(yōu)質(zhì)指的是在路徑覆蓋率、錯(cuò)誤檢測(cè)和代碼覆蓋率方面表現(xiàn)好。TSO從其測(cè)試用例母集中發(fā)現(xiàn)最好的子集。本研究采用人工蜂群算法(Artificial Bee Colony Algorithm,ABC)和布谷鳥(niǎo)搜索算法(Cuckoo Search Algorithm,CSA)實(shí)現(xiàn)TSO。這兩種算法都是受到大自然啟發(fā)的算法(Karaboga, 2005; Yang & Deb, 2009)。
研究背景
符號(hào)和術(shù)語(yǔ)
被測(cè)試的教育軟件(Educational Software Under Test,SUT)的控制流或邏輯可以通過(guò)控制流圖(flow graph)表示。控制流圖由節(jié)點(diǎn)(N)和邊(E)組成,即G(N, E)。用控制流圖表示SUT邏輯,節(jié)點(diǎn)代表語(yǔ)句塊,邊代表從一個(gè)節(jié)點(diǎn)轉(zhuǎn)移到另一個(gè)節(jié)點(diǎn)的流向,形成一條路徑。基于控制流圖有限的節(jié)點(diǎn),可以發(fā)現(xiàn)獨(dú)立路徑(independent path)??刂屏鲌D與SUT的實(shí)際邏輯相似。因此,對(duì)一個(gè)控制流圖的測(cè)試數(shù)據(jù)進(jìn)行的運(yùn)算被看作對(duì)教育ICT軟件應(yīng)用程序的運(yùn)算。這個(gè)軟件應(yīng)用程序的特點(diǎn)應(yīng)該體現(xiàn)在其控制流圖中。
路徑測(cè)試標(biāo)準(zhǔn)
一般而言,路徑測(cè)試包括挑選一組合適的路徑并用測(cè)試數(shù)據(jù)檢測(cè)這些路徑。這是一個(gè)迭代過(guò)程,直至完成對(duì)所有路徑的測(cè)試。但是,一個(gè)控制流圖的所有路徑并非都能通過(guò)遍歷,這些路徑被稱(chēng)為“不可行路徑”。路徑覆蓋率即被成功遍歷的路徑除以全部路徑所得之百分比,如方程式(1)所示:
[路徑覆蓋率%=被成功遍歷的獨(dú)立路徑數(shù)獨(dú)立路徑總數(shù)×100%] eq.(1)
文獻(xiàn)回顧
科瑞爾(Korel, 1990)根據(jù)路徑覆蓋測(cè)試標(biāo)準(zhǔn),采用包含各種可能的測(cè)試數(shù)據(jù)的動(dòng)態(tài)路徑測(cè)試技術(shù)生成教育軟件測(cè)試數(shù)據(jù),目的是獲取執(zhí)行期望路徑的測(cè)試用例值。迪森等(Deason, Brown, Chang, & Cross, 1991)提出基于規(guī)則的測(cè)試數(shù)據(jù)生成方法,采用路徑/謂詞分析或隨機(jī)測(cè)試數(shù)據(jù)生成法。他們認(rèn)為因?yàn)闇y(cè)試用例可能無(wú)法覆蓋所有路徑,應(yīng)該對(duì)測(cè)試套件進(jìn)行優(yōu)化。卡拉博加(Karaboga, 2005)根據(jù)蜜蜂群智能覓食行為,提出一種新的人工蜂群算法解決多維度和多模態(tài)問(wèn)題??ɡ┘雍桶退箞D爾克(Karaboga & Basturk, 2007)后來(lái)又提出ABC算法解決約束優(yōu)化問(wèn)題。羅等(Luo, Liu, Yang, Li, Chen, & Cao, 2016)提出一種稱(chēng)為ABC覆蓋陣列生成器(covering array generator)的新算法,生成覆蓋陣列和結(jié)對(duì)測(cè)試的混合覆蓋陣列。測(cè)試用例優(yōu)先級(jí)排序(Test case prioritization)指的是重新排列測(cè)試用例執(zhí)行順序,以在某一特定時(shí)間段盡可能發(fā)現(xiàn)更多錯(cuò)誤。作者們還進(jìn)一步提出一種高效的多目標(biāo)蟻群優(yōu)化方法(multi-objective ant colony optimization)解決多目標(biāo)和高維多目標(biāo)問(wèn)題(multi-objective and many-objective problems)。這種技術(shù)基于帕累托占優(yōu)和偏好指標(biāo)(Pareto dominance and preference indicators),使外部包(external archives)在每一次生成中產(chǎn)生一種有效的解。
楊和戴布(Yang & Deb, 2015)提出CSA算法解決包括NP-hard問(wèn)題的優(yōu)化問(wèn)題,而甘多米等(Gandomi, Yang, & Alavi, 2013)則用CSA在沒(méi)有調(diào)整測(cè)試參數(shù)的情況下解決結(jié)構(gòu)問(wèn)題,使CSA成為像PSO一樣的穩(wěn)健且更加通用的應(yīng)用程序(Meza, Espitia, Montenegro, Giménez, & González-Crespo, 2016)。庫(kù)瑪和查克拉瓦蒂(Kumar & Chakarverty, 2011)使用GA和CSA設(shè)計(jì)嵌入式系統(tǒng)空間探索問(wèn)題。CSA無(wú)需對(duì)參數(shù)調(diào)整進(jìn)行過(guò)多試驗(yàn)便能夠在更短時(shí)間內(nèi)產(chǎn)生更好的種群。在對(duì)SUT更長(zhǎng)時(shí)間運(yùn)算之后通過(guò)GA獲得最佳解。因此,CSA能在更短運(yùn)算時(shí)間內(nèi)高效生成某一個(gè)問(wèn)題的多種解,而GA則在求最佳解方面效果最好。拉姆鄒恩等(Ramchoun, Amine, Idrissi, Ghanou, & Ettaouil, 2016)采用GA,用反向傳播算法(back-propagation algorithm)訓(xùn)練網(wǎng)絡(luò)以?xún)?yōu)化網(wǎng)絡(luò)問(wèn)題。
馬拉等(Mala, Mohan, & Kamalapriya, 2010)提出一種新的教育軟件測(cè)試優(yōu)化范式,采用基于混合智能的搜索方法達(dá)成教育軟件測(cè)試最優(yōu)化。這個(gè)框架的優(yōu)點(diǎn)是自動(dòng)生成測(cè)試用例,發(fā)現(xiàn)最優(yōu)測(cè)試順序,減少測(cè)試用例數(shù)量和把測(cè)試次數(shù)降到最低。
邁克爾等(Michael, McGraw, Schatz, & Walton, 1997)提出基于啟發(fā)式搜索技術(shù)的方法解決教育軟件測(cè)試的各種問(wèn)題,他們通過(guò)在各種軟件應(yīng)用程序中使用GA和隨機(jī)測(cè)試技術(shù)生成測(cè)試數(shù)據(jù),比較這兩種技術(shù),發(fā)現(xiàn)GA生成更有效的測(cè)試數(shù)據(jù)。
卡里和庫(kù)瑪(Khari & Kumar, 2016)提出基于TSO搜索的方法,把局部搜索和全局搜索結(jié)合起來(lái),在更短時(shí)間、迭代次數(shù)更少而空間復(fù)雜性的增加可以忽略不計(jì)的情況下獲得最優(yōu)結(jié)果。辛格(Singh, 2015)的結(jié)論肯定自動(dòng)化生成預(yù)期輸出的重要性,因?yàn)榕c人工操作相比,這樣能夠大大降低費(fèi)用和時(shí)間。但是,目前還沒(méi)有合適、完整和穩(wěn)健的技術(shù)。
巴朗等(Barón, Crespo, Espada, & Martínez, 2015)提出一個(gè)學(xué)習(xí)考核框架,該框架包括結(jié)構(gòu)方程模型和模糊認(rèn)知圖,旨在促進(jìn)智慧環(huán)境下的學(xué)習(xí)評(píng)價(jià)。森沃爾等(Semwal, Singha, Sharma, Chauhan, & Behera, 2016)使用不同機(jī)器學(xué)習(xí)技術(shù)(如支持向量機(jī)、人工神經(jīng)網(wǎng)絡(luò)、KNN分類(lèi)算法和分類(lèi)器融合等)發(fā)現(xiàn)機(jī)器學(xué)習(xí)的原理和分類(lèi)步態(tài)數(shù)據(jù)。梅扎等(Meza, Espitia, Montenegro, & Crespo, 2015)提出像旋轉(zhuǎn)和直線運(yùn)動(dòng)這樣的多目標(biāo)優(yōu)化(multi-objective optimization)策略,該策略建立在PSO和探索與利用(E & E)結(jié)果的基礎(chǔ)上。查克里等(Chakri, Khelif, Benouaret, & Yang, 2017)提出一種修改的蝙蝠算法(bat algorithm)解決某些情況下基礎(chǔ)蝙蝠算法探索能力低所引起的優(yōu)化問(wèn)題,提高該算法在探索和利用方面的效率。
本文嘗試從不同角度研發(fā)一種自動(dòng)化測(cè)試工具,即測(cè)試套件生成(Test Suite Generation,TSG)和測(cè)試套件優(yōu)化(Test Suite Optimization,TSO)。
自動(dòng)化測(cè)試工具的框架
自動(dòng)化測(cè)試模型
本模型的測(cè)試套件生成包含四種黑盒技術(shù),即邊界值測(cè)試(boundary value testing)、穩(wěn)健性測(cè)試(robustness testing)、最壞情況測(cè)試(worst case testing)和穩(wěn)健最壞情況測(cè)試(robustness worst case testing),以及隨機(jī)測(cè)試(random testing)。圖1是其完整框架。我們可以用其中任何一種技術(shù)生成SUT的測(cè)試數(shù)據(jù),然后用ABC或CSA對(duì)這些數(shù)據(jù)進(jìn)行優(yōu)化,將優(yōu)化的測(cè)試套件應(yīng)用于SUT上會(huì)生成實(shí)際輸出,而SUT的控制流圖則會(huì)產(chǎn)生預(yù)期輸出,通過(guò)比較實(shí)際輸出和預(yù)期輸出發(fā)現(xiàn)SUT的錯(cuò)誤。這個(gè)框架的組成部分如下:
·輸入:控制流圖和SUT。
·處理模塊:采用上述測(cè)試技術(shù)完成TSG,由于所生成的測(cè)試套件可能會(huì)也可能不會(huì)對(duì)SUT有100%的路徑覆蓋,因此將其輸入第二階段,即TSO。這個(gè)階段是在ABC和CSA幫助下完成的,最終獲得優(yōu)化測(cè)試套件。
·錯(cuò)誤檢測(cè):將生成的測(cè)試套件與控制流圖和SUT一起使用,分別獲得預(yù)期輸出和實(shí)際輸出。如果兩種輸出不一致,則說(shuō)明SUT有錯(cuò)誤。
[ith]測(cè)試用例的方程式如下:
[xi=ti1,ti2,ti3,……tik……,tiN]
where [i=1,2,…SN] eq.(2)
在方程式(2)中,每一個(gè)測(cè)試用例xi有N個(gè)值,N等于包含教育ICT軟件應(yīng)用程序代碼的源文件的變量數(shù)目,tik代表每一個(gè)變量的獨(dú)立值集(individual set of values),SN 表示每個(gè)變量的每一個(gè)獨(dú)立tik集(each individual set of tik for each variable)包含的值的數(shù)目。
已存在的測(cè)試用例發(fā)生位變異(mutation of bits)時(shí)產(chǎn)生新的隨機(jī)測(cè)試用例。變異函數(shù)從這些位中選擇一個(gè)并加以擾動(dòng)。在方程式(3)中,xi是輸入的測(cè)試用例,yi是變異測(cè)試用例:
yi= mutate (xi) eq.(3)
如果已存在和變異測(cè)試用例的獨(dú)立路徑相同,那么根據(jù)馬提亞斯(Matyas)目標(biāo)函數(shù)的值選擇其中一個(gè)測(cè)試用例(Jamil & Yang, 2013),如方程式(4)和(5)所示:
For xi, p = (0.26 * [i=1Nt2ij]-0.48 * [j=1Ntij]) eq.(4)
For yi, q = (0.26 * [i=1Nt2ij]-0.48 * [j=1Ntij]) eq.(5)
如果 p > q, 那么
xi是比yi更好的測(cè)試用例
否則,
yi是比 xi更好的測(cè)試用例
結(jié)束分支。
ABC算法
ABC算法基于蜜蜂群的智能行為,包括三種平行工作的蜂:雇傭蜂、觀察蜂和偵察蜂。雇傭蜂的數(shù)量與觀察蜂的數(shù)量相同,等于SN。我們必須界定該算法的終止條件,通過(guò)重復(fù)以下步驟尋找每一個(gè)食物源ai:
1. 隨機(jī)確定食物源[ai]以外的鄰居食物源[a'i]。
2. 用目標(biāo)函數(shù)評(píng)估鄰居食物源[a'i],如果[a'i]優(yōu)于ai,則用其代替ai。否則,把嘗試次數(shù)增加一次。
在偵察蜂時(shí)期,放棄嘗試次數(shù)多于終止條件值的食物源,改用另一個(gè)隨機(jī)食物源。ABC算法提供全局搜索,最終把有最佳目標(biāo)函數(shù)值的食物源儲(chǔ)存在記憶中。
ABC算法用于測(cè)試的完整偽代碼如下:
第1步:初始化ABC控制參數(shù)。
第2步:用本測(cè)試工具的任何測(cè)試技術(shù)初始化初始種群。
第3步:評(píng)估這個(gè)種群并把通過(guò)新獨(dú)立路徑的測(cè)試用例添加到結(jié)果集。
第4步:cycle=1
第5步:Do
【雇傭蜂和觀察蜂時(shí)期】
a. 用方程式(3)隨機(jī)確定[ai]以外的鄰居測(cè)試用例[a'i]。
b. 用方程式(4)和(5)評(píng)估食物源[a'i];如果[a'i]優(yōu)于ai,則用其代替ai。如果沒(méi)有更好的解,則增加嘗試次數(shù)。
【偵察蜂時(shí)期】
c. 確定嘗試次數(shù)多于終止條件值的測(cè)試用例并通過(guò)方程式(3)用新的隨機(jī)測(cè)試用例取代它們。
d. cycle = cycle + 1
第6步:While cycle!=終止條件
CSA算法
CSA算法基于布谷鳥(niǎo)下蛋的方法。布谷鳥(niǎo)是在其他鳥(niǎo)的巢下蛋的(Yang & Deb, 2015)。在教育軟件測(cè)試中使用CSA,布谷鳥(niǎo)的蛋代表測(cè)試用例,巢代表教育軟件的獨(dú)立路徑,蛋的適應(yīng)值(fitness)代表測(cè)試用例的目標(biāo)函數(shù)值。每一只布谷鳥(niǎo)隨機(jī)選擇其他鳥(niǎo)的一個(gè)巢,判斷已經(jīng)存放在里面的蛋的適應(yīng)值。在這里,適應(yīng)值代表布谷鳥(niǎo)的蛋與巢里原來(lái)的蛋的差別。如果布谷鳥(niǎo)的蛋的適應(yīng)值優(yōu)于原來(lái)的蛋,布谷鳥(niǎo)就會(huì)把那個(gè)蛋扔掉,用自己的蛋取而代之。否則,它會(huì)繼續(xù)尋找另一個(gè)巢。
CSA算法用于測(cè)試的完整偽代碼如下:
第1步:初始化終止條件的控制參數(shù)。
第2步:用本測(cè)試工具的任何測(cè)試技術(shù)初始化初始種群。
第3步:評(píng)估這個(gè)種群并把通過(guò)新獨(dú)立路徑的測(cè)試用例添加到結(jié)果集。
第4步:cycle=1
第5步:Do
【布谷鳥(niǎo)時(shí)期】
e. 用方程式(3)隨機(jī)確定一只準(zhǔn)備下蛋的布谷鳥(niǎo)(測(cè)試用例)[c'i]。
f. 隨機(jī)找一個(gè)巢,即檢查測(cè)試用例通過(guò)哪條獨(dú)立路徑。
【換/扔蛋時(shí)期】
g. 用方程式(4)和(5)評(píng)估[c'i] ;如果[c'i] 優(yōu)于原來(lái)的蛋(測(cè)試用例)[ci ],則用其代替[ci ]。如果沒(méi)有更好的解,則尋找另一個(gè)巢。
h. cycle = cycle + 1
第6步:While cycle!=終止條件
STEM案例:三角形分類(lèi)問(wèn)題
雖然我們對(duì)研發(fā)的20個(gè)教育ICT軟件應(yīng)用程序都進(jìn)行了測(cè)試,限于篇幅,本文以其中一個(gè)作為案例,介紹自動(dòng)化測(cè)試工具的運(yùn)作。
三角形分類(lèi)問(wèn)題
這是STEM中數(shù)學(xué)科目的基礎(chǔ)問(wèn)題,涉及辨識(shí)三角形的性質(zhì),即是直角三角形、鈍角三角形、銳角三角形或不是三角形。2017年初,我們?cè)谖靼嘌览飱W哈國(guó)際大學(xué)(Universidad Internacional de La Rioja)工程與技術(shù)學(xué)院的e-learning和社交網(wǎng)絡(luò)碩士學(xué)位課程中進(jìn)行軟件測(cè)試,共有48名學(xué)生參加,4名后來(lái)退出,實(shí)際有44人參加本研究。拉里奧哈國(guó)際大學(xué)是一所在線大學(xué),工程與技術(shù)學(xué)院有3,000多名學(xué)生,因此能否用合適的教育軟件開(kāi)展STEM科目的教學(xué)對(duì)學(xué)習(xí)結(jié)果會(huì)有重要影響。另一方面,這也與歐洲委員會(huì)①和經(jīng)濟(jì)合作與發(fā)展組織②有關(guān)這個(gè)問(wèn)題的指導(dǎo)原則相一致。
我們用三角形分類(lèi)問(wèn)題展示ABC和CSA算法的使用。我們首先將這個(gè)問(wèn)題的控制流圖和SUT輸入測(cè)試工具,據(jù)此生成測(cè)試套件并對(duì)所生成的測(cè)試套件進(jìn)行優(yōu)化。如上所述,這個(gè)工具有四種黑盒技術(shù)和隨機(jī)測(cè)試技術(shù),這些技術(shù)用于生成測(cè)試套件。TSO則是用ABC或CSA進(jìn)行運(yùn)算。優(yōu)化的測(cè)試套件分別與控制流圖和SUT一起生成預(yù)期輸出和實(shí)際輸出,通過(guò)對(duì)這兩種輸出的比較發(fā)現(xiàn)SUT的錯(cuò)誤。整個(gè)過(guò)程如圖1所示。
控制流圖
控制流圖以圖形表示SUT的預(yù)期輸出。本案例的控制流圖是手工制作的,然后輸入測(cè)試工具(見(jiàn)圖2)。C0, C1, C2, C3, C4, C5是這個(gè)軟件應(yīng)用程序的條件,這些條件導(dǎo)致不同路徑的出現(xiàn)。N0, N1, N2, N3, N4, N5, N6, N7, N8, N9, N10和N11代表代碼的節(jié)點(diǎn)。圖2是手工制作的控制流圖,圖3則是自動(dòng)化測(cè)試工具顯示的控制流圖。
獨(dú)立路徑:獨(dú)立路徑指的是在控制流圖中至少遍歷一條沒(méi)有被其他任何路徑遍歷過(guò)的邊的路徑。根據(jù)圖2的控制流圖,三角形分類(lèi)問(wèn)題的所有獨(dú)立路徑如表1所示。
ABC運(yùn)算
初始種群
可以用上述任何一種黑盒技術(shù)或隨機(jī)測(cè)試生成初始種群。本案例用的是隨機(jī)技術(shù),規(guī)定測(cè)試用例數(shù)目等于10(隨機(jī)選擇),測(cè)試用例和它們的目標(biāo)值見(jiàn)表2。表中測(cè)試用例的三個(gè)值a、b和c表示三角形三條邊的值,目標(biāo)值表示的是函數(shù)最小化的值。
雇傭蜂第一次迭代
雇傭蜂第一次迭代之后,每一條獨(dú)立路徑只剩下一個(gè)測(cè)試用例,這是對(duì)所有通過(guò)相同路徑的測(cè)試用例的目標(biāo)值進(jìn)行比較的結(jié)果。目標(biāo)值最小的測(cè)試用例被認(rèn)為是這條路徑最佳的測(cè)試用例。
以通過(guò)路徑N0-N1-N2的兩個(gè)測(cè)試用例為例,它們分別是測(cè)試用例1(目標(biāo)值-189175.5)和測(cè)試用例8(目標(biāo)值-226215.86)(見(jiàn)表2),測(cè)試用例8的目標(biāo)值比測(cè)試用例1小,它三邊的值分別是a=235,b=65,c=33,被認(rèn)為比測(cè)試用例1更好,因此被儲(chǔ)存在記憶中。表3是第一次迭代的結(jié)果。
雇傭蜂第二次迭代
在雇傭蜂的第二次迭代中,對(duì)第一次迭代保留下來(lái)的優(yōu)化測(cè)試用例進(jìn)行變異。這些測(cè)試用例的變異導(dǎo)致新測(cè)試用例的產(chǎn)生,雇傭蜂對(duì)新測(cè)試用例做進(jìn)一步運(yùn)算。如果任何測(cè)試用例攔截到還沒(méi)有被其他測(cè)試用例遍歷過(guò)的路徑,那么這個(gè)測(cè)試用例就被保存在與之相應(yīng)的記憶中。如果發(fā)現(xiàn)任何測(cè)試用例遍歷已經(jīng)有測(cè)試用例通過(guò)的路徑,那么比較這兩個(gè)測(cè)試用例的目標(biāo)值,把目標(biāo)值較小的測(cè)試用例儲(chǔ)存在記憶中。測(cè)試用例的變異和比較用方程式(4)和(5)進(jìn)行。
以表3通過(guò)路徑N0-N1-N2的測(cè)試用例(a=235, b=65, c=33)為例。用XOR運(yùn)算對(duì)該測(cè)試用例的一個(gè)值進(jìn)行變異:
(235)10 = (11101011)2
11101011 XOR 10000000 = 01101011
(01101011)2 = (107)10
產(chǎn)生變異測(cè)試用例a=107, b=65, c=33。這個(gè)測(cè)試用例通過(guò)路徑N0-N1-N3-N5-N7-N8-N11,因此相應(yīng)路徑的記憶中就增加了這個(gè)變異測(cè)試用例。表4是第二次迭代的結(jié)果。
以此類(lèi)推,更多的迭代會(huì)增強(qiáng)其記憶。圖4是用ABC優(yōu)化測(cè)試套件的截圖。
CSA運(yùn)算
初始種群
可以用上述任何一種黑盒技術(shù)或隨機(jī)測(cè)試生成初始種群。本案例用的是隨機(jī)技術(shù),規(guī)定測(cè)試用例數(shù)目等于10,測(cè)試用例和它們的目標(biāo)值見(jiàn)表5。
CSA第一次循環(huán)
CSA 第一次循環(huán)之后,每一條獨(dú)立路徑只剩下一個(gè)測(cè)試用例,這是對(duì)所有通過(guò)相同路徑的測(cè)試用例的目標(biāo)值進(jìn)行比較的結(jié)果。目標(biāo)值最小的測(cè)試用例被認(rèn)為是這條路徑最佳的測(cè)試用例。
以通過(guò)路徑N0-N1-N2的三個(gè)測(cè)試用例為例,它們分別是測(cè)試用例2(目標(biāo)值-838870.2)、4(目標(biāo)值-798429.0)和6(目標(biāo)值-1499877.56)(見(jiàn)表5)。這三個(gè)測(cè)試用例中,測(cè)試用例6的目標(biāo)值最小,它三邊的值分別是a=912,b=5,c=857。這個(gè)測(cè)試用例被認(rèn)為比其他兩個(gè)測(cè)試用例更好,因此被儲(chǔ)存在記憶中。表6是第一次循環(huán)的結(jié)果。
CSA第二次循環(huán)
CSA第二次循環(huán)中,測(cè)試工具隨機(jī)從搜索空間選取一個(gè)新測(cè)試用例。如果發(fā)現(xiàn)這個(gè)測(cè)試用例遍歷已經(jīng)有測(cè)試用例通過(guò)的路徑,那么比較這兩個(gè)測(cè)試用例的目標(biāo)值,把目標(biāo)值較小的測(cè)試用例儲(chǔ)存在記憶中。否則,這個(gè)測(cè)試用例便保存在與這條路徑相應(yīng)的記憶中。表7是第二次循環(huán)的更新數(shù)據(jù)。
在第二次循環(huán)中,隨機(jī)生成的一個(gè)新測(cè)試用例遍歷路徑2。新的循環(huán)又發(fā)現(xiàn)新測(cè)試用例,一旦發(fā)現(xiàn)更
好的測(cè)試用例,表格會(huì)隨著持續(xù)更新。更多的循環(huán)會(huì)增強(qiáng)其記憶。圖5是用CSA優(yōu)化測(cè)試套件的截圖。
實(shí)驗(yàn)結(jié)果
表8和表9是用ABC和CSA測(cè)試20種教育ICT軟件應(yīng)用程序所獲得的路徑覆蓋率和適應(yīng)值(20種軟件應(yīng)用程序的名單見(jiàn)附錄)。
表8和表9是用ABC和CSA對(duì)20種教育ICT軟件應(yīng)用程序的測(cè)試套件進(jìn)行優(yōu)化測(cè)試的結(jié)果。測(cè)試結(jié)果顯示,用ABC的平均路徑覆蓋率是90.3%,而CSA的平均覆蓋率是75.4%。在優(yōu)化數(shù)據(jù)的適應(yīng)值方面,ABC也優(yōu)于CSA。這說(shuō)明在路徑覆蓋方面ABC的表現(xiàn)優(yōu)于CSA。另外,研究發(fā)現(xiàn),除了教育ICT軟件應(yīng)用程序3外,總體而言,適應(yīng)值越高,路徑覆蓋率越高。應(yīng)用程序3的適應(yīng)值更高,但路徑覆蓋率卻更低。這可能是由于CSA的各種限制條件所引起的,它們以較低路徑覆蓋率換取優(yōu)質(zhì)的數(shù)據(jù)優(yōu)化。
我們的這個(gè)工具在這兩種算法的幫助下能以最少的測(cè)試用例覆蓋最多的路徑,這有助于減少測(cè)試時(shí)間,大大降低測(cè)試費(fèi)用。
用ABC得出這些軟件應(yīng)用程序適應(yīng)值的標(biāo)準(zhǔn)差是2.69E-5單位,而CSA的標(biāo)準(zhǔn)差是1.14E-7單位。換言之,CSA的結(jié)果更加一致但路徑覆蓋率較低,而ABC的路徑覆蓋率更好,但結(jié)果不如CSA一致。因?yàn)樵跒闇y(cè)試套件選擇算法上路徑覆蓋率是更加可靠的決定因素,因此,在本研究中ABC證明是更好的選擇。
結(jié)束語(yǔ)
研究局限
雖然我們已經(jīng)采取一切措施保證研究結(jié)果的真實(shí)性,但是有些因素可能會(huì)影響研究結(jié)果的外部和內(nèi)部效度等。為此,我們?cè)诙喾N教育ICT軟件應(yīng)用程序上測(cè)試ABC和CSA方法,減少上述風(fēng)險(xiǎn)。為了避免結(jié)果偏差,我們一共測(cè)試了20種軟件程序。為了使測(cè)試工具認(rèn)為代碼沒(méi)有錯(cuò)誤,控制流圖必須正確無(wú)誤,哪怕代碼包括一些錯(cuò)誤。雖然我們采用隨機(jī)方法,但是所得到的測(cè)試數(shù)據(jù)是最優(yōu)化的。有時(shí),路徑覆蓋率難以達(dá)到100%,這是因?yàn)榭赡苡行┞窂缴蓽y(cè)試用例的可能性較低。本研究的SUT可能比較大,但測(cè)試人員應(yīng)該使用它的控制流圖才能進(jìn)行測(cè)試。本測(cè)試工具只能用于用Java技術(shù)研發(fā)的教育ICT軟件應(yīng)用程序,目前尚未用于其他軟件應(yīng)用程序的測(cè)試。其運(yùn)算速度和表現(xiàn)可能會(huì)因平臺(tái)而異。本測(cè)試工具需要Java運(yùn)行環(huán)境。
結(jié)論和下一步計(jì)劃
研究發(fā)現(xiàn),在執(zhí)行自動(dòng)化TSO以達(dá)成所生成的測(cè)試套件最小化卻有最大路徑覆蓋率的目標(biāo)方面,ABC方法優(yōu)于CSA方法。案例研究顯示,采用這兩種算法在本研究的自動(dòng)化測(cè)試工具上測(cè)試20種教育ICT軟件應(yīng)用程序,ABC的路徑覆蓋率平均值為90.3%,而CSA則是75.4%。由此可見(jiàn),ABC在路徑覆蓋率上優(yōu)于CSA,是TSO更可靠的選擇。
在今后的研究中,可以運(yùn)用其他自然啟發(fā)算法改進(jìn)我們所提出的這個(gè)模型。另外,也可以在各方面混合使用ABC和CSA以獲得更好結(jié)果。上述算法的TSG輸入可以通過(guò)其他方法實(shí)現(xiàn)自動(dòng)化,比如決策盒(decision box)或因果法(cause-effect),這些方法提供更少的測(cè)試套件輸入。
【鳴謝】本研究得到拉里奧哈國(guó)際大學(xué)通過(guò)工程與技術(shù)學(xué)院(School for Engineering & Technology)(http://esit.unir.net)和教育創(chuàng)新和技術(shù)研究院(Research Institute for Innovation & Technology in Education,簡(jiǎn)稱(chēng)iTED, http://research.unir.net/ited)提供的部分資助。
[參考文獻(xiàn)]
Afzal, W., Torkar, R., & Feldt, R. (2009). A systematic review of search-based testing for non-functional system properties. Information and Educational software Technology, 51 (6), 957-976.
Ahmed, B. S., & Zamli, K. Z. (2011). A variable strength interaction test suites generation strategy using Particle Swarm Optimization. Journal of Systems and Educational software, 84 (12), 2171-2185.
Alander, J. T., Mantere, T., & Turunen, P. (1998). Genetic algorithm based educational software testing. In G. D. Smith, N. C. Steele, & R. F. Albrecht (Eds.), Artificial Neural Nets and Genetic Algorithms, Proceedings of International Conference (ICANNGA97) (pp. 325–328). Norwich, UK: Springer-Verlag, Wien.
Alshraideh, M., & Bottaci, L. (2006). Search-based software test data generation for string data using progtam-specific search operators. Educational software Testing, Verification and Reliability, 16 (3), 175-203.
Alba, E., & Chicano, F. (2008). Observations in using parallel and sequential evolutionary algorithms for automatic educational software testing. Computers and Operations Research, 35 (10), 3161-3183.
Askarunisa, A., Prameela, P., & Ramraj, N. (2009). DBGEN-Database (Test) GENerator-An Automated Framework for Database Application Testing. International Journal of Database Theory and Application, 2(3), 27-54.
Barón, H. B., Crespo, R. G., Espada, J. P., & Martínez, O. S. (2015), Assessment of learning in environments interactive through fuzzy cognitive maps. Soft Computing, 19(4), pp. 1037-1050.
Beizer, B. (1990). Educational software Testing Techniques (2nd edition). New York: Van Nostrand Reinhold.
Bertolino, A. (2007). Educational software testing research: Achievements, challenges, dreams. In Future of Software Engineering, 2007. FOSE '07 (pp. 85-103). Minneapolis, MN.
Burnstein, I. (2006). Practical educational software testing: a process-oriented approach. Springer New York: Springer Science and Business Media.
Chakri, A., Khelif, R., Benouaret, M., & Yang, X. S. (2017), New directional bat algorithm for continuous optimization problems. Expert Systems with Applications, 69, 159-175.
Clarke, L. A., (1976). A system to generate test data and symbolically execute programs. IEEE Transactions on educational software engineering, 3, 215-222.
Deason, W. H., Brown, D. B., Chang, K. H., & Cross, J. H. (1991). A rule-based educational software test data generator. IEEE Transactions on Knowledge and Data Engineering, 3(1), 108-117.
Díaz, E., Tuya, J., Blanco, R., & Dolado, J. J. (2008). A tabu search algorithm for structural educational software testing. Computers and Operations Research, 35 (10), 3052-3072.
Edvardsson, J. (1999). A survey on automatic test data generation. In Proceedings of the 2nd Conference on Computer Science and Engineering (pp.21-28). Linkoping, ECSEL.
Gandomi, A. H., Yang, X. S., & Alavi, A. H. (2013). Cuckoo search algorithm: a metaheuristic approach to solve structural optimization problems. Engineering with computers, 29(1), 17-35.
Ghiduk, A. S., & Girgis, M. R. (2010). Using genetic algorithms and dominance concepts for generating reduced test data. Informatica (Slovenia), 34(3), 377-385.
Glover, F. (1997). Tabu search and adaptive memory educational ICT applications—advances, applications and challenges. In R.S. Barr, R.V. Helgason, & J.L. Kennington (Eds.), Interfaces in computer science and operations research (pp.1-75). Norwell, MA: Kluwer Academic Publishers.
Harman, M., Mansouri, S. A., & Zhang, Y. (2009). Search based educational software engineering: A comprehensive analysis and review of trends techniques and applications. Department of Computer Science, Kings College London, Tech. Rep. TR-09-03.
Hermadi, I., Lokan, C., & Sarker, R. (2010). Genetic algorithm based path testing: challenges and key parameters. In Educational software Engineering (WCSE), 2010 Second World Congress on IEEE Vol. 2 (pp. 241-244). Wuhan, China.
Huang, C. Y., & Kuo, S. Y. (2002). Analysis of incorporating logistic testing-effort function into educational software reliability modeling. IEEE Transactions on Reliability, 51(3), 261-270.
Jamil, M., & Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194.
Jiang, S., Shi, J., Zhang, Y., & Han, H. (2015). Automatic test data optimization based on reduced adaptive particle swarm optimization algorithm. Neuro computing, 158, 109-116.
Karaboga, D. (2005). An idea based on honey bee swarm for numerical optimization (Vol. 200). Technical report-tr06, Erciyes University, engineering faculty, computer engineering department.
Karaboga, D., & Basturk, B. (2007). Artificial bee colony (ABC) optimization algorithm for solving constrained optimization problems. In P. Melin, O. Castillo, L. T. Aguilar, & W. Pedrycz (Eds.), Foundations of Fuzzy Logic and Soft Computing (pp.789-798). Berlin Heidelberg: Springer.
Khari, M., & Kumar, P. (2016). A novel approach for educational software test data generation using cuckoo algorithm. In Proceedings of the Second International Conference on Information and Communication Technology for Competitive Strategies (p. 98). ACM.
Korel, B. (1990). Automated educational software test data generation. Educational software Engineering, IEEE Transactions on, 16(8), 870-879.
Korel, B., & Al-Yami, A. M. (1998). Automated regression test optimization. ACM SIGSOFT Educational software Engineering Notes, 23 (2), 143-152.
Kumar, A., & Chakarverty, S. (2011, May). Design optimization using genetic algorithm and cuckoo search. In 2011 IEEE International Conference on Electro/Information Technology (EIT) (pp. 1-5). IEEE.
Li, H., & Lam, C. P. (2004). Educational software Test Data Optimization using Ant Colony Optimization. In International Conference on Computational Intelligence (1-4).
Lim, A., Rodrigues, B., & Zhang, X. (2006). A simulated annealing and hill-climbing algorithm for the traveling tournament problem. European Journal of Operational Research, 174 (3), 1459-1478.
Luo, J., Liu, Q., Yang, Y., Li, X., Chen, M. R., & Cao, W. (2017). An artificial bee colony algorithm for multiobjective optimisation. Applied Soft Computing, 50, 235-251.
Mala, D. J., Mohan, V., & Kamalapriya, M. (2010). Automated educational software test optimisation framework-an artificial bee colony optimisation-based approach. IET educational software, 4(5), 334-348.
Mann, M. (2015). Generating and prioritizing optimal paths using ant colony optimization. Computational Ecology and Educational software, 5 (1), 1.
Marciniak, J. J. (1994). Encyclopedia of educational software engineering. New York: Wiley-Interscience.
Markman, K. D., McMullen, M. N., & Elizaga, R. A. (2008). Counterfactual thinking, persistence, and performance: A test of the reflection and evaluation model. Journal of Experimental Social Psychology, 44 (2), 421-428.
Miller, E. F. (1981). Introduction to educational software testing technology. Tutorial: Educational software Testing and Validation Techniques. Second Edition, IEEE Catalog No. EHO, (pp. 180-200).
Meza, J., Espitia, H., Montenegro, C., & Crespo, R. G. (2015), Statistical analysis of a multi-objective optimization algorithm based on a model of particles with vorticity behaviour. Soft Computing. Retrieved from https://www.springerprofessional.de/statistical-analysis-of-a-multi- objective-optimization-algorithm/7001512
Meza, J., Espitia, H., Montenegro, C., Giménez, E., & González-Crespo, R., (2017). MOVPSO: Vortex Multi-Objective Particle Swarm Optimization. Applied Soft Computing, 52, 1042-1057.
Michael, C. C., McGraw, G. E., Schatz, M. A., & Walton, C. C. (1997). Genetic algorithms for dynamic test data optimization. In Automated Educational software Engineering, 1997. Proceedings in 12th IEEE International Conference IEEE (pp. 307-308).
Poon, P. L., Tse, T. H., Tang, S. F., & Kuo, F. C. (2011). Contributions of tester experience and a checklist guideline to the identification of categories and choices for educational software testing. Educational software Quality Journal, 19 (1), 141-163.
Pressman, R. S. (2005). Educational software engineering: a practitioner's approach. McGraw Hill, New York: Palgrave Macmillan.
Radatz, J., Geraci, A., & Katki, F. (1990). IEEE standard glossary of educational software engineering terminology. IEEE Std, 610121990(121990), 3.
Ramchoun, H., Amine, M., Idrissi, J., Ghanou, Y., & Ettaouil, M., (2016). Multilayer Perceptron: Architecture Optimization and Training. International Journal of Interactive Multimedia and Artificial Intelligence, 4(1), 26-30.
Ricca, F., & Tonella, P. (2001). Analysis and testing of web applications. In Proceedings of the 23rd international conference on Educational software engineering, IEEE Computer Society (pp. 25-34).
Sakti, A., Pesant, G., & Guéhéneuc, Y.G., (2015). Instance generator and problem representation to improve object oriented code coverage. IEEE Transactions on Educational software Engineering, 41 (3), 294-313.
Semwal, V. B., Singha, J., Sharma, P. K., Chauhan, A., & Behera, B. (2017). An optimized feature selection technique based on incremental feature analysis for bio-metric gait data classification Multimedia Tools and Applications, 76 (22), 24457-24475.
Singh, Y. (2015). Automated Expected Output Generation: Is this a Problem that has been solved?. ACM SIGSOFT Educational software Engineering Notes, 40(6), 1-5.
Sommerville, I., (2001). Educational software Engineering (6th ed.). Boston, USA. Addison-Wesley.
Sthamer, H. H. (1995). The automatic optimization of educational software test data using genetic algorithms. Doctoral dissertation, University of Glamorgan.
Tassey, G. (2002). The economic impacts of inadequate infrastructure for educational software testing. National Institute of Standards and Technology, RTI Project, 7007 (011). Retrieved from https://www.nist.gov/sites/default/files/documents/director/planning/report02-3.pdf
Wegener, J., Baresel, A., & Sthamer, H. (2001). Evolutionary test environment for automatic structural testing. Information and Educational software Technology, 43 (14), 841-854.
Whittaker, J. A. (2000). What is educational software testing? And why is it so hard?. IEEE educational software, 17 (1), 70-79.
Yang, X. S., & Deb, S. (2009). Cuckoo search via Lévy flights. In. World Congress on Nature & Biologically Inspired Computing (pp. 210-214). IEEE.
Yang, X. S., & Deb, S. (2015). Cuckoo Search for Optimization and Computational Intelligence. IGI Global.
Zamli, K.Z., Alkazemi, B.Y., & Kendall, G., (2016). A Tabu Search hyper-heuristic strategy for t-way test suite optimization. Applied Soft Computing, 44, 57-74.
附錄:本研究測(cè)試的20種教育ICT軟件應(yīng)用程序
Triangle classification: right angled, acute angled or obtuse angled
Maximum number among 3 numbers
Division of students based on marks
Valid triangle or not
Triangle classification: equilateral, scalene, isosceles
Class of the given network address
Leap year or not
Type of radiations by frequency
PHRASO-MATIC Game
Day of the date (Mon, Tues, etc.)
Find the types of roots of a quadratic equation (real/imaginary/equal)
Linear Search
Binary Search
Find if three numbers form a Pythagorean triplet or not
Find if a string is a part of a given input string
Find the quadrant of the points entered by the user
Find if the number entered by the user is perfect or not
Find the input given by a user is alphabet, special character or a character
Convert a number to binary or hexadecimal or octal depending upon the choice entered by the user
Find if a number entered by the user is Armstrong or not.
收稿日期:2018-01-15
定稿日期:2018-02-05
作者簡(jiǎn)介:魯賓·岡薩雷斯·克雷斯波(Rubén González Crespo)博士,西班牙拉里奧哈國(guó)際大學(xué)(Universidad Internacional de La Rioja)高等工程學(xué)院院長(zhǎng),西班牙標(biāo)準(zhǔn)化和認(rèn)證協(xié)會(huì)(Spanish Association for Standardization and Certification)會(huì)長(zhǎng),認(rèn)證、質(zhì)量和技術(shù)標(biāo)準(zhǔn)講席,哥倫比亞教育部顧問(wèn)委員會(huì)委員,西班牙國(guó)家質(zhì)量評(píng)估與鑒定署(National Agency for Quality Evaluation and Accreditation of Spain)評(píng)估專(zhuān)家,國(guó)際標(biāo)準(zhǔn)組織(ISO)多個(gè)委員會(huì)的委員,《交互多媒體和人工智能?chē)?guó)際期刊(International Journal of Interactive Multimedia and Artificial Intelligence)》主編,主持多個(gè)歐洲委員會(huì)和西班牙教育部資助的課題,發(fā)表150多篇論文。
普拉波哈特·庫(kù)馬(Prabhat Kumar)博士,印度巴特那國(guó)家技術(shù)學(xué)院(National Institute of Technology, Patna)助理教授,學(xué)院IT服務(wù)部主管教授,多家國(guó)際期刊編委和審稿人,曾在多家著名大學(xué)和機(jī)構(gòu)工作,在國(guó)內(nèi)外期刊發(fā)表35篇同行評(píng)審的論文,研究興趣包括:無(wú)線傳感網(wǎng)絡(luò)、物聯(lián)網(wǎng)、操作系統(tǒng)、軟件工程、電子政務(wù)等。
曼珠·卡里(Manju Khari)博士,印度安貝德卡高級(jí)通信技術(shù)與研究研究院(Ambedkar Institute of Advanced Communication Technologies and Research)助理教授,多家國(guó)際期刊編委和審稿人,在國(guó)內(nèi)外期刊發(fā)表近百篇同行評(píng)審的論文,出版合著兩部,研究興趣包括:軟件測(cè)試、軟件質(zhì)量、軟件度量、信息安全和自然啟發(fā)算法。
丹尼爾·布爾戈斯(Daniel Burgos)博士,西班牙拉里奧哈國(guó)際大學(xué)副校長(zhǎng)(知識(shí)、轉(zhuǎn)移和技術(shù))、教授、教育創(chuàng)新和技術(shù)研究院院長(zhǎng),聯(lián)合國(guó)教科文組織e-learning教席,國(guó)際遠(yuǎn)程開(kāi)放教育理事會(huì)開(kāi)放教育資源(OER)教席;曾任拉里奧哈國(guó)際大學(xué)工程學(xué)院院長(zhǎng),源訊研究與創(chuàng)新部教育處總監(jiān)和用戶(hù)體驗(yàn)實(shí)驗(yàn)室主任,荷蘭開(kāi)放大學(xué)副教授;參與40多個(gè)歐盟資助課題,發(fā)表120多篇論文;擁有四個(gè)博士學(xué)位,分別是傳播學(xué)博士、計(jì)算機(jī)科學(xué)博士、教育博士和人類(lèi)學(xué)博士。
譯者簡(jiǎn)介:肖俊洪,汕頭廣播電視大學(xué)教授,Distance Education (Taylor & Francis)期刊副主編,System: An International Journal of Educational Technology and Applied Linguistics (Elsevier)期刊編委(515041)。
責(zé)任編輯 郝 丹 單 玲
編 校 韓世梅