• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      優(yōu)化教育軟件的自動(dòng)化測試:以一門在線STEM科目為例

      2018-09-25 04:42魯賓·岡薩雷斯·克雷斯波普拉波哈特·庫馬曼珠·卡里丹尼爾·布爾戈斯
      中國遠(yuǎn)程教育 2018年6期
      關(guān)鍵詞:自動(dòng)化測試

      魯賓·岡薩雷斯·克雷斯波 普拉波哈特·庫馬 曼珠·卡里 丹尼爾·布爾戈斯

      【摘 要】 教育軟件和教育ICT軟件應(yīng)用程序測試的自動(dòng)化能減少測試維護(hù)失敗的風(fēng)險(xiǎn),選擇最優(yōu)化的測試套件能提高效率,因此能降低成本和耗時(shí)。本文介紹一種自動(dòng)化測試工具的研發(fā),這種工具包含教育軟件測試的兩個(gè)主要自動(dòng)化部分:測試套件生成和測試套件優(yōu)化。本文通過控制流圖表示被試教育軟件的控制流。該工具提供五種測試套件生成方法,即邊界值測試、穩(wěn)健性測試、最壞情況測試、穩(wěn)健最壞情況測試和隨機(jī)測試,并采用人工蜂群算法或布谷鳥搜索算法對(duì)所生成的測試套件進(jìn)行優(yōu)化,直至達(dá)到預(yù)期的適應(yīng)值水平。與其他算法相比,這種方法能夠以最少的一組測試用例達(dá)成最大的路徑覆蓋率。最后,我們對(duì)所產(chǎn)生的優(yōu)化測試套件進(jìn)行自動(dòng)故障檢測。本文還以一所在線開放大學(xué)的一門STEM科目為案例,介紹這個(gè)工具的使用情況。

      【關(guān)鍵詞】 教育軟件;教育ICT軟件應(yīng)用程序;測試套件生成;測試套件優(yōu)化;STEM;控制流圖;自動(dòng)化測試

      【中圖分類號(hào)】 G420 【文獻(xiàn)標(biāo)識(shí)碼】 B 【文章編號(hào)】 1009-458x(2018)6-0028-12

      導(dǎo)讀:長期以來,信息技術(shù)與教育的深度融合是一個(gè)熱點(diǎn)問題。然而,從目前的情況看,這種融合似乎仍然缺乏應(yīng)有的深度,也還沒有達(dá)成預(yù)期目標(biāo)。2017年12月13日,《中國教育報(bào)》刊登該報(bào)記者張貴勇撰寫的一篇題為“新技術(shù)進(jìn)課堂不等于媒介教育”的文章,文中提到有些課堂“教師利用令人眼花繚亂的電子課件上課,課堂看似熱鬧”,甚至是“課堂上學(xué)生全部使用平板電腦等新媒介設(shè)備來上課”,他認(rèn)為“盡管電子教材也好,多媒體課件也好,其以數(shù)字化、交互化、多媒化的形式,將教學(xué)內(nèi)容以科學(xué)直觀的視頻、音頻、圖形、文本等展現(xiàn)出來,對(duì)學(xué)生的知識(shí)學(xué)習(xí)有幫助,但沒有改變傳統(tǒng)的灌輸式學(xué)習(xí)方式,沒有真正提升學(xué)生對(duì)各種媒介的解讀、運(yùn)用能力”。在我看來,這就是典型的“偽融合”。

      本期“國際論壇”四位作者分別來自西班牙和印度的遠(yuǎn)程在線教學(xué)大學(xué)和普通高校(研究院),均在技術(shù)與教育的融合領(lǐng)域頗有建樹,其中通信作者丹尼爾·布爾戈斯教授是西班牙拉里奧哈國際大學(xué)主管研究和技術(shù)的副校長,也是聯(lián)合國教科文組織e-learning教席和國際遠(yuǎn)程開放教育理事會(huì)開放教育資源(OER)教席,一個(gè)真正具有跨學(xué)科學(xué)術(shù)背景的學(xué)者。他曾經(jīng)在我們的通信中闡述他的教育科研理念。他認(rèn)為作為在線教學(xué)機(jī)構(gòu)的一員,自己的研究責(zé)無旁貸應(yīng)該扎根具體教育實(shí)踐,以解決實(shí)際教育教學(xué)問題為首要目的。他說學(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)合國教科文組織和國際遠(yuǎn)程開放教育理事會(huì)委以要職。

      本文介紹他們的一項(xiàng)新研究成果,即教育軟件的自動(dòng)化測試。在今天這個(gè)信息時(shí)代,教育軟件無處不在,從某種意義上講已經(jīng)成為當(dāng)今教育教學(xué)不可或缺的組成部分,甚至可以說很多學(xué)科的教學(xué)離不開教育軟件的應(yīng)用。比如在生物、醫(yī)學(xué)和護(hù)理等專業(yè)的學(xué)習(xí)中,教育軟件能給學(xué)習(xí)者提供虛擬現(xiàn)實(shí)或增強(qiáng)現(xiàn)實(shí),大大提高學(xué)習(xí)活動(dòng)的真實(shí)性,完成很多在傳統(tǒng)教學(xué)環(huán)境下很難開展的學(xué)習(xí)任務(wù);而在機(jī)械、工程和建筑等專業(yè)的學(xué)習(xí)中,學(xué)習(xí)者使用這些軟件開展設(shè)計(jì)、運(yùn)算、建模、試驗(yàn)等活動(dòng),即使失敗了也不會(huì)造成任何經(jīng)濟(jì)損失或傷害。對(duì)于遠(yuǎn)程在線學(xué)習(xí)來講,教育軟件的用途更是非常廣泛,其對(duì)提高學(xué)習(xí)效果、保證教學(xué)質(zhì)量的重要性更是自不待言。

      隨著用途越來越廣泛,教育軟件也越來越大、越來越復(fù)雜,因此,“改進(jìn)教育軟件開發(fā)技術(shù),加快開發(fā)過程,提高開發(fā)效率,這些都勢在必行。高效的軟件開發(fā)過程應(yīng)該是快捷、容易操作、穩(wěn)健和低成本的”。這其中便涉及軟件測試,這是“教育軟件開發(fā)最具挑戰(zhàn)性的階段”?!敖逃浖y試在軟件開發(fā)生命周期的早期進(jìn)行,越是往后才發(fā)現(xiàn)的錯(cuò)誤,修復(fù)的成本越高”,但是這也是一項(xiàng)非常復(fù)雜的工作,手工操作費(fèi)時(shí)耗力、成本高昂,且不說可行性的問題。因此,本研究在系統(tǒng)回顧(教育)軟件測試研究成果的基礎(chǔ)上,研發(fā)一種自動(dòng)化測試工具,即測試套件生成和測試套件優(yōu)化。

      本研究提出的自動(dòng)化測試工具自身配備四種黑盒技術(shù)(即邊界值測試、穩(wěn)健性測試、最壞情況測試和穩(wěn)健最壞情況測試)以及隨機(jī)測試技術(shù)。可以用其中任何一種技術(shù)生成測試對(duì)象教育軟件的測試數(shù)據(jù),然后用人工蜂群算法和布谷鳥搜索算法優(yōu)化這些數(shù)據(jù),再把優(yōu)化的測試套件應(yīng)用于測試對(duì)象軟件上以生成實(shí)際輸出,而測試對(duì)象軟件的控制流圖則會(huì)產(chǎn)生預(yù)期輸出,如果實(shí)際輸出和預(yù)期輸出不一致,則說明這個(gè)軟件有錯(cuò)誤。在闡明這種自動(dòng)化測試工具的工作原理之后,文章還介紹了人工蜂群算法和布谷鳥搜索算法。

      本研究用這個(gè)自動(dòng)化測試工具對(duì)20個(gè)教育軟件應(yīng)用程序進(jìn)行測試。軟件測試是在西班牙拉里奧哈國際大學(xué)工程與技術(shù)學(xué)院的e-learning和社交網(wǎng)絡(luò)碩士學(xué)位課程中進(jìn)行的,有44名學(xué)生參加。限于篇幅,本文以三角形分類問題的軟件應(yīng)用程序?yàn)槔榻B自動(dòng)化測試工具的運(yùn)作和實(shí)際效果。測試結(jié)果表明,這個(gè)自動(dòng)化測試工具在人工蜂群算法和布谷鳥搜索算法的幫助下能以最少的測試用例覆蓋最多的路徑,減少測試時(shí)間,降低測試費(fèi)用,換言之,大大提高測試效率。研究還發(fā)現(xiàn),兩種算法有各自的優(yōu)點(diǎn),布谷鳥搜索算法的結(jié)果更加穩(wěn)定但路徑覆蓋率較低,而人工蜂群算法的路徑覆蓋率更好,但結(jié)果不如布谷鳥搜索算法穩(wěn)定。考慮到路徑覆蓋率是選擇測試套件算法更加可靠的決定因素,因此,在本研究中,與布谷鳥搜索算法相比,人工蜂群算法是一個(gè)更好的選擇。文章最后還指出本研究的局限和今后研究方向。

      這篇文章的意義不僅體現(xiàn)在研發(fā)一種教育軟件自動(dòng)化測試工具上,也是技術(shù)與教育融合的一個(gè)很好的例子。對(duì)遠(yuǎn)程(在線)教育工作者而言,它更是布爾戈斯教授的教育科研觀的具體體現(xiàn)。我認(rèn)為這也是值得遠(yuǎn)程(在線)教育機(jī)構(gòu)和實(shí)踐者認(rèn)真謀劃和努力的一個(gè)科研方向——把技術(shù)與教育的融合扎根于遠(yuǎn)程(在線)教育實(shí)踐中,旨在解決實(shí)際教學(xué)問題,達(dá)成具體教學(xué)目標(biāo)。

      最后,衷心感謝四位國際同行對(duì)本刊的支持?。ㄐた『椋?/p>

      引言

      過去五十年,教育軟件無所不在,對(duì)教育的影響越來越大,因此,人們對(duì)可靠教育軟件的需求與日俱增。教育軟件的用途廣泛,幾乎涉及我們生活的每一個(gè)方面,因此軟件越來越復(fù)雜、越來越大。在這種背景下,改進(jìn)教育軟件開發(fā)技術(shù),加快開發(fā)過程,提高開發(fā)效率,這些都勢在必行。高效的軟件開發(fā)過程應(yīng)該是快捷、容易操作、穩(wěn)健和低成本的。

      教育軟件的質(zhì)量通過在軟件開發(fā)生命周期(Software Development Lifecycle)的每一個(gè)層面對(duì)該軟件進(jìn)行嚴(yán)格測試得以保證(Bertolino, 2007; Burnstein, 2006)。經(jīng)常升級(jí)導(dǎo)致軟件修改的次數(shù)增加,軟件的整體可靠性會(huì)隨著降低。一種應(yīng)對(duì)措施是增加測試量(Marciniak, 1994)。教育軟件測試是軟件開發(fā)生命周期一個(gè)不可或缺的階段。沒有經(jīng)過嚴(yán)格測試的軟件和錯(cuò)誤代碼每年給教育軟件開發(fā)組織造成數(shù)十億美元的損失,很多缺陷是用戶發(fā)現(xiàn)的(Burnstein, 2006)。測試不僅是保證教育軟件系統(tǒng)質(zhì)量的有效措施(Miller, 1981),也是教育軟件工程最復(fù)雜和較不為人所了解的領(lǐng)域之一(Whittaker, 2000)。

      一些研究闡述了為什么要開展教育軟件測試(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),原因包括檢測故障、最大限度降低與教育軟件殘余錯(cuò)誤相關(guān)的風(fēng)險(xiǎn)(Askarunisa, Prameela, & Ramraj, 2009)和對(duì)軟件進(jìn)行全面徹底測試(Huang & Kuo, 2002)等。在測試階段發(fā)現(xiàn)的系統(tǒng)錯(cuò)誤多數(shù)產(chǎn)生自軟件開發(fā)生命周期的早期(Beizer, 1990),因此,教育軟件測試應(yīng)在軟件開發(fā)生命周期的早期進(jìn)行,越是往后才發(fā)現(xiàn)的錯(cuò)誤,修復(fù)的成本越高。測試被認(rèn)為是教育軟件開發(fā)最具挑戰(zhàn)性的階段,占用全部開發(fā)時(shí)間和費(fèi)用的50%~60%(Bertolino, 2007)。

      教育軟件測試可以手工進(jìn)行,也可以通過自動(dòng)化方式進(jìn)行,目的是驗(yàn)證該軟件是否符合工作或客戶要求,也用于檢查實(shí)際結(jié)果與預(yù)期輸出是否一致(Radatz, Geraci, & Katki, 1990)。這種測試通過使用合適的測試用例(test case)檢驗(yàn)軟件是否符合要求,以此評(píng)估其質(zhì)量。有些錯(cuò)誤是在設(shè)計(jì)階段因疏忽而引起的,這些錯(cuò)誤應(yīng)該立即得到修復(fù)。教育軟件測試的目標(biāo)是生成包含精確測試用例并能達(dá)成最大覆蓋率和盡可能發(fā)現(xiàn)更多錯(cuò)誤的最小測試套件(test suite)(Sthamer, 1995)。在此過程中,每一個(gè)測試用例都是不同的;每一個(gè)測試用例都配上一組輸入和一系列預(yù)期輸出。測試的另一個(gè)任務(wù)是生成合適的測試套件,以滿足測試標(biāo)準(zhǔn),比如代碼覆蓋(code coverage)(Sakti, Pesant, & Guéhéneuc, 2015)、路徑覆蓋(path coverage)、分支覆蓋(branch coverage)(Sthamer, 1995)和語句覆蓋(statement coverage)(Clarke, 1976)。這方面已經(jīng)有一些測試標(biāo)準(zhǔn),必須滿足相關(guān)標(biāo)準(zhǔn)才能保證所測試的教育軟件的質(zhì)量(Ghiduk & Girgis, 2010)。教育軟件的全面測試很難手工進(jìn)行,有些方面必須實(shí)現(xiàn)自動(dòng)化。

      手工生成測試套件更加耗時(shí)耗力,這是一個(gè)勞動(dòng)密集型而又昂貴的過程,因此必須減少人工測試量(Poon, Tse, Tang, & Kuo, 2011)。自動(dòng)化測試能加快測試過程,節(jié)省時(shí)間和成本,達(dá)成最大覆蓋率。此外,測試過程的自動(dòng)化還能顯著降低軟件開發(fā)維護(hù)費(fèi)用,提高其可靠性。

      美國國家標(biāo)準(zhǔn)與技術(shù)研究院(National Institute of Standards and Technology)的研究表明,軟件測試基礎(chǔ)設(shè)施不完善所造成的損失每年估計(jì)在222億到595億美元之間(Tassey, 2002)。由此可見,必須優(yōu)化測試過程,才能既減少對(duì)資源的要求(時(shí)間、經(jīng)費(fèi)和人力等)又保證質(zhì)量。早期的教育軟件技術(shù)開發(fā)采用爬山(hill climbing)算法(屬于梯度下降算法[gradient descent algorithms]一族)生成測試用例和測試套件(Korel, 1990)。這些方法很耗時(shí)且無法避免搜索空間的局部最優(yōu)解(local optima)。后來,人們使用元啟發(fā)式搜索算法(metaheuristic search algorithms)解決這個(gè)問題(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)開展了廣泛研究、實(shí)驗(yàn)和應(yīng)用(Afzal, Torkar, & Feldt, 2009; Harman, Mansouri, & Zhang, 2009)。

      測試邊界值不足以確保教育軟件的準(zhǔn)確,因?yàn)樗锌赡艿闹刀急仨殰y試和驗(yàn)證,但這是行不通的。要對(duì)一種教育ICT軟件應(yīng)用程序進(jìn)行全面測試,只增加兩個(gè)32-bits整數(shù)輸入就要求測試[264]個(gè)不同測試用例,即使每秒鐘完成數(shù)千次測試,這個(gè)量的測試也需要數(shù)百年時(shí)間才能做完。因此,必須實(shí)現(xiàn)測試套件優(yōu)化(Test Suite Optimization,TSO)。TSO是去除不必要、多余的測試用例,把優(yōu)質(zhì)測試用例納入測試套件中的過程,在這里,優(yōu)質(zhì)指的是在路徑覆蓋率、錯(cuò)誤檢測和代碼覆蓋率方面表現(xiàn)好。TSO從其測試用例母集中發(fā)現(xiàn)最好的子集。本研究采用人工蜂群算法(Artificial Bee Colony Algorithm,ABC)和布谷鳥搜索算法(Cuckoo Search Algorithm,CSA)實(shí)現(xiàn)TSO。這兩種算法都是受到大自然啟發(fā)的算法(Karaboga, 2005; Yang & Deb, 2009)。

      研究背景

      符號(hào)和術(shù)語

      被測試的教育軟件(Educational Software Under Test,SUT)的控制流或邏輯可以通過控制流圖(flow graph)表示??刂屏鲌D由節(jié)點(diǎn)(N)和邊(E)組成,即G(N, E)。用控制流圖表示SUT邏輯,節(jié)點(diǎn)代表語句塊,邊代表從一個(gè)節(jié)點(diǎn)轉(zhuǎn)移到另一個(gè)節(jié)點(diǎn)的流向,形成一條路徑。基于控制流圖有限的節(jié)點(diǎn),可以發(fā)現(xiàn)獨(dú)立路徑(independent path)。控制流圖與SUT的實(shí)際邏輯相似。因此,對(duì)一個(gè)控制流圖的測試數(shù)據(jù)進(jìn)行的運(yùn)算被看作對(duì)教育ICT軟件應(yīng)用程序的運(yùn)算。這個(gè)軟件應(yīng)用程序的特點(diǎn)應(yīng)該體現(xiàn)在其控制流圖中。

      路徑測試標(biāo)準(zhǔn)

      一般而言,路徑測試包括挑選一組合適的路徑并用測試數(shù)據(jù)檢測這些路徑。這是一個(gè)迭代過程,直至完成對(duì)所有路徑的測試。但是,一個(gè)控制流圖的所有路徑并非都能通過遍歷,這些路徑被稱為“不可行路徑”。路徑覆蓋率即被成功遍歷的路徑除以全部路徑所得之百分比,如方程式(1)所示:

      [路徑覆蓋率%=被成功遍歷的獨(dú)立路徑數(shù)獨(dú)立路徑總數(shù)×100%] eq.(1)

      文獻(xiàn)回顧

      科瑞爾(Korel, 1990)根據(jù)路徑覆蓋測試標(biāo)準(zhǔn),采用包含各種可能的測試數(shù)據(jù)的動(dòng)態(tài)路徑測試技術(shù)生成教育軟件測試數(shù)據(jù),目的是獲取執(zhí)行期望路徑的測試用例值。迪森等(Deason, Brown, Chang, & Cross, 1991)提出基于規(guī)則的測試數(shù)據(jù)生成方法,采用路徑/謂詞分析或隨機(jī)測試數(shù)據(jù)生成法。他們認(rèn)為因?yàn)闇y試用例可能無法覆蓋所有路徑,應(yīng)該對(duì)測試套件進(jìn)行優(yōu)化??ɡ┘樱↘araboga, 2005)根據(jù)蜜蜂群智能覓食行為,提出一種新的人工蜂群算法解決多維度和多模態(tài)問題??ɡ┘雍桶退箞D爾克(Karaboga & Basturk, 2007)后來又提出ABC算法解決約束優(yōu)化問題。羅等(Luo, Liu, Yang, Li, Chen, & Cao, 2016)提出一種稱為ABC覆蓋陣列生成器(covering array generator)的新算法,生成覆蓋陣列和結(jié)對(duì)測試的混合覆蓋陣列。測試用例優(yōu)先級(jí)排序(Test case prioritization)指的是重新排列測試用例執(zhí)行順序,以在某一特定時(shí)間段盡可能發(fā)現(xiàn)更多錯(cuò)誤。作者們還進(jìn)一步提出一種高效的多目標(biāo)蟻群優(yōu)化方法(multi-objective ant colony optimization)解決多目標(biāo)和高維多目標(biāo)問題(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問題的優(yōu)化問題,而甘多米等(Gandomi, Yang, & Alavi, 2013)則用CSA在沒有調(diào)整測試參數(shù)的情況下解決結(jié)構(gòu)問題,使CSA成為像PSO一樣的穩(wěn)健且更加通用的應(yīng)用程序(Meza, Espitia, Montenegro, Giménez, & González-Crespo, 2016)。庫瑪和查克拉瓦蒂(Kumar & Chakarverty, 2011)使用GA和CSA設(shè)計(jì)嵌入式系統(tǒng)空間探索問題。CSA無需對(duì)參數(shù)調(diào)整進(jìn)行過多試驗(yàn)便能夠在更短時(shí)間內(nèi)產(chǎn)生更好的種群。在對(duì)SUT更長時(shí)間運(yùn)算之后通過GA獲得最佳解。因此,CSA能在更短運(yùn)算時(shí)間內(nèi)高效生成某一個(gè)問題的多種解,而GA則在求最佳解方面效果最好。拉姆鄒恩等(Ramchoun, Amine, Idrissi, Ghanou, & Ettaouil, 2016)采用GA,用反向傳播算法(back-propagation algorithm)訓(xùn)練網(wǎng)絡(luò)以優(yōu)化網(wǎng)絡(luò)問題。

      馬拉等(Mala, Mohan, & Kamalapriya, 2010)提出一種新的教育軟件測試優(yōu)化范式,采用基于混合智能的搜索方法達(dá)成教育軟件測試最優(yōu)化。這個(gè)框架的優(yōu)點(diǎn)是自動(dòng)生成測試用例,發(fā)現(xiàn)最優(yōu)測試順序,減少測試用例數(shù)量和把測試次數(shù)降到最低。

      邁克爾等(Michael, McGraw, Schatz, & Walton, 1997)提出基于啟發(fā)式搜索技術(shù)的方法解決教育軟件測試的各種問題,他們通過在各種軟件應(yīng)用程序中使用GA和隨機(jī)測試技術(shù)生成測試數(shù)據(jù),比較這兩種技術(shù),發(fā)現(xiàn)GA生成更有效的測試數(shù)據(jù)。

      卡里和庫瑪(Khari & Kumar, 2016)提出基于TSO搜索的方法,把局部搜索和全局搜索結(jié)合起來,在更短時(shí)間、迭代次數(shù)更少而空間復(fù)雜性的增加可以忽略不計(jì)的情況下獲得最優(yōu)結(jié)果。辛格(Singh, 2015)的結(jié)論肯定自動(dòng)化生成預(yù)期輸出的重要性,因?yàn)榕c人工操作相比,這樣能夠大大降低費(fèi)用和時(shí)間。但是,目前還沒有合適、完整和穩(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分類算法和分類器融合等)發(fā)現(xiàn)機(jī)器學(xué)習(xí)的原理和分類步態(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)化問題,提高該算法在探索和利用方面的效率。

      本文嘗試從不同角度研發(fā)一種自動(dòng)化測試工具,即測試套件生成(Test Suite Generation,TSG)和測試套件優(yōu)化(Test Suite Optimization,TSO)。

      自動(dòng)化測試工具的框架

      自動(dòng)化測試模型

      本模型的測試套件生成包含四種黑盒技術(shù),即邊界值測試(boundary value testing)、穩(wěn)健性測試(robustness testing)、最壞情況測試(worst case testing)和穩(wěn)健最壞情況測試(robustness worst case testing),以及隨機(jī)測試(random testing)。圖1是其完整框架。我們可以用其中任何一種技術(shù)生成SUT的測試數(shù)據(jù),然后用ABC或CSA對(duì)這些數(shù)據(jù)進(jìn)行優(yōu)化,將優(yōu)化的測試套件應(yīng)用于SUT上會(huì)生成實(shí)際輸出,而SUT的控制流圖則會(huì)產(chǎn)生預(yù)期輸出,通過比較實(shí)際輸出和預(yù)期輸出發(fā)現(xiàn)SUT的錯(cuò)誤。這個(gè)框架的組成部分如下:

      ·輸入:控制流圖和SUT。

      ·處理模塊:采用上述測試技術(shù)完成TSG,由于所生成的測試套件可能會(huì)也可能不會(huì)對(duì)SUT有100%的路徑覆蓋,因此將其輸入第二階段,即TSO。這個(gè)階段是在ABC和CSA幫助下完成的,最終獲得優(yōu)化測試套件。

      ·錯(cuò)誤檢測:將生成的測試套件與控制流圖和SUT一起使用,分別獲得預(yù)期輸出和實(shí)際輸出。如果兩種輸出不一致,則說明SUT有錯(cuò)誤。

      [ith]測試用例的方程式如下:

      [xi=ti1,ti2,ti3,……tik……,tiN]

      where [i=1,2,…SN] eq.(2)

      在方程式(2)中,每一個(gè)測試用例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ù)目。

      已存在的測試用例發(fā)生位變異(mutation of bits)時(shí)產(chǎn)生新的隨機(jī)測試用例。變異函數(shù)從這些位中選擇一個(gè)并加以擾動(dòng)。在方程式(3)中,xi是輸入的測試用例,yi是變異測試用例:

      yi= mutate (xi) eq.(3)

      如果已存在和變異測試用例的獨(dú)立路徑相同,那么根據(jù)馬提亞斯(Matyas)目標(biāo)函數(shù)的值選擇其中一個(gè)測試用例(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更好的測試用例

      否則,

      yi是比 xi更好的測試用例

      結(jié)束分支。

      ABC算法

      ABC算法基于蜜蜂群的智能行為,包括三種平行工作的蜂:雇傭蜂、觀察蜂和偵察蜂。雇傭蜂的數(shù)量與觀察蜂的數(shù)量相同,等于SN。我們必須界定該算法的終止條件,通過重復(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算法用于測試的完整偽代碼如下:

      第1步:初始化ABC控制參數(shù)。

      第2步:用本測試工具的任何測試技術(shù)初始化初始種群。

      第3步:評(píng)估這個(gè)種群并把通過新獨(dú)立路徑的測試用例添加到結(jié)果集。

      第4步:cycle=1

      第5步:Do

      【雇傭蜂和觀察蜂時(shí)期】

      a. 用方程式(3)隨機(jī)確定[ai]以外的鄰居測試用例[a'i]。

      b. 用方程式(4)和(5)評(píng)估食物源[a'i];如果[a'i]優(yōu)于ai,則用其代替ai。如果沒有更好的解,則增加嘗試次數(shù)。

      【偵察蜂時(shí)期】

      c. 確定嘗試次數(shù)多于終止條件值的測試用例并通過方程式(3)用新的隨機(jī)測試用例取代它們。

      d. cycle = cycle + 1

      第6步:While cycle!=終止條件

      CSA算法

      CSA算法基于布谷鳥下蛋的方法。布谷鳥是在其他鳥的巢下蛋的(Yang & Deb, 2015)。在教育軟件測試中使用CSA,布谷鳥的蛋代表測試用例,巢代表教育軟件的獨(dú)立路徑,蛋的適應(yīng)值(fitness)代表測試用例的目標(biāo)函數(shù)值。每一只布谷鳥隨機(jī)選擇其他鳥的一個(gè)巢,判斷已經(jīng)存放在里面的蛋的適應(yīng)值。在這里,適應(yīng)值代表布谷鳥的蛋與巢里原來的蛋的差別。如果布谷鳥的蛋的適應(yīng)值優(yōu)于原來的蛋,布谷鳥就會(huì)把那個(gè)蛋扔掉,用自己的蛋取而代之。否則,它會(huì)繼續(xù)尋找另一個(gè)巢。

      CSA算法用于測試的完整偽代碼如下:

      第1步:初始化終止條件的控制參數(shù)。

      第2步:用本測試工具的任何測試技術(shù)初始化初始種群。

      第3步:評(píng)估這個(gè)種群并把通過新獨(dú)立路徑的測試用例添加到結(jié)果集。

      第4步:cycle=1

      第5步:Do

      【布谷鳥時(shí)期】

      e. 用方程式(3)隨機(jī)確定一只準(zhǔn)備下蛋的布谷鳥(測試用例)[c'i]。

      f. 隨機(jī)找一個(gè)巢,即檢查測試用例通過哪條獨(dú)立路徑。

      【換/扔蛋時(shí)期】

      g. 用方程式(4)和(5)評(píng)估[c'i] ;如果[c'i] 優(yōu)于原來的蛋(測試用例)[ci ],則用其代替[ci ]。如果沒有更好的解,則尋找另一個(gè)巢。

      h. cycle = cycle + 1

      第6步:While cycle!=終止條件

      STEM案例:三角形分類問題

      雖然我們對(duì)研發(fā)的20個(gè)教育ICT軟件應(yīng)用程序都進(jìn)行了測試,限于篇幅,本文以其中一個(gè)作為案例,介紹自動(dòng)化測試工具的運(yùn)作。

      三角形分類問題

      這是STEM中數(shù)學(xué)科目的基礎(chǔ)問題,涉及辨識(shí)三角形的性質(zhì),即是直角三角形、鈍角三角形、銳角三角形或不是三角形。2017年初,我們在西班牙拉里奧哈國際大學(xué)(Universidad Internacional de La Rioja)工程與技術(shù)學(xué)院的e-learning和社交網(wǎng)絡(luò)碩士學(xué)位課程中進(jìn)行軟件測試,共有48名學(xué)生參加,4名后來退出,實(shí)際有44人參加本研究。拉里奧哈國際大學(xué)是一所在線大學(xué),工程與技術(shù)學(xué)院有3,000多名學(xué)生,因此能否用合適的教育軟件開展STEM科目的教學(xué)對(duì)學(xué)習(xí)結(jié)果會(huì)有重要影響。另一方面,這也與歐洲委員會(huì)①和經(jīng)濟(jì)合作與發(fā)展組織②有關(guān)這個(gè)問題的指導(dǎo)原則相一致。

      我們用三角形分類問題展示ABC和CSA算法的使用。我們首先將這個(gè)問題的控制流圖和SUT輸入測試工具,據(jù)此生成測試套件并對(duì)所生成的測試套件進(jìn)行優(yōu)化。如上所述,這個(gè)工具有四種黑盒技術(shù)和隨機(jī)測試技術(shù),這些技術(shù)用于生成測試套件。TSO則是用ABC或CSA進(jìn)行運(yùn)算。優(yōu)化的測試套件分別與控制流圖和SUT一起生成預(yù)期輸出和實(shí)際輸出,通過對(duì)這兩種輸出的比較發(fā)現(xiàn)SUT的錯(cuò)誤。整個(gè)過程如圖1所示。

      控制流圖

      控制流圖以圖形表示SUT的預(yù)期輸出。本案例的控制流圖是手工制作的,然后輸入測試工具(見圖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)化測試工具顯示的控制流圖。

      獨(dú)立路徑:獨(dú)立路徑指的是在控制流圖中至少遍歷一條沒有被其他任何路徑遍歷過的邊的路徑。根據(jù)圖2的控制流圖,三角形分類問題的所有獨(dú)立路徑如表1所示。

      ABC運(yùn)算

      初始種群

      可以用上述任何一種黑盒技術(shù)或隨機(jī)測試生成初始種群。本案例用的是隨機(jī)技術(shù),規(guī)定測試用例數(shù)目等于10(隨機(jī)選擇),測試用例和它們的目標(biāo)值見表2。表中測試用例的三個(gè)值a、b和c表示三角形三條邊的值,目標(biāo)值表示的是函數(shù)最小化的值。

      雇傭蜂第一次迭代

      雇傭蜂第一次迭代之后,每一條獨(dú)立路徑只剩下一個(gè)測試用例,這是對(duì)所有通過相同路徑的測試用例的目標(biāo)值進(jìn)行比較的結(jié)果。目標(biāo)值最小的測試用例被認(rèn)為是這條路徑最佳的測試用例。

      以通過路徑N0-N1-N2的兩個(gè)測試用例為例,它們分別是測試用例1(目標(biāo)值-189175.5)和測試用例8(目標(biāo)值-226215.86)(見表2),測試用例8的目標(biāo)值比測試用例1小,它三邊的值分別是a=235,b=65,c=33,被認(rèn)為比測試用例1更好,因此被儲(chǔ)存在記憶中。表3是第一次迭代的結(jié)果。

      雇傭蜂第二次迭代

      在雇傭蜂的第二次迭代中,對(duì)第一次迭代保留下來的優(yōu)化測試用例進(jìn)行變異。這些測試用例的變異導(dǎo)致新測試用例的產(chǎn)生,雇傭蜂對(duì)新測試用例做進(jìn)一步運(yùn)算。如果任何測試用例攔截到還沒有被其他測試用例遍歷過的路徑,那么這個(gè)測試用例就被保存在與之相應(yīng)的記憶中。如果發(fā)現(xiàn)任何測試用例遍歷已經(jīng)有測試用例通過的路徑,那么比較這兩個(gè)測試用例的目標(biāo)值,把目標(biāo)值較小的測試用例儲(chǔ)存在記憶中。測試用例的變異和比較用方程式(4)和(5)進(jìn)行。

      以表3通過路徑N0-N1-N2的測試用例(a=235, b=65, c=33)為例。用XOR運(yùn)算對(duì)該測試用例的一個(gè)值進(jìn)行變異:

      (235)10 = (11101011)2

      11101011 XOR 10000000 = 01101011

      (01101011)2 = (107)10

      產(chǎn)生變異測試用例a=107, b=65, c=33。這個(gè)測試用例通過路徑N0-N1-N3-N5-N7-N8-N11,因此相應(yīng)路徑的記憶中就增加了這個(gè)變異測試用例。表4是第二次迭代的結(jié)果。

      以此類推,更多的迭代會(huì)增強(qiáng)其記憶。圖4是用ABC優(yōu)化測試套件的截圖。

      CSA運(yùn)算

      初始種群

      可以用上述任何一種黑盒技術(shù)或隨機(jī)測試生成初始種群。本案例用的是隨機(jī)技術(shù),規(guī)定測試用例數(shù)目等于10,測試用例和它們的目標(biāo)值見表5。

      CSA第一次循環(huán)

      CSA 第一次循環(huán)之后,每一條獨(dú)立路徑只剩下一個(gè)測試用例,這是對(duì)所有通過相同路徑的測試用例的目標(biāo)值進(jìn)行比較的結(jié)果。目標(biāo)值最小的測試用例被認(rèn)為是這條路徑最佳的測試用例。

      以通過路徑N0-N1-N2的三個(gè)測試用例為例,它們分別是測試用例2(目標(biāo)值-838870.2)、4(目標(biāo)值-798429.0)和6(目標(biāo)值-1499877.56)(見表5)。這三個(gè)測試用例中,測試用例6的目標(biāo)值最小,它三邊的值分別是a=912,b=5,c=857。這個(gè)測試用例被認(rèn)為比其他兩個(gè)測試用例更好,因此被儲(chǔ)存在記憶中。表6是第一次循環(huán)的結(jié)果。

      CSA第二次循環(huán)

      CSA第二次循環(huán)中,測試工具隨機(jī)從搜索空間選取一個(gè)新測試用例。如果發(fā)現(xiàn)這個(gè)測試用例遍歷已經(jīng)有測試用例通過的路徑,那么比較這兩個(gè)測試用例的目標(biāo)值,把目標(biāo)值較小的測試用例儲(chǔ)存在記憶中。否則,這個(gè)測試用例便保存在與這條路徑相應(yīng)的記憶中。表7是第二次循環(huán)的更新數(shù)據(jù)。

      在第二次循環(huán)中,隨機(jī)生成的一個(gè)新測試用例遍歷路徑2。新的循環(huán)又發(fā)現(xiàn)新測試用例,一旦發(fā)現(xiàn)更

      好的測試用例,表格會(huì)隨著持續(xù)更新。更多的循環(huán)會(huì)增強(qiáng)其記憶。圖5是用CSA優(yōu)化測試套件的截圖。

      實(shí)驗(yàn)結(jié)果

      表8和表9是用ABC和CSA測試20種教育ICT軟件應(yīng)用程序所獲得的路徑覆蓋率和適應(yīng)值(20種軟件應(yīng)用程序的名單見附錄)。

      表8和表9是用ABC和CSA對(duì)20種教育ICT軟件應(yīng)用程序的測試套件進(jìn)行優(yōu)化測試的結(jié)果。測試結(jié)果顯示,用ABC的平均路徑覆蓋率是90.3%,而CSA的平均覆蓋率是75.4%。在優(yōu)化數(shù)據(jù)的適應(yīng)值方面,ABC也優(yōu)于CSA。這說明在路徑覆蓋方面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è)工具在這兩種算法的幫助下能以最少的測試用例覆蓋最多的路徑,這有助于減少測試時(shí)間,大大降低測試費(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試套件選擇算法上路徑覆蓋率是更加可靠的決定因素,因此,在本研究中ABC證明是更好的選擇。

      結(jié)束語

      研究局限

      雖然我們已經(jīng)采取一切措施保證研究結(jié)果的真實(shí)性,但是有些因素可能會(huì)影響研究結(jié)果的外部和內(nèi)部效度等。為此,我們在多種教育ICT軟件應(yīng)用程序上測試ABC和CSA方法,減少上述風(fēng)險(xiǎn)。為了避免結(jié)果偏差,我們一共測試了20種軟件程序。為了使測試工具認(rèn)為代碼沒有錯(cuò)誤,控制流圖必須正確無誤,哪怕代碼包括一些錯(cuò)誤。雖然我們采用隨機(jī)方法,但是所得到的測試數(shù)據(jù)是最優(yōu)化的。有時(shí),路徑覆蓋率難以達(dá)到100%,這是因?yàn)榭赡苡行┞窂缴蓽y試用例的可能性較低。本研究的SUT可能比較大,但測試人員應(yīng)該使用它的控制流圖才能進(jìn)行測試。本測試工具只能用于用Java技術(shù)研發(fā)的教育ICT軟件應(yīng)用程序,目前尚未用于其他軟件應(yīng)用程序的測試。其運(yùn)算速度和表現(xiàn)可能會(huì)因平臺(tái)而異。本測試工具需要Java運(yùn)行環(huán)境。

      結(jié)論和下一步計(jì)劃

      研究發(fā)現(xiàn),在執(zhí)行自動(dòng)化TSO以達(dá)成所生成的測試套件最小化卻有最大路徑覆蓋率的目標(biāo)方面,ABC方法優(yōu)于CSA方法。案例研究顯示,采用這兩種算法在本研究的自動(dòng)化測試工具上測試20種教育ICT軟件應(yīng)用程序,ABC的路徑覆蓋率平均值為90.3%,而CSA則是75.4%。由此可見,ABC在路徑覆蓋率上優(yōu)于CSA,是TSO更可靠的選擇。

      在今后的研究中,可以運(yùn)用其他自然啟發(fā)算法改進(jìn)我們所提出的這個(gè)模型。另外,也可以在各方面混合使用ABC和CSA以獲得更好結(jié)果。上述算法的TSG輸入可以通過其他方法實(shí)現(xiàn)自動(dòng)化,比如決策盒(decision box)或因果法(cause-effect),這些方法提供更少的測試套件輸入。

      【鳴謝】本研究得到拉里奧哈國際大學(xué)通過工程與技術(shù)學(xué)院(School for Engineering & Technology)(http://esit.unir.net)和教育創(chuàng)新和技術(shù)研究院(Research Institute for Innovation & Technology in Education,簡稱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.

      附錄:本研究測試的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

      作者簡介:魯賓·岡薩雷斯·克雷斯波(Rubén González Crespo)博士,西班牙拉里奧哈國際大學(xué)(Universidad Internacional de La Rioja)高等工程學(xué)院院長,西班牙標(biāo)準(zhǔn)化和認(rèn)證協(xié)會(huì)(Spanish Association for Standardization and Certification)會(huì)長,認(rèn)證、質(zhì)量和技術(shù)標(biāo)準(zhǔn)講席,哥倫比亞教育部顧問委員會(huì)委員,西班牙國家質(zhì)量評(píng)估與鑒定署(National Agency for Quality Evaluation and Accreditation of Spain)評(píng)估專家,國際標(biāo)準(zhǔn)組織(ISO)多個(gè)委員會(huì)的委員,《交互多媒體和人工智能國際期刊(International Journal of Interactive Multimedia and Artificial Intelligence)》主編,主持多個(gè)歐洲委員會(huì)和西班牙教育部資助的課題,發(fā)表150多篇論文。

      普拉波哈特·庫馬(Prabhat Kumar)博士,印度巴特那國家技術(shù)學(xué)院(National Institute of Technology, Patna)助理教授,學(xué)院IT服務(wù)部主管教授,多家國際期刊編委和審稿人,曾在多家著名大學(xué)和機(jī)構(gòu)工作,在國內(nèi)外期刊發(fā)表35篇同行評(píng)審的論文,研究興趣包括:無線傳感網(wǎng)絡(luò)、物聯(lián)網(wǎng)、操作系統(tǒng)、軟件工程、電子政務(wù)等。

      曼珠·卡里(Manju Khari)博士,印度安貝德卡高級(jí)通信技術(shù)與研究研究院(Ambedkar Institute of Advanced Communication Technologies and Research)助理教授,多家國際期刊編委和審稿人,在國內(nèi)外期刊發(fā)表近百篇同行評(píng)審的論文,出版合著兩部,研究興趣包括:軟件測試、軟件質(zhì)量、軟件度量、信息安全和自然啟發(fā)算法。

      丹尼爾·布爾戈斯(Daniel Burgos)博士,西班牙拉里奧哈國際大學(xué)副校長(知識(shí)、轉(zhuǎn)移和技術(shù))、教授、教育創(chuàng)新和技術(shù)研究院院長,聯(lián)合國教科文組織e-learning教席,國際遠(yuǎn)程開放教育理事會(huì)開放教育資源(OER)教席;曾任拉里奧哈國際大學(xué)工程學(xué)院院長,源訊研究與創(chuàng)新部教育處總監(jiān)和用戶體驗(yàn)實(shí)驗(yàn)室主任,荷蘭開放大學(xué)副教授;參與40多個(gè)歐盟資助課題,發(fā)表120多篇論文;擁有四個(gè)博士學(xué)位,分別是傳播學(xué)博士、計(jì)算機(jī)科學(xué)博士、教育博士和人類學(xué)博士。

      譯者簡介:肖俊洪,汕頭廣播電視大學(xué)教授,Distance Education (Taylor & Francis)期刊副主編,System: An International Journal of Educational Technology and Applied Linguistics (Elsevier)期刊編委(515041)。https://orcid.org/0000- 0002- 5316-2957

      責(zé)任編輯 郝 丹 單 玲

      編 校 韓世梅

      猜你喜歡
      自動(dòng)化測試
      Hadoop性能測試自動(dòng)化研究
      數(shù)據(jù)驅(qū)動(dòng)和關(guān)鍵字驅(qū)動(dòng)的研究與應(yīng)用
      淺談空調(diào)控制器自動(dòng)化測試
      基于多總線結(jié)構(gòu)的電路板測試系統(tǒng)設(shè)計(jì)研究
      航空航天與國防電子新形勢下自動(dòng)化測試系統(tǒng)的應(yīng)用
      基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動(dòng)化測試框架的設(shè)計(jì)與實(shí)現(xiàn)
      辽宁省| 德兴市| 高密市| 枝江市| 扎赉特旗| 宽城| 新营市| 睢宁县| 阿尔山市| 嘉祥县| 乡城县| 同仁县| 宜川县| 安溪县| 南汇区| 资溪县| 廉江市| 南漳县| 平邑县| 无为县| 巩留县| 容城县| 肥城市| 全椒县| 密山市| 灯塔市| 株洲县| 那曲县| 瑞昌市| 许昌县| 清徐县| 合山市| 白朗县| 台北市| 丹凤县| 东阿县| 镇沅| 辛集市| 义乌市| 平阴县| 贡山|