本發(fā)明涉及一種智能機(jī)器人技術(shù)領(lǐng)域,尤其是涉及一種分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法及系統(tǒng)。
背景技術(shù):
隨著無(wú)線和智能機(jī)器人技術(shù)迅猛發(fā)展,分布式機(jī)器人設(shè)備大量涌現(xiàn),并在智能家居、工業(yè)聯(lián)動(dòng)智能控制、醫(yī)療等應(yīng)用領(lǐng)域得到廣泛應(yīng)用。
隨著分布式機(jī)器人被廣泛應(yīng)用,對(duì)設(shè)備需求的復(fù)雜性和急迫性也與日俱增,因此要求分布式機(jī)器人系統(tǒng)的軟件和硬件復(fù)雜多樣的同時(shí),開(kāi)發(fā)周期卻盡量縮短,進(jìn)一步減少開(kāi)發(fā)成本。
在這種情況下,對(duì)分布式機(jī)器人系統(tǒng)的測(cè)試流程顯得尤為重要。
目前,對(duì)分布式機(jī)器人系統(tǒng)的測(cè)試仍然以手工為主,這種方式難以同時(shí)滿足在短時(shí)間內(nèi)高效的對(duì)復(fù)雜的分布式機(jī)器人系統(tǒng)完成測(cè)試。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法及系統(tǒng),無(wú)需手動(dòng)測(cè)試即可在短時(shí)間內(nèi)由分布式機(jī)器人系統(tǒng)自主高效地完成測(cè)試。
為實(shí)現(xiàn)上述目的,本發(fā)明提出如下技術(shù)方案:一種面向分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法,包括如下步驟:
步驟1,分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式拓?fù)渚W(wǎng)絡(luò);
步驟2,根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò)生成用于測(cè)試分布式機(jī)器人系統(tǒng)的灰盒測(cè)試用例;
步驟3,根據(jù)所述灰盒測(cè)試用例對(duì)分布式機(jī)器人系統(tǒng)進(jìn)行灰盒自主測(cè)試。
優(yōu)選地,所述工作模式拓?fù)渚W(wǎng)絡(luò)包括數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò),所述工作模式拓?fù)渚W(wǎng)絡(luò)根據(jù)如下步驟獲得:
步驟101,分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式邏輯關(guān)系;
步驟102,根據(jù)所述工作模式邏輯關(guān)系將工作模式劃分為若干個(gè)原子工作模式,根據(jù)所述原子工作模式建立數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò);
步驟103,分析所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò),判斷是否存在環(huán),若存在環(huán),則上報(bào)用戶工作模式設(shè)置出錯(cuò),否則,根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)建立工作模式拓?fù)渚W(wǎng)絡(luò)。
優(yōu)選地,所述灰盒測(cè)試用例的生成包括如下步驟:
步驟201,根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)迭代生成邏輯關(guān)系片段;
步驟202,將所述邏輯關(guān)系片段映射到面向分布式機(jī)器人系統(tǒng)的邏輯功能片段,并將所述邏輯功能片段與工作模式相匹配,獲得灰盒測(cè)試用例參數(shù);
步驟203,根據(jù)所述灰盒測(cè)試用例參數(shù)生成形式化的灰盒測(cè)試用例。
優(yōu)選地,所述分布式機(jī)器人系統(tǒng)包括若干傳感器模塊及控制模塊,所述邏輯關(guān)系片段用于表示各傳感器模塊、控制模塊之間的直接相互作用關(guān)系,邏輯關(guān)系片段用二元組(a,b)表示,其中,a為觸發(fā)源,b為被觸發(fā)項(xiàng))。
優(yōu)選地,所述邏輯功能片段用于表示分布式機(jī)器人系統(tǒng)按照預(yù)設(shè)工作模式進(jìn)行工作時(shí),各傳感器模塊、控制模塊之間數(shù)據(jù)流向或者控制流向的邏輯關(guān)系片段,所述邏輯功能片段用三元組(c,d,e)表示,其中,c為觸發(fā)源,d為聯(lián)動(dòng)條件,e為被觸發(fā)項(xiàng)。
優(yōu)選地,所述步驟203中,灰盒測(cè)試用例參數(shù)所用三元組(f,g,h)表示,灰盒測(cè)試用例參數(shù)轉(zhuǎn)換為測(cè)試用例斷言語(yǔ)句,其中,f為預(yù)期輸入,g為預(yù)期條件,h為預(yù)期輸出。
優(yōu)選地,所述灰盒自主測(cè)試包括如下步驟:
步驟301,根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)控制執(zhí)行分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試;
步驟302,根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò)向所述邏輯功能片段或者單個(gè)傳感器模塊或單個(gè)控制模塊發(fā)送所述灰盒測(cè)試用例的預(yù)期輸入和預(yù)期執(zhí)行條件參數(shù),以及測(cè)試方式執(zhí)行的控制命令;
步驟303,所述邏輯功能片段或單個(gè)傳感器模塊或單個(gè)控制模塊執(zhí)行所述灰盒測(cè)試用例,并返回執(zhí)行結(jié)果;
步驟304,判斷所述執(zhí)行結(jié)果與預(yù)期輸出是否相匹配,若匹配,則灰盒測(cè)試用例執(zhí)行通過(guò);否則,該灰盒測(cè)試用例執(zhí)行不通過(guò),并進(jìn)行顯示。
一種面向分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試系統(tǒng),包括
工作模式分析單元,用于分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式拓?fù)渚W(wǎng)絡(luò);
測(cè)試用例生成單元,用于根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)生成用于測(cè)試分布式機(jī)器人系統(tǒng)的灰盒測(cè)試用例;
測(cè)試執(zhí)行單元,用于根據(jù)動(dòng)態(tài)生成的灰盒測(cè)試用例對(duì)整體分布式機(jī)器人系統(tǒng)進(jìn)行灰盒自主測(cè)試。
優(yōu)選地,所述工作模式分析單元包括第一分析模塊和第二分析模塊,所述第一分析模塊用于對(duì)分布式機(jī)器人系統(tǒng)的工作模式進(jìn)行分析,獲得數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò);所述第二分析模塊用于分析數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)中是否存在環(huán),若存在環(huán),則上報(bào)用戶工作模式設(shè)置出錯(cuò),否則,建立工作模式拓?fù)渚W(wǎng)絡(luò)。
優(yōu)選地,所述測(cè)試用例生成單元包括邏輯關(guān)系片段迭代生成模塊、映射模塊,以及灰盒測(cè)試用例生成模塊;
所述邏輯關(guān)系片段迭代生成模塊用于根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)迭代生成邏輯關(guān)系片段;
所述映射模塊用于將所述邏輯關(guān)系片段映射到面向分布式機(jī)器人系統(tǒng)的邏輯功能片段,并將所述邏輯功能片段與工作模式相匹配,獲得灰盒測(cè)試用例參數(shù);
所述灰盒測(cè)試用例生成模塊用于根據(jù)所述灰盒測(cè)試用例參數(shù)生成形式化的灰盒測(cè)試用例。
優(yōu)選地,所述測(cè)試執(zhí)行單元包括執(zhí)行控制模塊、測(cè)試啟動(dòng)模塊、接收分析模塊、測(cè)試上報(bào)模塊,以及測(cè)試結(jié)果顯示模塊;
所述執(zhí)行控制模塊用于根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)控制執(zhí)行分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試;
所述測(cè)試啟動(dòng)模塊用于根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò),向所述邏輯功能片段或者單個(gè)傳感器模塊或單個(gè)控制模塊發(fā)送所述灰盒測(cè)試用例的預(yù)期輸入和預(yù)期執(zhí)行條件參數(shù),以及以測(cè)試方式運(yùn)行的控制命令;
所述接收分析模塊用于接收被測(cè)得所述邏輯功能片段或單個(gè)模塊的執(zhí)行結(jié)果,并將執(zhí)行結(jié)果與所述灰盒測(cè)試用例預(yù)期輸出相比對(duì),判斷是否存在故障;
所述測(cè)試上報(bào)模塊用于在所有所述灰盒測(cè)試用例被執(zhí)行測(cè)試完畢后,上報(bào)測(cè)試結(jié)果;
所述測(cè)試結(jié)果顯示模塊用于將存在功能缺陷的邏輯功能片段進(jìn)行顯示。
本發(fā)明的有益效果是:
本發(fā)明所述的分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法及系統(tǒng),具有提高系統(tǒng)測(cè)試的便捷性,提高系統(tǒng)測(cè)試效率及獨(dú)立自主性,減少手動(dòng)測(cè)試,減少成本的優(yōu)點(diǎn)。
附圖說(shuō)明
圖1是本發(fā)明灰盒自主測(cè)試流程圖;
圖2是本發(fā)明工作模式示意圖;
圖3是本發(fā)明數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)示意圖;
圖4是本發(fā)明控制流拓?fù)渚W(wǎng)絡(luò)示意圖;
圖5是本發(fā)明工作模式拓?fù)渚W(wǎng)絡(luò)流程圖;
圖6是本發(fā)明工作模式拓?fù)渚W(wǎng)絡(luò)示意圖;
圖7是本發(fā)明灰盒測(cè)試用例生成流程圖;
圖8是本發(fā)明灰盒自主測(cè)試流程圖;
圖9是本發(fā)明灰盒自主測(cè)試系統(tǒng)結(jié)構(gòu)框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明的附圖,對(duì)本發(fā)明實(shí)施例的技術(shù)方案進(jìn)行清楚、完整的描述。
本發(fā)明所揭示的一種分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法及系統(tǒng),能夠提高分布式機(jī)器人系統(tǒng)測(cè)試的便捷性和測(cè)試效率。
結(jié)合圖1和圖2所示,一種分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法,包括如下步驟:
步驟1,分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式拓?fù)渚W(wǎng)絡(luò)。
具體的,分布式機(jī)器人系統(tǒng)包括若干傳感器模塊,以及控制模塊,所述傳感器模塊用于主動(dòng)獲取測(cè)量值,并通過(guò)無(wú)線網(wǎng)絡(luò)將獲取的測(cè)量值發(fā)送至控制模塊中,同時(shí),傳感器模塊還能夠根據(jù)接收到的控制指令調(diào)整自身的工作模式。所述控制模塊用于根據(jù)接收到的測(cè)量值控制與之相通信或者相直連的受控設(shè)備執(zhí)行相應(yīng)的操作,所述受控設(shè)備包括外界硬件設(shè)備,如包括步進(jìn)馬達(dá)、繼電器、計(jì)算機(jī)等等,還包括用于完成某種計(jì)算或功能的控制模塊。在分布式機(jī)器人系統(tǒng)中,所述工作模式用于表示當(dāng)前分布式機(jī)器人系統(tǒng)處于何種工作狀態(tài),所述工作模式包括某個(gè)傳感器模塊或者某些傳感器模塊群體處于何種工作時(shí)間段內(nèi),其獲取的測(cè)量值處于何種取值區(qū)間為正常,或者處于何種取值區(qū)間為不正常;在傳感器模塊獲取的測(cè)量值為正常或者不正常時(shí),應(yīng)該向下游控制模塊發(fā)送何種消息,控制模塊接收到消息后執(zhí)行何種操作。
結(jié)合圖3、圖4和圖5所示,所述工作模式拓?fù)渚W(wǎng)絡(luò)包括數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò),所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)用于表示傳感器模塊與控制模塊之間、傳感器模塊與傳感器模塊之間、以及控制模塊與控制模塊之間的數(shù)據(jù)流向,所述控制流拓?fù)渚W(wǎng)絡(luò)用于表示傳感器模塊與控制模塊之間、傳感器模塊與傳感器模塊之間、以及控制模塊與控制模塊之間的控制關(guān)系。其中,所述工作模式拓?fù)渚W(wǎng)絡(luò)根據(jù)如下步驟獲得:
步驟101,分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式邏輯關(guān)系;
步驟102,根據(jù)所述工作模式邏輯關(guān)系將工作模式劃分為若干個(gè)原子工作模式,根據(jù)所述原子工作模式建立數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò);
步驟103,分析所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò),判斷是否存在環(huán),若存在環(huán),則上報(bào)用戶工作模式設(shè)置出錯(cuò),否則,根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)建立工作模式拓?fù)渚W(wǎng)絡(luò),如圖6所示。
本實(shí)施例中,在步驟103中通過(guò)深度優(yōu)先遍歷算法對(duì)數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)是否存在環(huán)進(jìn)行判斷。
具體的,所述工作模式邏輯關(guān)系用于表示分布式機(jī)器人系統(tǒng)中傳感器模塊與控制模塊、傳感器模塊與傳感器模塊,以及控制模塊與控制模塊之間的數(shù)據(jù)流向或控制流向關(guān)系,如圖2所示,工作模式統(tǒng)計(jì)表中,數(shù)據(jù)流向如傳感器模塊1(sensor1)向控制模塊1(controler1)發(fā)送“觸發(fā)消息1”,即傳感器模塊1→(觸發(fā)消息1)→控制模塊1;控制流向如在控制模塊2(controler2)接收傳感器模塊2(sensor2)發(fā)送“觸發(fā)消息3”后,以“聯(lián)動(dòng)控制6”方式控制控制模塊3(controler3),其中傳感器模塊2(sensor2)控制控制模塊3(controler3)為控制流向,即傳感器模塊2→(聯(lián)動(dòng)控制)→控制模塊3。
根據(jù)獲得的工作模式邏輯關(guān)系將工作模式分割為若干個(gè)原子工作模式,所述原子工作模式為不包含其他工作模式的最簡(jiǎn)工作模式。本實(shí)施例中,所述最簡(jiǎn)工作模式表示一個(gè)傳感器模塊按照所述工作模式被聯(lián)動(dòng)到一個(gè)控制模塊,或者一個(gè)控制模塊按照所述工作模式被聯(lián)動(dòng)到一個(gè)控制模塊后所構(gòu)成的邏輯關(guān)系。如傳感器模塊1(sensor1)聯(lián)動(dòng)到控制模塊1(controler1);控制模塊2(controler2)聯(lián)動(dòng)到控制模塊3(controler3)。
結(jié)合圖1和和圖7所示,步驟2,根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò)生成用于測(cè)試分布式機(jī)器人系統(tǒng)的灰盒測(cè)試用例;
具體的,所述灰盒測(cè)試用例的生成包括如下步驟:
步驟201,根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)迭代生成邏輯關(guān)系片段;
步驟202,將所述邏輯關(guān)系片段映射到面向分布式機(jī)器人系統(tǒng)的邏輯功能片段,并將所述邏輯功能片段與工作模式相匹配,獲得灰盒測(cè)試用例參數(shù);
步驟203,根據(jù)所述灰盒測(cè)試用例參數(shù)生成形式化的灰盒測(cè)試用例。
具體的,在步驟201中,所述邏輯關(guān)系片段用于表示各傳感器模塊、控制模塊之間的直接相互作用關(guān)系,通過(guò)對(duì)數(shù)據(jù)流拓網(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)的反復(fù)分析,從而獲得若干個(gè)邏輯關(guān)系片段,其中,生成的邏輯關(guān)系片段用二元組(a,b)表示,其中,a為觸發(fā)源,b為被觸發(fā)項(xiàng),如圖所示的工作模式拓?fù)渚W(wǎng)絡(luò)中,邏輯關(guān)系片段用二元組表示為(傳感器模塊1,控制模塊1),(傳感器模塊1,控制模塊4),(傳感器模塊2,控制模塊2),(控制模塊2,控制模塊3),(傳感器模塊2∧傳感器模塊1,控制模塊5)。
在步驟202中,根據(jù)獲得的邏輯關(guān)系片段,映射到邏輯功能片段,其中,所述邏輯功能片段用于表示分布式機(jī)器人系統(tǒng)按照預(yù)設(shè)工作模式進(jìn)行工作時(shí),各傳感器模塊、控制模塊之間數(shù)據(jù)流向或者控制流向的邏輯關(guān)系片段,所述邏輯功能片段用三元組(c,d,e)表示,其中,c為觸發(fā)源,d為聯(lián)動(dòng)條件,e為被觸發(fā)項(xiàng)。如圖6所示,圖中邏輯功能片段可表示為(傳感器模塊1,觸發(fā)消息1,控制模塊1),(傳感器模塊1,觸發(fā)消息2,控制模塊4),(控制模塊1,聯(lián)動(dòng)控制7,傳感器模塊2),(傳感器模塊2,觸發(fā)消息3,控制模塊2),(控制模塊2,聯(lián)動(dòng)控制6,控制模塊3),(傳感器模塊2∧傳感器模塊1,觸發(fā)消息4∧觸發(fā)消息5,控制模塊5)等。
進(jìn)一步的,將步驟202中獲得的邏輯功能片段,在工作模式中進(jìn)行匹配,生成針對(duì)每個(gè)邏輯功能片段的灰盒測(cè)試用例參數(shù),所述灰盒測(cè)試用例參數(shù)用三元組(f,g,h)表示,其中,f為預(yù)期輸入,g為預(yù)期條件,h為預(yù)期輸出。如邏輯功能片段(傳感器模塊1,觸發(fā)消息1,控制模塊1),與工作模式相匹配獲得的灰盒測(cè)試用例參數(shù)為(周六上午九點(diǎn)測(cè)量值為0.7,觸發(fā)消息1,聯(lián)動(dòng)控制1)。
步驟203中,將生成的灰盒測(cè)試用例參數(shù),進(jìn)一步轉(zhuǎn)換為可被分布式機(jī)器人系統(tǒng)使用的灰盒測(cè)試用例,即將灰盒測(cè)試用例參數(shù)轉(zhuǎn)換為測(cè)試用例斷言語(yǔ)句,如針對(duì)灰盒測(cè)試用例參數(shù)(周六上午九點(diǎn)測(cè)量值為0.7,觸發(fā)消息1,聯(lián)動(dòng)控制1),獲得的測(cè)試用例斷言語(yǔ)句的偽代碼如下:
if((day=“sat”andtime=9:00andvalue=0.7))and(messagegenerated=觸發(fā)消息1)
then
returntrue
本實(shí)施例中,所述灰盒測(cè)試用例包括(a)針對(duì)分布式機(jī)器人系統(tǒng)中的傳感器模塊或者控制模塊的灰盒測(cè)試用例。所述傳感器模塊或控制模塊在灰盒測(cè)試用例中的預(yù)期條件下,接收到該灰盒測(cè)試用例的預(yù)期輸入后,執(zhí)行后,能夠獲得灰盒測(cè)試用例的預(yù)期輸出。(b)針對(duì)邏輯功能片段的灰盒測(cè)試用例。邏輯功能片段在灰盒測(cè)試用例的預(yù)期條件下,接收到該灰盒測(cè)試用例的預(yù)期輸入后,執(zhí)行后,能夠獲得灰盒測(cè)試用例的預(yù)期輸出。
結(jié)合圖1和圖8所示,步驟3,根據(jù)所述灰盒測(cè)試用例對(duì)分布式機(jī)器人系統(tǒng)進(jìn)行灰盒自主測(cè)試。
具體的,所述灰盒自主測(cè)試包括如下步驟:
步驟301,根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)控制執(zhí)行分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試;
步驟302,根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò)向所述邏輯功能片段或者單個(gè)傳感器模塊或單個(gè)控制模塊發(fā)送所述灰盒測(cè)試用例的預(yù)期輸入和預(yù)期執(zhí)行條件參數(shù),以及測(cè)試方式執(zhí)行的控制命令;
步驟303,所述邏輯功能片段或單個(gè)傳感器模塊或單個(gè)控制模塊執(zhí)行所述灰盒測(cè)試用例,并返回執(zhí)行結(jié)果;
步驟304,判斷所述執(zhí)行結(jié)果與預(yù)期輸出是否相匹配,若匹配,則灰盒測(cè)試用例執(zhí)行通過(guò);否則,該灰盒測(cè)試用例執(zhí)行不通過(guò),即該灰盒測(cè)試用例對(duì)應(yīng)的邏輯功能片段存在故障,并進(jìn)行顯示。
本實(shí)施例中,將存在故障的邏輯功能片段對(duì)應(yīng)的傳感器模塊或控制模塊以圖形或者名稱字符串的形式在顯示器中進(jìn)行顯示。
具體的,將所有執(zhí)行不通過(guò)的灰盒測(cè)試用例以文本的方式在顯示器上顯示出來(lái);將控制流拓?fù)渚W(wǎng)絡(luò)以圖形的方式在顯示器上顯示出來(lái),所有執(zhí)行不通過(guò)的灰盒測(cè)試用例對(duì)應(yīng)的節(jié)點(diǎn)顏色以反白顯示。
如圖9所示,一種分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試系統(tǒng),包括
工作模式分析單元,用于分析分布式機(jī)器人系統(tǒng)的工作模式,獲得工作模式拓?fù)渚W(wǎng)絡(luò)。
測(cè)試用例生成單元,用于根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)生成用于測(cè)試分布式機(jī)器人系統(tǒng)的灰盒測(cè)試用例;
測(cè)試執(zhí)行單元,用于根據(jù)動(dòng)態(tài)生成的灰盒測(cè)試用例對(duì)分布式機(jī)器人系統(tǒng)進(jìn)行灰盒自主測(cè)試。
進(jìn)一步的,所述工作模式分析單元包括第一分析模塊和第二分析模塊,所述第一分析模塊用于對(duì)分布式機(jī)器人系統(tǒng)的工作模式進(jìn)行分析,獲得數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)。
具體的,首先,對(duì)分布式機(jī)器人系統(tǒng)的工作模式進(jìn)行分析,獲得工作模式邏輯關(guān)系;其次,根據(jù)所述工作模式邏輯關(guān)系將工作模式進(jìn)一步劃分,將其劃分成若干原子工作模式;最后,依據(jù)所述原子工作模式建立數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)。
所述第二分析模塊用于分析數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)中是否存在環(huán),若存在環(huán),則上報(bào)用戶工作模式設(shè)置出錯(cuò),否則建立工作模式拓?fù)渚W(wǎng)絡(luò)。
進(jìn)一步的,所述測(cè)試用例生成單元包括邏輯關(guān)系片段迭代生成模塊、映射模塊,以及用例生成模塊;
所述邏輯關(guān)系片段迭代生成模塊用于根據(jù)所述數(shù)據(jù)流拓?fù)渚W(wǎng)絡(luò)和控制流拓?fù)渚W(wǎng)絡(luò)迭代生成邏輯關(guān)系片段;其中,所述邏輯關(guān)系片段用二元組(觸發(fā)源,被觸發(fā)項(xiàng))表示,表示各傳感器模塊、控制模塊之間,直接相互作用關(guān)系。
所述映射模塊用于將所述邏輯關(guān)系片段映射到面向分布式機(jī)器人系統(tǒng)的邏輯功能片段,并將所述邏輯功能片段與工作模式相匹配,獲得灰盒測(cè)試用例參數(shù);其中,所述邏輯功能片段用三元組(觸發(fā)源,聯(lián)動(dòng)條件,被觸發(fā)項(xiàng)),所述邏輯功能片段用于表示分布式機(jī)器人系統(tǒng)按照預(yù)設(shè)工作模式進(jìn)行工作時(shí),各傳感器模塊、控制模塊之間數(shù)據(jù)流向或者控制流向的邏輯關(guān)系片段;所述灰盒測(cè)試用例參數(shù)用三元組(預(yù)期輸入,預(yù)期條件,預(yù)期輸出)表示。
所述用例生成模塊用于根據(jù)所述灰盒測(cè)試用例參數(shù)生成形式化的灰盒測(cè)試用例。具體的,將所述灰盒測(cè)試用例參數(shù)轉(zhuǎn)換為能夠被分布式機(jī)器人系統(tǒng)使用的測(cè)試用例斷言語(yǔ)句。
進(jìn)一步的,所述測(cè)試執(zhí)行單元包括執(zhí)行控制模塊、測(cè)試啟動(dòng)模塊、接收分析模塊、測(cè)試上報(bào)模塊,以及測(cè)試結(jié)果顯示模塊;其中,
所述執(zhí)行控制模塊用于根據(jù)工作模式拓?fù)渚W(wǎng)絡(luò)控制執(zhí)行分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試過(guò)程;
所述測(cè)試啟動(dòng)模塊用于根據(jù)所述工作模式拓?fù)渚W(wǎng)絡(luò),向所述邏輯功能片段或者單個(gè)傳感器模塊或單個(gè)控制模塊發(fā)送所述灰盒測(cè)試用例的預(yù)期輸入和預(yù)期執(zhí)行條件參數(shù),以及以測(cè)試方式運(yùn)行的控制命令;
所述接收分析模塊用于接收被測(cè)得所述邏輯功能片段或單個(gè)傳感器模塊或單個(gè)控制模塊的執(zhí)行結(jié)果,并將執(zhí)行結(jié)果與所述灰盒測(cè)試用例預(yù)期輸出相比對(duì),判斷是否存在故障,即是否存在代碼級(jí)缺陷或功能缺陷;
所述測(cè)試上報(bào)模塊用于在所有所述灰盒測(cè)試用例被執(zhí)行測(cè)試完畢后,上報(bào)測(cè)試結(jié)果;
所述測(cè)試結(jié)果顯示模塊用于將存在功能缺陷的邏輯功能片段進(jìn)行顯示,本實(shí)施例中,將存在故障的邏輯功能片段對(duì)應(yīng)的傳感器模塊或控制模塊以圖形或者名稱字符串的形式在顯示器中進(jìn)行顯示。
本發(fā)明所述的分布式機(jī)器人系統(tǒng)的灰盒自主測(cè)試方法及系統(tǒng),能夠提高系統(tǒng)測(cè)試的便捷性及獨(dú)立自主性,進(jìn)一步提高系統(tǒng)測(cè)試效率,減少手動(dòng)測(cè)試,進(jìn)一步減少成本。
本發(fā)明的技術(shù)內(nèi)容及技術(shù)特征已揭示如上,然而熟悉本領(lǐng)域的技術(shù)人員仍可能基于本發(fā)明的教示及揭示而作種種不背離本發(fā)明精神的替換及修飾,因此,本發(fā)明保護(hù)范圍應(yīng)不限于實(shí)施例所揭示的內(nèi)容,而應(yīng)包括各種不背離本發(fā)明的替換及修飾,并為本專利申請(qǐng)權(quán)利要求所涵蓋。