自動(dòng)化測(cè)試嵌入式軟件的方法
【專(zhuān)利摘要】本發(fā)明提出一種自動(dòng)化測(cè)試嵌入式軟件的方法,旨在提供一種設(shè)計(jì)與執(zhí)行不再分離,能有效提高嵌入式軟件測(cè)試效率和質(zhì)量的方法。本發(fā)明通過(guò)下述技術(shù)方案予以實(shí)現(xiàn):運(yùn)用軟件工程化將接口設(shè)計(jì)、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、缺陷管理和回歸測(cè)試集成到一個(gè)統(tǒng)一平臺(tái)進(jìn)行管理。根據(jù)項(xiàng)目不同,配置數(shù)據(jù)元和數(shù)據(jù)塊之間的級(jí)數(shù),設(shè)計(jì)接口控制文件;建立測(cè)試交聯(lián)環(huán)境圖,制定測(cè)試類(lèi)型,設(shè)計(jì)測(cè)試項(xiàng)或測(cè)試子項(xiàng),測(cè)試用例名稱(chēng)以及測(cè)試用例描述;設(shè)計(jì)獨(dú)立測(cè)試用例,并將獨(dú)立測(cè)試用例通過(guò)流程圖聯(lián)系在一起組成場(chǎng)景/業(yè)務(wù)流測(cè)試用例,測(cè)試設(shè)計(jì)的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)里;測(cè)試執(zhí)行結(jié)合測(cè)試環(huán)境圖、測(cè)試用例和接口路由,共同組成測(cè)試平臺(tái);測(cè)試結(jié)果由系統(tǒng)自動(dòng)記錄。
【專(zhuān)利說(shuō)明】自動(dòng)化測(cè)試嵌入式軟件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及嵌入式軟件測(cè)試技術(shù),尤其是涉及一種嵌入式軟件的自動(dòng)化測(cè)試及管理方法。
【背景技術(shù)】
[0002]隨著嵌入式技術(shù)的普及和發(fā)展,嵌入式應(yīng)用日益走向縱深,嵌入式軟件的開(kāi)發(fā)規(guī)模也日益擴(kuò)大,與之對(duì)應(yīng)的嵌入式軟件復(fù)雜程度也越來(lái)越高。由于嵌入式軟件往往直接或間接控制一些硬件,與硬件設(shè)備組成一個(gè)系統(tǒng),在實(shí)際環(huán)境下如果嵌入式軟件出現(xiàn)錯(cuò)誤,可能使其控制的硬件設(shè)備處于異常狀態(tài),如果軟件控制的是安全關(guān)鍵設(shè)備,其軟件故障將對(duì)整個(gè)系統(tǒng)造成無(wú)法彌補(bǔ)的損失,甚至危及人生和財(cái)產(chǎn)安全。嵌入式系統(tǒng)的特殊性決定了運(yùn)行在其上的系統(tǒng)和應(yīng)用軟件必須精簡(jiǎn)高效,穩(wěn)定可靠,使得軟件的開(kāi)發(fā)在整個(gè)嵌入式系統(tǒng)開(kāi)發(fā)中的比重越來(lái)越高,軟件的質(zhì)量對(duì)整個(gè)產(chǎn)品的質(zhì)量起到了決定性的作用。
[0003]軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(Test Case,即輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)錯(cuò)誤的過(guò)程。軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵步驟,是軟件生命周期的重要環(huán)節(jié),是軟件工程研究領(lǐng)域的重要內(nèi)容。軟件測(cè)試的有效開(kāi)展對(duì)于提高軟件質(zhì)量至關(guān)重要。隨著嵌入式系統(tǒng)復(fù)雜程度越來(lái)越高,嵌入式軟件的測(cè)試正面臨前所未有的挑戰(zhàn)。大多數(shù)軟件測(cè)試方法和工具都可以直接或間接地用于嵌入式軟件的測(cè)試,但是由于嵌入式系統(tǒng)的自身特點(diǎn),如實(shí)時(shí)性、內(nèi)存不豐富、I/O通道少、開(kāi)發(fā)工具昂貴、與硬件緊密相關(guān)、CPU種類(lèi)繁多等等,嵌入式軟件的開(kāi)發(fā)和測(cè)試策略也就與一般商用軟件的開(kāi)發(fā)和測(cè)試策略有了很大的不同。嵌入式軟件與其他軟件相比,它具有專(zhuān)用性,它只能在需求所指定的硬件平臺(tái)上運(yùn)行。并且嵌入式軟件的開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境是不一致的,因此即使宿主機(jī)環(huán)境下測(cè)試再充分,也不能說(shuō)明在目標(biāo)機(jī)環(huán)境下運(yùn)行該軟件就不出問(wèn)題。因而,嵌入式軟件還面臨著目標(biāo)環(huán)境的測(cè)試。這不僅增加了測(cè)試的代價(jià),而且還帶來(lái)了嵌入式軟件的測(cè)試策略問(wèn)題。
[0004]對(duì)于嵌入式軟件的配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試,其被測(cè)軟件運(yùn)行在真實(shí)的目標(biāo)環(huán)境下,交聯(lián)的配測(cè)設(shè)備是實(shí)物或仿真環(huán)境,通過(guò)輸入真實(shí)或模擬的激勵(lì),測(cè)試軟件在目標(biāo)環(huán)境下的響應(yīng),對(duì)于了解軟件的真實(shí)運(yùn)行,對(duì)于提高軟件的質(zhì)量至關(guān)重要。目前,嵌入式軟件配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試,測(cè)試手段大多是手工編寫(xiě)測(cè)試用例,手動(dòng)執(zhí)行測(cè)試用例,再人工記錄測(cè)試結(jié)果。被測(cè)軟件的測(cè)試輸入,往往依賴(lài)于開(kāi)發(fā)設(shè)計(jì)的配測(cè)模擬器,而在項(xiàng)目時(shí)間緊張沒(méi)有配測(cè)模擬器時(shí),只能使用串口調(diào)試助手等調(diào)試工具模擬輸入報(bào)文,如此需要對(duì)照ICD設(shè)計(jì)二進(jìn)制或十六進(jìn)制的測(cè)試輸入數(shù)據(jù),很不直觀,接收到的輸出數(shù)據(jù)也是二進(jìn)制或十六進(jìn)制的報(bào)文,還需對(duì)照ICD去逐個(gè)手動(dòng)解析,不便于觀察。對(duì)于交聯(lián)環(huán)境復(fù)雜的軟件測(cè)試,還需要針對(duì)不同模塊不同接口,在不同的主機(jī)之間來(lái)回切換,不便于操作。當(dāng)軟件中所含缺陷被發(fā)現(xiàn)時(shí),如果缺陷跟蹤與管理系統(tǒng)不夠完善,就可能會(huì)遺漏對(duì)這些缺陷的修改;而開(kāi)發(fā)者對(duì)缺陷的理解不夠透徹,也可能導(dǎo)致所做的修改只修正了缺陷的外在表現(xiàn),而沒(méi)有修復(fù)缺陷本身,從而造成修改失敗。修改還有可能產(chǎn)生副作用,從而導(dǎo)致軟件未被修改的部分產(chǎn)生新的問(wèn)題,使本來(lái)工作正常的功能產(chǎn)生錯(cuò)誤。同樣,在有新代碼加入軟件的時(shí)候,除了新加入的代碼中有可能含有缺陷外,新代碼還有可能對(duì)原有的代碼帶來(lái)影響。因此,每當(dāng)軟件發(fā)生變化時(shí),就必須重新測(cè)試現(xiàn)有的功能,以便確定修改是否達(dá)到了預(yù)期的目的,檢查修改是否損害了原有的正常功能。同時(shí),還需要補(bǔ)充新的測(cè)試用例來(lái)測(cè)試新的或被修改了的功能。這就是軟件的回歸測(cè)試Regress1n Test?;貧w測(cè)試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測(cè)試過(guò)程中占有很大的工作量比重。對(duì)于接口較為復(fù)雜的軟件,構(gòu)造測(cè)試輸入數(shù)據(jù)在執(zhí)行測(cè)試過(guò)程中需要花費(fèi)很多時(shí)間,而這些測(cè)試數(shù)據(jù)在手動(dòng)測(cè)試中難以保存,在進(jìn)行回歸測(cè)試時(shí),需要重新編輯、輸入、執(zhí)行,費(fèi)時(shí)費(fèi)力。隨著嵌入式系統(tǒng)的規(guī)模和復(fù)雜度急劇增加,開(kāi)發(fā)周期和成本也越來(lái)越高。在軟件的開(kāi)發(fā)過(guò)程中,依靠人力進(jìn)行分析測(cè)試效率太低,而且不能保證軟件質(zhì)量。對(duì)于測(cè)試成果,也難以繼承和積累下來(lái)。自動(dòng)化測(cè)試是使用一種自動(dòng)化測(cè)試工具來(lái)驗(yàn)證各種軟件測(cè)試的需求,它包括測(cè)試活動(dòng)的管理與實(shí)施。自動(dòng)化測(cè)試作為一種重要的軟件測(cè)試技術(shù),如果將其引入嵌入式軟件的配置項(xiàng)測(cè)試和系統(tǒng)測(cè)試流程中,將會(huì)對(duì)軟件的質(zhì)量、成本和周期帶來(lái)顯著的效果。
[0005]作為嵌入式軟件開(kāi)發(fā)關(guān)鍵環(huán)節(jié)的測(cè)試自動(dòng)化技術(shù),在研究與發(fā)展同嵌入式軟件開(kāi)發(fā)的其他環(huán)節(jié)相比尤為滯后,“手工作坊式”的嵌入式軟件測(cè)試的現(xiàn)象還沒(méi)有徹底改變,不僅無(wú)法保障嵌入式軟件的質(zhì)量,而且嚴(yán)重制約了嵌入式軟件產(chǎn)業(yè)的整體發(fā)展。嵌入式軟件系統(tǒng)的復(fù)雜性也給嵌入式軟件的測(cè)試帶來(lái)了很多的困難。目前的自動(dòng)化測(cè)試解決方案幾乎都是采用“錄制.回放"的技術(shù),側(cè)重對(duì)界面的測(cè)試。所謂“錄制.回放”技術(shù),就是先由手工完成一遍需要測(cè)試的流程,同時(shí)計(jì)算機(jī)記錄下這個(gè)流程,并形成特定的腳本程序。腳本是一組測(cè)試工具執(zhí)行的指令集合,也是計(jì)算機(jī)程序的一種形式。腳本可以通過(guò)錄制測(cè)試的操作產(chǎn)生,然后再做修改,但這種簡(jiǎn)單的錄制/回放,由工具錄制并記錄操作的過(guò)程和數(shù)據(jù)形成腳本,通過(guò)回放來(lái)重復(fù)人工操作的過(guò)程。在這種模式下數(shù)據(jù)和腳本混在一起,幾乎一個(gè)測(cè)試用例對(duì)應(yīng)一個(gè)腳本,維護(hù)成本很高。而且即使界面的簡(jiǎn)單變化也需要重新錄制,腳本可重復(fù)使用的效率低。而嵌入式的軟件界面較為簡(jiǎn)單,甚至很多嵌入式軟件根本沒(méi)有界面。對(duì)于嵌入式軟件測(cè)試,關(guān)注更多的是不同模塊之間的數(shù)據(jù)交互、控制,以及響應(yīng)。同時(shí),隨著嵌入式軟件應(yīng)用得越來(lái)越廣泛,嵌入式軟件之間的交互變得越來(lái)越復(fù)雜,即交聯(lián)關(guān)系更為復(fù)雜。當(dāng)前測(cè)試工具基本都是針對(duì)單機(jī)執(zhí)行設(shè)計(jì)的,很難建立多個(gè)模塊之間交互過(guò)程的業(yè)務(wù)流用例測(cè)試,而這方面的測(cè)試,卻往往是一個(gè)軟件的核心功能測(cè)試。
[0006]同時(shí),對(duì)于嵌入式軟件測(cè)試,不管是進(jìn)行二方還是三方的測(cè)試,都需要生成格式嚴(yán)謹(jǐn)?shù)臏y(cè)試計(jì)劃、測(cè)試說(shuō)明、測(cè)試記錄和測(cè)試報(bào)告。目前通常的做法都是編寫(xiě)好測(cè)試計(jì)劃、測(cè)試說(shuō)明后,手動(dòng)執(zhí)行測(cè)試用例,記錄測(cè)試結(jié)果,再編寫(xiě)測(cè)試報(bào)告?,F(xiàn)有的測(cè)試管理工具如KTFLOW、QC可以輔助測(cè)試過(guò)程管理,但與測(cè)試執(zhí)行是分離的,即測(cè)試記錄需要手動(dòng)記入,測(cè)試的效率和結(jié)果的真實(shí)性都有待提聞。
[0007]另外,目前的測(cè)試工具都沒(méi)有考慮軟件工程化的問(wèn)題,在測(cè)試過(guò)程中,軟件需求和接口文檔變更后,測(cè)試人員不能在第一時(shí)間獲取到變更信息,導(dǎo)致測(cè)試工作的變更滯后,響應(yīng)較差,影響整個(gè)項(xiàng)目的進(jìn)度。
[0008]對(duì)于嵌入式軟件,自動(dòng)化測(cè)試一直沒(méi)有找到一種行之有效的方法,從而嚴(yán)重影響了軟件質(zhì)量和開(kāi)發(fā)效率。整個(gè)測(cè)試過(guò)程就是耗費(fèi)大量時(shí)間的重復(fù)體力操作。而且測(cè)試過(guò)程中,每次測(cè)試用例的結(jié)果都是人為作判斷的,測(cè)試用例數(shù)量往往非常多,整個(gè)測(cè)試過(guò)程下來(lái),測(cè)試結(jié)果也會(huì)有很大的偏差,效率很低。
【發(fā)明內(nèi)容】
[0009]為了解決上述技術(shù)問(wèn)題,本發(fā)明的目的是提供一種能夠快速執(zhí)行、更好地利用資源、高效地執(zhí)行測(cè)試腳本、提高測(cè)試準(zhǔn)確度并提供規(guī)范化的測(cè)試重用性的嵌入式軟件自動(dòng)化測(cè)試和測(cè)試管理的方法,該方法設(shè)計(jì)與執(zhí)行不再分離,能有效提高嵌入式軟件測(cè)試的效率和質(zhì)量。
[0010]本發(fā)明的上述目的可以通過(guò)以下措施來(lái)達(dá)到,一種自動(dòng)化測(cè)試嵌入式軟件的方法,具有如下技術(shù)特征:運(yùn)用軟件工程化將接口設(shè)計(jì)、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果記錄、缺陷管理和回歸測(cè)試集成到一個(gè)統(tǒng)一平臺(tái)進(jìn)行管理,具體包括以下步驟:
步驟1,接口設(shè)計(jì),把接口設(shè)計(jì)的元素分為數(shù)據(jù)元、數(shù)據(jù)塊、數(shù)據(jù)組、邏輯塊、接口消息模塊幾部分,根據(jù)項(xiàng)目不同,配置數(shù)據(jù)元和數(shù)據(jù)塊之間的級(jí)數(shù),將設(shè)計(jì)好的接口控制文件ICD存儲(chǔ)在數(shù)據(jù)庫(kù)里,后臺(tái)生成標(biāo)準(zhǔn)的XML格式文件,以供測(cè)試數(shù)據(jù)自動(dòng)生成、測(cè)試數(shù)據(jù)解析和接口文檔自動(dòng)生成使用;
步驟2,測(cè)試策劃,建立測(cè)試交聯(lián)環(huán)境圖,制定測(cè)試類(lèi)型,設(shè)計(jì)測(cè)試項(xiàng)或測(cè)試子項(xiàng),測(cè)試用例名稱(chēng)以及測(cè)試用例描述,每個(gè)測(cè)試用例為一個(gè)測(cè)試點(diǎn),并設(shè)定自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試計(jì)劃,即測(cè)試需求分析的內(nèi)容;
步驟3,測(cè)試設(shè)計(jì),測(cè)試設(shè)計(jì)分為三步,第一步根據(jù)ICD元素,結(jié)合邏輯關(guān)系自動(dòng)生成測(cè)試數(shù)據(jù);第二步設(shè)計(jì)獨(dú)立測(cè)試用例,將本用例涉及到的ICD拖入到設(shè)計(jì)界面建立本用例的交聯(lián)框圖,并為每條ICD選取/設(shè)計(jì)對(duì)應(yīng)的測(cè)試數(shù)據(jù)和數(shù)據(jù)屬性;第三步設(shè)計(jì)關(guān)聯(lián)測(cè)試用例,測(cè)試人員可以使用場(chǎng)景分析法,基于場(chǎng)景/業(yè)務(wù)流,模仿用戶在實(shí)際使用過(guò)程中的操作,將不同的測(cè)試用例通過(guò)流程圖的方式聯(lián)系在一起,設(shè)計(jì)場(chǎng)景或業(yè)務(wù)流測(cè)試用例,或?qū)Σ煌臓顟B(tài)轉(zhuǎn)換進(jìn)行測(cè)試。在界面設(shè)計(jì)好測(cè)試數(shù)據(jù)及數(shù)據(jù)屬性后,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成測(cè)試腳本和測(cè)試步驟,步驟的描述圍繞數(shù)據(jù)的發(fā)送、接收展開(kāi),以數(shù)據(jù)為中心,格式統(tǒng)一,測(cè)試設(shè)計(jì)的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)里,同時(shí)支持根據(jù)不同格式的模板生成測(cè)試說(shuō)明,測(cè)試用例的描述在測(cè)試策劃時(shí)由測(cè)試人員設(shè)計(jì),測(cè)試步驟由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成;
步驟4,測(cè)試執(zhí)行,測(cè)試執(zhí)行結(jié)合測(cè)試環(huán)境圖、測(cè)試用例、接口路由,共同組成測(cè)試平臺(tái),測(cè)試執(zhí)行分為三步,第一步為數(shù)據(jù)分發(fā),由接口路由總控端根據(jù)界面設(shè)計(jì)的測(cè)試交聯(lián)環(huán)境圖和測(cè)試用例,將測(cè)試激勵(lì)/輸入數(shù)據(jù)分發(fā)給對(duì)應(yīng)的代理端;第二步為代理端驅(qū)動(dòng)接口通信模塊,將對(duì)應(yīng)的測(cè)試數(shù)據(jù)發(fā)送給被測(cè)軟件;第三步為代理端監(jiān)控被測(cè)軟件的響應(yīng),將與被測(cè)軟件交互的模塊之間的通信報(bào)文轉(zhuǎn)發(fā)給總控端進(jìn)行統(tǒng)一處理;
步驟5,測(cè)試結(jié)果記錄,總控端收到代理端傳回的數(shù)據(jù)后,進(jìn)行顯示并解析,同時(shí)與測(cè)試用例的預(yù)期結(jié)果報(bào)文進(jìn)行比較,如果相同則判用例通過(guò),顯示用例執(zhí)行成功Pass,如果不相同則判該用例不通過(guò),顯示用例執(zhí)行失敗Fail,測(cè)試結(jié)果由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)記錄,自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試記錄;
步驟6,缺陷管理和回歸測(cè)試,對(duì)于執(zhí)行失敗Fail的測(cè)試用例,確認(rèn)是被測(cè)軟件缺陷的,在對(duì)應(yīng)的測(cè)試用例后提交缺陷跟蹤單,開(kāi)發(fā)人員進(jìn)行缺陷修復(fù)后進(jìn)行回歸測(cè)試,關(guān)閉已修改的缺陷;在回歸測(cè)試中,如果ICD沒(méi)有變更,回歸時(shí)可以復(fù)用前期設(shè)計(jì)的測(cè)試用例,并自動(dòng)進(jìn)行回歸測(cè)試執(zhí)行;如果ICD的數(shù)據(jù)元素發(fā)生了變化,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)標(biāo)識(shí)出受影響的測(cè)試用例,提示測(cè)試人員對(duì)用例進(jìn)行修改后再執(zhí)行回歸測(cè)試;測(cè)試用例在不同測(cè)試階段所做的修改,自動(dòng)化測(cè)試系統(tǒng)會(huì)將其標(biāo)識(shí)為不同的版本存入數(shù)據(jù)庫(kù),以追溯數(shù)據(jù)修改過(guò)程和版本管理;自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成缺陷報(bào)告單;
步驟7,知識(shí)庫(kù)建立,測(cè)試結(jié)束后對(duì)測(cè)試過(guò)程進(jìn)行總結(jié),將設(shè)計(jì)精巧的測(cè)試用例納入典型測(cè)試用例庫(kù)里,將發(fā)現(xiàn)的有價(jià)值的缺陷納入典型缺陷庫(kù)里,以便于后期在做類(lèi)似項(xiàng)目的測(cè)試工作時(shí),進(jìn)行借鑒,以持續(xù)提高。
[0011]本發(fā)明的優(yōu)點(diǎn)和積極效果在于:
提高了工作效率。本發(fā)明利用工程化的思想,將軟件接口設(shè)計(jì)、軟件測(cè)試和缺陷管理集成在一起,資源共享,當(dāng)接口變更時(shí),測(cè)試人員可以在第一時(shí)間了解到這些變化,從而進(jìn)行測(cè)試設(shè)計(jì)修改;同時(shí),測(cè)試人員提交缺陷跟蹤單后,開(kāi)發(fā)人員也能在第一時(shí)間獲取到軟件缺陷信息,并進(jìn)行修復(fù)工作,提高了工作效率。
[0012]提高了測(cè)試效率。本發(fā)明將接口設(shè)計(jì)、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果記錄、缺陷管理和回歸測(cè)試集成到一個(gè)統(tǒng)一平臺(tái)進(jìn)行管理,提高軟件測(cè)試的效率和質(zhì)量。在開(kāi)發(fā)人員設(shè)計(jì)好接口后,可自動(dòng)生成部分測(cè)試數(shù)據(jù);測(cè)試人員在界面設(shè)計(jì)好測(cè)試用例的測(cè)試數(shù)據(jù)及屬性后,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成測(cè)試腳本和測(cè)試步驟;測(cè)試執(zhí)行時(shí)支持批量測(cè)試用例的執(zhí)行,可以實(shí)現(xiàn)人休息而設(shè)備不休息,白天進(jìn)行測(cè)試設(shè)計(jì)晚上自動(dòng)執(zhí)行測(cè)試等;對(duì)于回歸測(cè)試,只要接口數(shù)據(jù)沒(méi)有變更,就可以重用前期設(shè)計(jì)好的用例,直接自動(dòng)執(zhí)行即可,解決了當(dāng)前嵌入式軟件測(cè)試的難題,使得測(cè)試人員從回歸測(cè)試的繁重工作中解脫出來(lái)。本發(fā)明將自動(dòng)化技術(shù)應(yīng)用于嵌入式軟件測(cè)試中,自動(dòng)生成測(cè)試數(shù)據(jù)和測(cè)試腳本,自動(dòng)收集和監(jiān)控測(cè)試過(guò)程數(shù)據(jù),并自動(dòng)記錄測(cè)試結(jié)果數(shù)據(jù),實(shí)現(xiàn)了一個(gè)具備過(guò)程管理、信息發(fā)布、缺陷跟蹤等功能的高效的一體化測(cè)試,減輕了手工測(cè)試的工作量,使得測(cè)試人員可以將精力集中到測(cè)試設(shè)計(jì)上,節(jié)約了資源(包括人力、物力等),保證了軟件質(zhì)量,縮短了測(cè)試周期。
[0013]設(shè)計(jì)與執(zhí)行不再分離。本發(fā)明將測(cè)試用例的設(shè)計(jì)與測(cè)試執(zhí)行結(jié)合起來(lái),設(shè)計(jì)與執(zhí)行不再分離,自動(dòng)化測(cè)試系統(tǒng)根據(jù)界面設(shè)計(jì)的用例自動(dòng)生成測(cè)試腳本,可消除手寫(xiě)腳本的錯(cuò)誤,保持代碼質(zhì)量的一致性,通過(guò)一鍵點(diǎn)擊重生成代碼,更加可信與高效。
[0014]簡(jiǎn)化了測(cè)試人員的工作。本發(fā)明集成業(yè)界主流的測(cè)試管理,執(zhí)行及分析軟件,對(duì)測(cè)試過(guò)程中的各個(gè)方面加以管理,通過(guò)技術(shù)手段將他們整合起來(lái)。調(diào)用平臺(tái)各個(gè)集成組成部分的外部接口,自動(dòng)驅(qū)動(dòng)各個(gè)組成,共同來(lái)完成自動(dòng)測(cè)試需求以及通過(guò)代理端轉(zhuǎn)發(fā)軟件交互模塊之間的通信報(bào)文給總控端進(jìn)行統(tǒng)一處理,不需要測(cè)試人員在不同的主機(jī)上進(jìn)行測(cè)試操作,簡(jiǎn)化了測(cè)試人員的工作,減少了人力物力和時(shí)間的投入。
[0015]提高了測(cè)試質(zhì)量。本發(fā)明將測(cè)試設(shè)計(jì)分為三步,不但支持獨(dú)立測(cè)試用例的設(shè)計(jì),還支持關(guān)聯(lián)測(cè)試用例的設(shè)計(jì),如利用場(chǎng)景分析技術(shù),通過(guò)流程圖的方式復(fù)用獨(dú)立測(cè)試用例,設(shè)計(jì)場(chǎng)景測(cè)試用例,使得設(shè)計(jì)的用例更加全面、充分。在回歸測(cè)試中,如果ICD的數(shù)據(jù)元素發(fā)生了變化,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)標(biāo)識(shí)出受影響的測(cè)試用例,提示測(cè)試人員對(duì)用例進(jìn)行修改后再執(zhí)行回歸測(cè)試,即對(duì)ICD數(shù)據(jù)的變更進(jìn)行了自動(dòng)化的影響域分析,保證了回歸測(cè)試的質(zhì)量。本發(fā)明支持文檔自動(dòng)生成,包括接口文檔、測(cè)試計(jì)劃、測(cè)試說(shuō)明、測(cè)試記錄和缺陷報(bào)告單,并提供測(cè)試報(bào)告所需的統(tǒng)計(jì)數(shù)據(jù)。測(cè)試過(guò)程中,測(cè)試意圖和測(cè)試數(shù)據(jù)由測(cè)試人員設(shè)計(jì),測(cè)試用例的步驟由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成,測(cè)試記錄由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)記錄,最終的文檔由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成,這樣的設(shè)計(jì)減少了測(cè)試文檔編輯的工作量,降低了測(cè)試工作的復(fù)雜性,解放了測(cè)試人員,節(jié)約了大量的人力。與以往的測(cè)試過(guò)程相比較,整個(gè)測(cè)試過(guò)程得到了有效的管理,分析測(cè)試結(jié)果方便、快捷,查找問(wèn)題高效。并且,測(cè)試的每一個(gè)環(huán)節(jié)都具有可追溯性,在這些過(guò)程中,不易出現(xiàn)人為的一些失誤,提高了測(cè)試質(zhì)量。知識(shí)庫(kù)的建立可以將測(cè)試的成果積累起來(lái),以持續(xù)改進(jìn),提高軟件測(cè)試質(zhì)量。
[0016]本發(fā)明采用集成化技術(shù),通過(guò)大量的功能模塊程序,將單個(gè)獨(dú)立的三方軟件結(jié)合起來(lái),形成了一條無(wú)縫的測(cè)試流水線,通過(guò)測(cè)試腳本自動(dòng)生成測(cè)試程序、自動(dòng)測(cè)試、自動(dòng)生成測(cè)試文檔;突出特點(diǎn):自動(dòng)生成測(cè)試腳本,極大地提高了測(cè)試的效率。將單個(gè)功能點(diǎn)模塊化組件化,使測(cè)試過(guò)程設(shè)計(jì)更加簡(jiǎn)便快捷,提高了平臺(tái)的重用性和復(fù)用性。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0017]圖1是本發(fā)明自動(dòng)化測(cè)試嵌入式軟件的流程示意圖。
[0018]圖2是圖1的接口設(shè)計(jì)示意圖。
[0019]圖3是圖1的測(cè)試策劃創(chuàng)建測(cè)試交聯(lián)環(huán)境的原理示意圖。
[0020]圖4是圖1的測(cè)試設(shè)計(jì)技術(shù)方案示意圖。
[0021 ] 圖5是圖1的測(cè)試執(zhí)行流程示意圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,同時(shí)也為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)、深入的描述。應(yīng)當(dāng)理解,此處所描述的實(shí)施僅用作說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0023]本發(fā)明的核心思想是:運(yùn)用軟件工程化的思想將接口設(shè)計(jì)、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果記錄、缺陷管理和回歸測(cè)試集成到一個(gè)統(tǒng)一平臺(tái)進(jìn)行管理,提高軟件測(cè)試的效率和質(zhì)量。
[0024]參閱圖1。在以下描述的實(shí)施例中,自動(dòng)化測(cè)試嵌入式軟件的方法實(shí)施例包括: 步驟101、接口設(shè)計(jì),開(kāi)發(fā)人員使用接口設(shè)計(jì)模塊進(jìn)行ICD設(shè)計(jì),基于模塊化和復(fù)用方面的考慮,接口設(shè)計(jì)的元素分為數(shù)據(jù)元、數(shù)據(jù)塊、數(shù)據(jù)組、邏輯塊和接口消息模塊幾部分,數(shù)據(jù)元為最小的數(shù)據(jù)單元,數(shù)據(jù)塊由多個(gè)數(shù)據(jù)元組成,代表一個(gè)有意義的字段,數(shù)據(jù)組由多個(gè)數(shù)據(jù)塊或數(shù)據(jù)元組成,代表一個(gè)更大的含義,一條接口消息模塊就是一條完整的ICD,由多個(gè)數(shù)據(jù)組、數(shù)據(jù)塊或數(shù)據(jù)元組成;邏輯塊用來(lái)進(jìn)行特殊邏輯設(shè)計(jì),限定不同元素之間的特殊關(guān)系,如變長(zhǎng)設(shè)計(jì)、有效性設(shè)計(jì)等;根據(jù)項(xiàng)目不同,數(shù)據(jù)元和數(shù)據(jù)塊之間的級(jí)數(shù)可以配置,以方便開(kāi)發(fā)人員根據(jù)項(xiàng)目情況進(jìn)行擴(kuò)展設(shè)計(jì)。設(shè)計(jì)好的ICD存儲(chǔ)在數(shù)據(jù)庫(kù)里,后臺(tái)生成標(biāo)準(zhǔn)的XML格式文件,以供測(cè)試數(shù)據(jù)自動(dòng)生成、測(cè)試數(shù)據(jù)解析和接口文檔自動(dòng)生成使用。自動(dòng)化測(cè)試系統(tǒng)支持多個(gè)開(kāi)發(fā)人員同時(shí)進(jìn)行接口設(shè)計(jì)工作,也支持從三方的接口設(shè)計(jì)軟件導(dǎo)入已經(jīng)設(shè)計(jì)好的I⑶數(shù)據(jù)。
[0025]在圖2中,具體的接口設(shè)計(jì)包括數(shù)據(jù)元I和數(shù)據(jù)元2相連組成數(shù)據(jù)塊1,數(shù)據(jù)元2和數(shù)據(jù)元3相連組成數(shù)據(jù)塊2,數(shù)據(jù)塊I和數(shù)據(jù)塊2并聯(lián)數(shù)據(jù)元3組成數(shù)據(jù)組1,數(shù)據(jù)元4和數(shù)據(jù)元5相連組成數(shù)據(jù)塊3,數(shù)據(jù)塊3中包含一個(gè)邏輯塊1,邏輯塊I限定數(shù)據(jù)塊中的邏輯關(guān)系為變長(zhǎng),即數(shù)據(jù)塊中數(shù)據(jù)元5重復(fù)的個(gè)數(shù)由數(shù)據(jù)元4的內(nèi)容決定,若數(shù)據(jù)元4里的內(nèi)容為3,則數(shù)據(jù)塊3中包含I個(gè)數(shù)據(jù)元4和3個(gè)數(shù)據(jù)元5。接口消息模塊I由數(shù)據(jù)組I并聯(lián)數(shù)據(jù)塊3和數(shù)據(jù)元6組成。接口消息模塊I則是一條完整的I⑶。
[0026]在接口設(shè)計(jì)時(shí),使用界面式設(shè)計(jì),數(shù)據(jù)元設(shè)計(jì)好后,在新建數(shù)據(jù)塊時(shí),可以直接將需要的數(shù)據(jù)元拖拽到數(shù)據(jù)塊界面;數(shù)據(jù)塊設(shè)計(jì)好后,在新建數(shù)據(jù)組的界面可以看到所有的數(shù)據(jù)塊和數(shù)據(jù)元,只需將需要的數(shù)據(jù)元素拖拽過(guò)來(lái)即可,以此類(lèi)推。根據(jù)項(xiàng)目不同,數(shù)據(jù)元和數(shù)據(jù)塊之間的級(jí)數(shù)可以配置,以方便開(kāi)發(fā)人員進(jìn)行設(shè)計(jì)。每條ICD都要包括數(shù)據(jù)的源ID和目的ID。設(shè)計(jì)好的ICD存儲(chǔ)在數(shù)據(jù)庫(kù)里,后臺(tái)生成標(biāo)準(zhǔn)的XML格式文件,以供測(cè)試解析、測(cè)試數(shù)據(jù)自動(dòng)生成和測(cè)試用例設(shè)計(jì)使用。設(shè)計(jì)好的ICD可以通過(guò)自動(dòng)化測(cè)試系統(tǒng)導(dǎo)出,自動(dòng)生成標(biāo)準(zhǔn)格式的接口文檔。對(duì)于文檔導(dǎo)出功能的實(shí)現(xiàn),同現(xiàn)有系統(tǒng)方法,故在此不再贅述。
[0027]接口設(shè)計(jì)模塊分為服務(wù)器和客戶端兩部分,多個(gè)客戶端分布在不同的電腦上,與服務(wù)器通過(guò)以太網(wǎng)連接,支持多個(gè)開(kāi)發(fā)人員同時(shí)進(jìn)行接口設(shè)計(jì)工作,提高工作效率。
[0028]步驟102、測(cè)試策劃,測(cè)試人員根據(jù)開(kāi)發(fā)設(shè)計(jì)的ICD、軟件研制任務(wù)書(shū)、軟件需求規(guī)格說(shuō)明書(shū)、用戶手冊(cè)等相關(guān)資料,進(jìn)行測(cè)試策劃。測(cè)試策劃包括建立測(cè)試交聯(lián)環(huán)境圖,制定測(cè)試類(lèi)型,設(shè)計(jì)測(cè)試項(xiàng)或測(cè)試子項(xiàng),測(cè)試用例名稱(chēng)以及測(cè)試用例描述。測(cè)試子項(xiàng)的描述為其包含的多個(gè)測(cè)試用例的描述合并在一起,每個(gè)測(cè)試用例就是一個(gè)測(cè)試點(diǎn)。自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試計(jì)劃中測(cè)試需求分析的內(nèi)容。
[0029]參閱圖3。在本發(fā)明中,測(cè)試人員的主要工作集中在測(cè)試策劃和測(cè)試設(shè)計(jì)上。在測(cè)試策劃中,首先建立測(cè)試交聯(lián)環(huán)境圖,設(shè)置被測(cè)軟件模塊之間的接口類(lèi)型,并為每一個(gè)軟件模塊設(shè)置一個(gè)與ICD對(duì)應(yīng)的ID號(hào)。如圖3所示,被測(cè)軟件模塊為B,與之交聯(lián)的配測(cè)軟件模塊有兩個(gè),分別是配測(cè)軟件模塊A和配測(cè)軟件模塊C。配測(cè)軟件模塊A、被測(cè)軟件模塊B之間的接口類(lèi)型為以太網(wǎng),被測(cè)軟件模塊B、配測(cè)軟件模塊C之間的接口類(lèi)型為串口。
[0030]建立環(huán)境圖后,測(cè)試人員根據(jù)需求規(guī)格說(shuō)明等被測(cè)軟件的依據(jù)文檔,進(jìn)行功能分解和測(cè)試分析,提取測(cè)試需求,設(shè)計(jì)測(cè)試項(xiàng)和測(cè)試子項(xiàng)。測(cè)試類(lèi)型包括功能測(cè)試、性能測(cè)試、接口測(cè)試、強(qiáng)度測(cè)試等,測(cè)試類(lèi)型下面是不同的測(cè)試項(xiàng),測(cè)試項(xiàng)下面是各測(cè)試子項(xiàng),一個(gè)測(cè)試子項(xiàng)包含多個(gè)測(cè)試用例,上述內(nèi)容在界面用樹(shù)狀形式表示。測(cè)試項(xiàng)和測(cè)試子項(xiàng)之間的級(jí)數(shù)是可配置的,測(cè)試人員根據(jù)被測(cè)項(xiàng)目情況可自由設(shè)計(jì)。測(cè)試用例在測(cè)試策劃時(shí)要填寫(xiě)測(cè)試用例名稱(chēng)和測(cè)試意圖,即測(cè)試用例描述。如此,測(cè)試子項(xiàng)的測(cè)試描述就為其下多個(gè)測(cè)試用例的描述合在一起,每個(gè)測(cè)試用例就是一個(gè)測(cè)試點(diǎn)。在編制測(cè)試計(jì)劃時(shí),測(cè)試分析的內(nèi)容就可以從自動(dòng)化測(cè)試系統(tǒng)中直接導(dǎo)出。具體導(dǎo)出方法同現(xiàn)有系統(tǒng)方法,故在此不再贅述。
[0031]步驟103、測(cè)試設(shè)計(jì),測(cè)試人員對(duì)測(cè)試策劃中的測(cè)試用例進(jìn)行具體的測(cè)試輸入輸出的設(shè)計(jì)。對(duì)于嵌入式軟件來(lái)說(shuō),大部分的測(cè)試輸入和輸出都是一系列的測(cè)試數(shù)據(jù)。因此測(cè)試設(shè)計(jì)的主要內(nèi)容就是給每個(gè)用例設(shè)計(jì)不同的輸入輸出數(shù)據(jù)。在本發(fā)明中,進(jìn)行用例設(shè)計(jì)之前,需先設(shè)置用例的屬性,用例屬性包括獨(dú)立用例和關(guān)聯(lián)用例。新建的測(cè)試用例默認(rèn)為獨(dú)立用例,如果設(shè)計(jì)的測(cè)試用例是進(jìn)行場(chǎng)景或業(yè)務(wù)流測(cè)試,則需將其屬性設(shè)置為關(guān)聯(lián)用例。
[0032]測(cè)試設(shè)計(jì)分為三步,第一步為測(cè)試數(shù)據(jù)自動(dòng)生成,自動(dòng)化測(cè)試系統(tǒng)根據(jù)ICD中的數(shù)據(jù)元素,如枚舉值、范圍值、分段枚舉等,結(jié)合特殊的邏輯關(guān)系自動(dòng)生成測(cè)試數(shù)據(jù),測(cè)試數(shù)據(jù)生成策略包括等價(jià)類(lèi)劃分法、邊界值分析法、正交法等,生成的測(cè)試數(shù)據(jù)包括枚舉值的所有值,范圍值的上下邊界值、中間值和邊界外的異常值,以及所有的特殊關(guān)系,對(duì)于沒(méi)有特殊關(guān)系的多個(gè)數(shù)據(jù)元素可使用正交法生成測(cè)試數(shù)據(jù)。
[0033]第二步為獨(dú)立測(cè)試用例設(shè)計(jì),測(cè)試人員將本用例涉及到的ICD拖入到測(cè)試設(shè)計(jì)界面,界面根據(jù)ICD的源和目的ID,建立本用例的交聯(lián)運(yùn)行圖,雙擊圖上的連線即可設(shè)計(jì)測(cè)試數(shù)據(jù),也可以選取自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成的測(cè)試數(shù)據(jù),同時(shí)可以設(shè)置每條測(cè)試數(shù)據(jù)的屬性和延時(shí),數(shù)據(jù)屬性包括事件觸發(fā)、周期觸發(fā)、消息觸發(fā)、數(shù)據(jù)監(jiān)聽(tīng)等,數(shù)據(jù)屬性可以添加和配置。自動(dòng)生成的測(cè)試數(shù)據(jù)主要針對(duì)枚舉值、邊界范圍值等,其他異常值或故障注入的數(shù)據(jù)需要測(cè)試人員單獨(dú)進(jìn)行設(shè)計(jì)。測(cè)試數(shù)據(jù)設(shè)計(jì)時(shí),雙擊連線后界面顯示ICD里所有的數(shù)據(jù)元素,并含有默認(rèn)值或上一次設(shè)計(jì)的元素值,測(cè)試人員只需根據(jù)本用例的設(shè)計(jì)意圖修改對(duì)應(yīng)的數(shù)據(jù)元素即可,直觀方便。
[0034]第三步為關(guān)聯(lián)測(cè)試用例設(shè)計(jì),測(cè)試人員可以使用場(chǎng)景分析法,基于場(chǎng)景或業(yè)務(wù)流,將不同的測(cè)試用例通過(guò)流程圖的方式聯(lián)系在一起,設(shè)計(jì)場(chǎng)景或業(yè)務(wù)流測(cè)試用例,也可以對(duì)不同的狀態(tài)轉(zhuǎn)換進(jìn)行測(cè)試。獨(dú)立測(cè)試用例主要針對(duì)單個(gè)的功能點(diǎn)進(jìn)行測(cè)試,關(guān)聯(lián)測(cè)試用例將不同功能點(diǎn)的用例連在一起,可以模仿用戶在實(shí)際使用過(guò)程中的場(chǎng)景,進(jìn)行場(chǎng)景或業(yè)務(wù)流的測(cè)試。在關(guān)聯(lián)測(cè)試用例設(shè)計(jì)界面上,可以看到所有的獨(dú)立測(cè)試用例,測(cè)試人員設(shè)計(jì)好流程框圖后,將需要的獨(dú)立測(cè)試用例拖入到對(duì)應(yīng)的框圖中即可,直觀方便。
[0035]參閱圖4。在具體的測(cè)試設(shè)計(jì)中,根據(jù)接口消息模塊I生成了測(cè)試數(shù)據(jù)1,接口消息模塊2生成了測(cè)試數(shù)據(jù)2和測(cè)試數(shù)據(jù)4,接口消息模塊3生成了測(cè)試數(shù)據(jù)3,接口消息模塊4生成了測(cè)試數(shù)據(jù)5。測(cè)試數(shù)據(jù)1、測(cè)試數(shù)據(jù)2對(duì)應(yīng)測(cè)試用例1,測(cè)試用例I為參數(shù)控制測(cè)試,模擬配測(cè)軟件模塊A發(fā)送測(cè)試數(shù)據(jù)I給被測(cè)軟件模塊B,被測(cè)軟件模塊B收到測(cè)試數(shù)據(jù)I后反饋測(cè)試數(shù)據(jù)2給配測(cè)軟件模塊A。測(cè)試數(shù)據(jù)3、測(cè)試數(shù)據(jù)4和測(cè)試數(shù)據(jù)5對(duì)應(yīng)測(cè)試用例2。測(cè)試用例2為數(shù)據(jù)發(fā)送測(cè)試,模擬配測(cè)軟件模塊A發(fā)送測(cè)試數(shù)據(jù)3給被測(cè)軟件模塊B,被測(cè)軟件模塊B反饋測(cè)試數(shù)據(jù)4給配測(cè)軟件模塊A,同時(shí)將測(cè)試數(shù)據(jù)5發(fā)送給配測(cè)軟件模塊C。測(cè)試用例I和測(cè)試用例2為獨(dú)立測(cè)試數(shù)據(jù)。測(cè)試用例I和測(cè)試用例2對(duì)應(yīng)關(guān)聯(lián)測(cè)試數(shù)據(jù)的場(chǎng)景用例I。場(chǎng)景用例I為發(fā)送參數(shù)控制后,進(jìn)行數(shù)據(jù)內(nèi)容發(fā)送,即測(cè)試用例I執(zhí)行后接著執(zhí)行測(cè)試用例2。
[0036]在界面設(shè)計(jì)好測(cè)試數(shù)據(jù)及屬性后,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成測(cè)試腳本和測(cè)試步驟,步驟的描述圍繞數(shù)據(jù)的發(fā)送、接收展開(kāi),以數(shù)據(jù)為中心,格式統(tǒng)一。測(cè)試設(shè)計(jì)支持多個(gè)測(cè)試人員同時(shí)開(kāi)展工作,測(cè)試設(shè)計(jì)的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)里,自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成不同形式的測(cè)試說(shuō)明文檔,具體方法同現(xiàn)有系統(tǒng)方法,故在此不再贅述。
[0037]步驟104、測(cè)試執(zhí)行,測(cè)試執(zhí)行分為三步,第一步為數(shù)據(jù)分發(fā),測(cè)試人員設(shè)置執(zhí)行某個(gè)測(cè)試用例后,由接口路由總控端根據(jù)設(shè)計(jì)的交聯(lián)環(huán)境圖和測(cè)試用例,包括測(cè)試用例涉及到的模塊和接口總線類(lèi)型,初始化涉及到的代理端,同時(shí)將輸入的激勵(lì)/輸入測(cè)試數(shù)據(jù)分發(fā)給對(duì)應(yīng)的代理端;第二步為代理端驅(qū)動(dòng)接口通信模塊,代理端根據(jù)交聯(lián)環(huán)境圖,將從總控端收到的輸入測(cè)試數(shù)據(jù)發(fā)給數(shù)據(jù)接口驅(qū)動(dòng)模塊,由接口驅(qū)動(dòng)模塊將輸入測(cè)試數(shù)據(jù)發(fā)送給被測(cè)軟件;第三步為代理端監(jiān)控被測(cè)軟件的響應(yīng),并將響應(yīng)的報(bào)文,即輸出的測(cè)試數(shù)據(jù)回傳給總控端。如果與被測(cè)軟件交聯(lián)的模塊數(shù)有多個(gè),則代理端也需要多個(gè)。測(cè)試執(zhí)行支持單個(gè)測(cè)試用例的執(zhí)行和多個(gè)測(cè)試用例的順序執(zhí)行。
[0038]一個(gè)總控端可以控制多個(gè)代理端,代理端的個(gè)數(shù)與交聯(lián)環(huán)境圖中交互的模塊數(shù)有關(guān),一個(gè)代理端監(jiān)控一個(gè)點(diǎn)對(duì)點(diǎn)的數(shù)據(jù)傳輸,如圖3中與被測(cè)軟件交聯(lián)的模塊為2,則代理端就需要2個(gè),分別監(jiān)控模塊A、B,以及模塊B、C之間的數(shù)據(jù)交互。
[0039]參閱圖5。在具體的測(cè)試執(zhí)行中,設(shè)定配測(cè)軟件模塊A、被測(cè)軟件模塊B之間是代理端1,被測(cè)軟件模塊B、配測(cè)軟件模塊C之間是代理端2。在執(zhí)行測(cè)試用例2時(shí),總控端將測(cè)試數(shù)據(jù)3發(fā)送給代理端1,再由代理端I將輸入數(shù)據(jù)發(fā)送給數(shù)據(jù)接口驅(qū)動(dòng)模塊1,通過(guò)數(shù)據(jù)接口驅(qū)動(dòng)模塊I將輸入數(shù)據(jù)發(fā)送給被測(cè)軟件模塊B,而后數(shù)據(jù)接口驅(qū)動(dòng)模塊I接收到被測(cè)軟件模塊B返回的測(cè)試數(shù)據(jù)4,數(shù)據(jù)接口驅(qū)動(dòng)模塊2接收到被測(cè)軟件模塊B發(fā)送給配測(cè)軟件模塊C的測(cè)試數(shù)據(jù)5,即代理端I和代理端2分別接收到測(cè)試數(shù)據(jù)4和測(cè)試數(shù)據(jù)5,再由2個(gè)代理端上報(bào)給總控端,進(jìn)行測(cè)試結(jié)果判斷。
[0040]測(cè)試用例的執(zhí)行支持單個(gè)測(cè)試用例的執(zhí)行和多個(gè)測(cè)試用例的順序執(zhí)行。對(duì)于較為耗時(shí)的測(cè)試用例執(zhí)行工作,可以設(shè)置在下班時(shí)間自動(dòng)運(yùn)行,由測(cè)試人員上班后再進(jìn)行測(cè)試結(jié)果的確認(rèn),進(jìn)而節(jié)約時(shí)間,提高工作效率。測(cè)試管理環(huán)境管理被測(cè)對(duì)象,測(cè)試驅(qū)動(dòng),測(cè)試用例,測(cè)試集,測(cè)試記錄及測(cè)試缺陷跟蹤。用戶可以在環(huán)境中規(guī)劃測(cè)試用例和由其組成的測(cè)試集,然后,通過(guò)腳本自動(dòng)的執(zhí)行測(cè)試用例或測(cè)試集。腳本自動(dòng)按規(guī)劃選擇測(cè)試對(duì)象,生成測(cè)試驅(qū)動(dòng),并且自動(dòng)執(zhí)行測(cè)試,最后將測(cè)試記錄存儲(chǔ)到數(shù)據(jù)庫(kù)中。具體的技術(shù)方法是腳本調(diào)用平臺(tái)各個(gè)集成組成部分的外部接口,自動(dòng)地驅(qū)動(dòng)各個(gè)組成來(lái)完成相應(yīng)的工作。測(cè)試腳本可以是類(lèi)C或Python腳本編寫(xiě)的。在測(cè)試集執(zhí)行時(shí),包含在其中的測(cè)試用例腳本被調(diào)度執(zhí)行。
步驟105、測(cè)試結(jié)果記錄,總控端收到代理端傳回的數(shù)據(jù)后,進(jìn)行顯示,并根據(jù)ICD進(jìn)行自動(dòng)解析,同時(shí)與測(cè)試用例中預(yù)期的測(cè)試數(shù)據(jù)報(bào)文進(jìn)行比較,如果相同則顯示用例步驟通過(guò)Pass,如果不相同則顯示該步驟失敗Fail。任意步驟Fail則判該用例Fail。自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試記錄。
[0041]測(cè)試結(jié)果界面顯示所有的交互數(shù)據(jù),雙擊選中的數(shù)據(jù)后,可以看到數(shù)據(jù)的解析,直觀地讓測(cè)試人員了解測(cè)試的執(zhí)行情況,同時(shí)支持對(duì)顯示的數(shù)據(jù)進(jìn)行過(guò)濾,以便于觀察。對(duì)于所有的測(cè)試結(jié)果數(shù)據(jù),自動(dòng)化測(cè)試系統(tǒng)自動(dòng)記錄到數(shù)據(jù)庫(kù)里,一是測(cè)試確認(rèn)用,另一方面就是生成測(cè)試記錄所需的數(shù)據(jù)。自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成不同形式的測(cè)試記錄文檔,具體生成方法同現(xiàn)有系統(tǒng)方法,故在此不再贅述。
[0042]步驟106、缺陷管理與回歸測(cè)試,測(cè)試人員對(duì)測(cè)試結(jié)果要進(jìn)行確認(rèn),特別是批量執(zhí)行的測(cè)試用例,對(duì)每個(gè)Fail的測(cè)試用例,需要對(duì)Fail的步驟進(jìn)行確認(rèn),以便排除非被測(cè)軟件的故障。確認(rèn)是被測(cè)軟件缺陷的,在對(duì)應(yīng)的測(cè)試用例后提交缺陷跟蹤單。提交缺陷跟蹤單后,軟件項(xiàng)目經(jīng)理查看到缺陷信息,進(jìn)行缺陷分配,對(duì)應(yīng)的開(kāi)發(fā)人員可以參考關(guān)聯(lián)的測(cè)試用例進(jìn)行問(wèn)題復(fù)現(xiàn),并修改缺陷,修改后的缺陷狀態(tài)標(biāo)識(shí)為已修改,測(cè)試人員對(duì)已修改的缺陷進(jìn)行回歸驗(yàn)證。缺陷管理模塊支持與三方的工具如BugFree或Bugzilla等集成。
[0043]在回歸測(cè)試中,如果ICD沒(méi)有變更,回歸時(shí)可以復(fù)用前期設(shè)計(jì)的測(cè)試用例,并自動(dòng)進(jìn)行回歸測(cè)試執(zhí)行;如果ICD的數(shù)據(jù)元素發(fā)生了變化,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)標(biāo)識(shí)出受影響的測(cè)試用例,提示測(cè)試人員對(duì)用例進(jìn)行修改后再執(zhí)行回歸測(cè)試。測(cè)試用例在不同測(cè)試階段所做的修改,自動(dòng)化測(cè)試系統(tǒng)會(huì)將其標(biāo)識(shí)為不同的版本存入數(shù)據(jù)庫(kù),以追溯數(shù)據(jù)修改過(guò)程和版本管理?;貧w測(cè)試通過(guò)后關(guān)閉已修改的缺陷。對(duì)于回歸中仍未修改到位的缺陷,rebound給開(kāi)發(fā),開(kāi)發(fā)進(jìn)行再次修改,后測(cè)試人員再次進(jìn)行回歸。整個(gè)項(xiàng)目回歸完成后,缺陷標(biāo)識(shí)的狀態(tài)有三類(lèi):已修改、撤回和遺留,撤回和遺留的問(wèn)題是需要軟件項(xiàng)目經(jīng)理確認(rèn)的。自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板導(dǎo)出缺陷報(bào)告單,以放到測(cè)試報(bào)告里。具體的缺陷管理流程同現(xiàn)有流程,文檔生成方法同現(xiàn)有系統(tǒng)方法,故在此不再贅述。
[0044]步驟107、知識(shí)庫(kù)建立,測(cè)試結(jié)束后對(duì)測(cè)試過(guò)程進(jìn)行總結(jié),將設(shè)計(jì)精巧的測(cè)試用例納入典型測(cè)試用例庫(kù)里,將發(fā)現(xiàn)的有價(jià)值的缺陷納入典型缺陷庫(kù)里。納入的方式可以是選中用例或缺陷后,右鍵點(diǎn)擊標(biāo)識(shí)為典型,這樣在知識(shí)庫(kù)里就能看到所有的典型用例和典型缺陷,如此對(duì)測(cè)試成果進(jìn)行沉淀和積累,以便于后期在做類(lèi)似項(xiàng)目的測(cè)試工作時(shí),進(jìn)行借鑒,以持續(xù)提聞。
[0045]如此,整個(gè)軟件測(cè)試過(guò)程都包含在本發(fā)明里,軟件測(cè)試人員的主要工作集中在測(cè)試策劃和測(cè)試設(shè)計(jì)上,測(cè)試用例設(shè)計(jì)好后,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)進(jìn)行測(cè)試執(zhí)行和測(cè)試結(jié)果記錄,并可以根據(jù)模板導(dǎo)出相應(yīng)的測(cè)試文檔,提高測(cè)試工作的效率和質(zhì)量。
[0046]以上實(shí)施方式僅用于說(shuō)明本發(fā)明,而并非對(duì)本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和原則下,所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種自動(dòng)化測(cè)試嵌入式軟件的方法,具有如下技術(shù)特征:運(yùn)用軟件工程化將接口設(shè)計(jì)、測(cè)試策劃、測(cè)試設(shè)計(jì)、測(cè)試執(zhí)行、測(cè)試結(jié)果記錄、缺陷管理和回歸測(cè)試集成到一個(gè)統(tǒng)一平臺(tái)進(jìn)行管理,具體包括以下步驟: 步驟1,接口設(shè)計(jì),把接口設(shè)計(jì)的元素分為數(shù)據(jù)元、數(shù)據(jù)塊、數(shù)據(jù)組、邏輯塊、接口消息模塊,根據(jù)項(xiàng)目不同,配置數(shù)據(jù)元和數(shù)據(jù)塊之間的級(jí)數(shù),將設(shè)計(jì)好的接口控制文件ICD存儲(chǔ)在數(shù)據(jù)庫(kù)里,后臺(tái)生成標(biāo)準(zhǔn)的XML格式文件,以供測(cè)試數(shù)據(jù)自動(dòng)生成、測(cè)試數(shù)據(jù)解析和接口文檔自動(dòng)生成使用; 步驟2,測(cè)試策劃,建立測(cè)試交聯(lián)環(huán)境圖,制定測(cè)試類(lèi)型,設(shè)計(jì)測(cè)試項(xiàng)或測(cè)試子項(xiàng),測(cè)試用例名稱(chēng)以及測(cè)試用例描述,每個(gè)測(cè)試用例為一個(gè)測(cè)試點(diǎn),并設(shè)定自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試計(jì)劃,即測(cè)試需求分析的內(nèi)容; 步驟3,測(cè)試設(shè)計(jì),測(cè)試設(shè)計(jì)分為三步,第一步根據(jù)ICD元素,結(jié)合邏輯關(guān)系自動(dòng)生成測(cè)試數(shù)據(jù);第二步設(shè)計(jì)獨(dú)立測(cè)試用例,將本用例涉及到的ICD拖入到設(shè)計(jì)界面建立本用例的交聯(lián)框圖,并為每條ICD選取/設(shè)計(jì)對(duì)應(yīng)的測(cè)試數(shù)據(jù)和數(shù)據(jù)屬性;第三步設(shè)計(jì)關(guān)聯(lián)測(cè)試用例,基于場(chǎng)景/業(yè)務(wù)流,模仿用戶在實(shí)際使用過(guò)程中的操作,將不同的測(cè)試用例通過(guò)流程圖的方式聯(lián)系在一起,設(shè)計(jì)場(chǎng)景或業(yè)務(wù)流測(cè)試用例,或?qū)Σ煌臓顟B(tài)轉(zhuǎn)換進(jìn)行測(cè)試;在界面設(shè)計(jì)好測(cè)試數(shù)據(jù)及屬性后,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成測(cè)試腳本和測(cè)試步驟,步驟的描述圍繞數(shù)據(jù)的發(fā)送、接收展開(kāi),以數(shù)據(jù)為中心,格式統(tǒng)一,測(cè)試設(shè)計(jì)的數(shù)據(jù)存入到數(shù)據(jù)庫(kù)里,同時(shí)支持根據(jù)不同格式的模板生成測(cè)試說(shuō)明,測(cè)試用例的描述在測(cè)試策劃時(shí)由測(cè)試人員設(shè)計(jì),測(cè)試步驟由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)生成; 步驟4,測(cè)試執(zhí)行,測(cè)試執(zhí)行結(jié)合測(cè)試環(huán)境圖、測(cè)試用例、接口路由,共同組成測(cè)試平臺(tái),測(cè)試執(zhí)行分為三步,第一步為數(shù)據(jù)分發(fā),由接口路由總控端根據(jù)界面設(shè)計(jì)的測(cè)試交聯(lián)環(huán)境圖和測(cè)試用例,將測(cè)試激勵(lì)/輸入數(shù)據(jù)分發(fā)給對(duì)應(yīng)的代理端;第二步為代理端驅(qū)動(dòng)接口通信模塊,將對(duì)應(yīng)的測(cè)試數(shù)據(jù)發(fā)送給被測(cè)軟件;第三步為代理端監(jiān)控被測(cè)軟件的響應(yīng),將與被測(cè)軟件交互的模塊之間的通信報(bào)文轉(zhuǎn)發(fā)給總控端進(jìn)行統(tǒng)一處理; 步驟5,測(cè)試結(jié)果顯示,總控端收到代理端傳回的數(shù)據(jù)后,進(jìn)行顯示并解析,同時(shí)與測(cè)試用例的預(yù)期結(jié)果報(bào)文進(jìn)行比較,如果相同則判用例通過(guò),顯示用例執(zhí)行成功Pass,如果不相同則判該用例不通過(guò),顯示用例執(zhí)行失敗Fail,測(cè)試結(jié)果由自動(dòng)化測(cè)試系統(tǒng)自動(dòng)記錄,自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成測(cè)試記錄。
2.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:在缺陷管理中,對(duì)于執(zhí)行失敗Fail的測(cè)試用例,確認(rèn)是被測(cè)軟件缺陷的,在對(duì)應(yīng)的測(cè)試用例后提交缺陷跟蹤單,開(kāi)發(fā)人員進(jìn)行缺陷修復(fù)后進(jìn)行回歸測(cè)試,關(guān)閉已修改的缺陷;自動(dòng)化測(cè)試系統(tǒng)支持根據(jù)不同格式的模板生成缺陷報(bào)告單。
3.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:在回歸測(cè)試中,如果ICD沒(méi)有變更,回歸時(shí)復(fù)用前期設(shè)計(jì)的測(cè)試用例,并自動(dòng)進(jìn)行回歸測(cè)試執(zhí)行;如果ICD的數(shù)據(jù)元素發(fā)生了變化,自動(dòng)化測(cè)試系統(tǒng)自動(dòng)標(biāo)識(shí)出受影響的測(cè)試用例,提示對(duì)用例進(jìn)行修改后再執(zhí)行回歸測(cè)試;測(cè)試用例在不同測(cè)試階段所做的修改,自動(dòng)化測(cè)試系統(tǒng)會(huì)將其標(biāo)識(shí)為不同的版本存入數(shù)據(jù)庫(kù),以追溯數(shù)據(jù)修改過(guò)程和版本管理。
4.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:接口設(shè)計(jì)的元素分為數(shù)據(jù)元、數(shù)據(jù)塊、數(shù)據(jù)組、邏輯塊和接口消息模塊,其中,數(shù)據(jù)元為最小的數(shù)據(jù)單元,數(shù)據(jù)塊由多個(gè)數(shù)據(jù)元組成,代表一個(gè)有意義的字段,數(shù)據(jù)組由多個(gè)數(shù)據(jù)塊或數(shù)據(jù)元組成,代表一個(gè)更大的含義,接口消息模塊由多個(gè)數(shù)據(jù)組、數(shù)據(jù)塊或數(shù)據(jù)元組成,是一條完整的I⑶。
5.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:測(cè)試策劃包括建立測(cè)試交聯(lián)環(huán)境圖,制定測(cè)試類(lèi)型,設(shè)計(jì)測(cè)試項(xiàng)或測(cè)試子項(xiàng),測(cè)試用例名稱(chēng)以及測(cè)試用例描述;測(cè)試子項(xiàng)的描述包含多個(gè)測(cè)試用例的描述合并在一起,每個(gè)測(cè)試用例就是一個(gè)測(cè)試點(diǎn)。
6.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:在測(cè)試策劃中,首先建立測(cè)試交聯(lián)環(huán)境圖,設(shè)置被測(cè)軟件模塊之間的接口類(lèi)型,并為每一個(gè)軟件模塊設(shè)置一個(gè)與ICD對(duì)應(yīng)的ID號(hào)。
7.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:新建的測(cè)試用例默認(rèn)為獨(dú)立用例,如果設(shè)計(jì)的測(cè)試用例是進(jìn)行場(chǎng)景或業(yè)務(wù)流測(cè)試,則將其屬性設(shè)置為關(guān)聯(lián)用例。
8.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:自動(dòng)化測(cè)試系統(tǒng)根據(jù)ICD中的數(shù)據(jù)元素和邏輯關(guān)系自動(dòng)生成測(cè)試數(shù)據(jù),測(cè)試數(shù)據(jù)生成策略:等價(jià)類(lèi)劃分法、邊界值分析法、正交法,生成的測(cè)試數(shù)據(jù)包括枚舉值的所有值,范圍值的上下邊界值、中間值和邊界外的異常值,以及所有的特殊關(guān)系,對(duì)于沒(méi)有特殊關(guān)系的多個(gè)數(shù)據(jù)元素使用正交法生成測(cè)試數(shù)據(jù)。
9.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:在具體的測(cè)試設(shè)計(jì)中,根據(jù)接口消息模塊1生成測(cè)試數(shù)據(jù)1,接口消息模塊2生成測(cè)試數(shù)據(jù)2和測(cè)試數(shù)據(jù)4,接口消息模塊3生成測(cè)試數(shù)據(jù)3,接口消息模塊4生成測(cè)試數(shù)據(jù)5 ;測(cè)試用例1為參數(shù)控制測(cè)試,配測(cè)軟件模塊A發(fā)送測(cè)試數(shù)據(jù)1給被測(cè)軟件模塊B,被測(cè)軟件模塊B收到測(cè)試數(shù)據(jù)1后反饋測(cè)試數(shù)據(jù)2給配測(cè)軟件模塊A ;測(cè)試用例2為數(shù)據(jù)發(fā)送測(cè)試,配測(cè)軟件模塊A發(fā)送測(cè)試數(shù)據(jù)3給被測(cè)軟件模塊B,被測(cè)軟件模塊B反饋測(cè)試數(shù)據(jù)4給模塊A,同時(shí)將測(cè)試數(shù)據(jù)5發(fā)送給配測(cè)軟件模塊C。
10.如權(quán)利要求1所述的自動(dòng)化測(cè)試嵌入式軟件的方法,其特征在于:在具體的測(cè)試執(zhí)行中,設(shè)定配測(cè)軟件模塊A、被測(cè)軟件模塊B之間是代理端1,被測(cè)軟件模塊B、配測(cè)軟件模塊C之間是代理端2,在執(zhí)行測(cè)試用例2時(shí),總控端將測(cè)試數(shù)據(jù)3發(fā)送給代理端1,再由代理端1將輸入數(shù)據(jù)發(fā)送給數(shù)據(jù)接口驅(qū)動(dòng)模塊1,通過(guò)數(shù)據(jù)接口驅(qū)動(dòng)模塊1將輸入數(shù)據(jù)發(fā)送給被測(cè)軟件模塊B,而后數(shù)據(jù)接口驅(qū)動(dòng)模塊1接收到被測(cè)軟件模塊B返回的測(cè)試數(shù)據(jù)4,數(shù)據(jù)接口驅(qū)動(dòng)模塊2接收到被測(cè)軟件模塊B發(fā)送給配測(cè)軟件模塊C的測(cè)試數(shù)據(jù)5,即代理端1和代理端2分別接收到測(cè)試數(shù)據(jù)4和測(cè)試數(shù)據(jù)5,再由2個(gè)代理端上報(bào)給總控端,進(jìn)行測(cè)試結(jié)果判斷。
【文檔編號(hào)】G06F11/36GK104407971SQ201410655457
【公開(kāi)日】2015年3月11日 申請(qǐng)日期:2014年11月18日 優(yōu)先權(quán)日:2014年11月18日
【發(fā)明者】陽(yáng)長(zhǎng)永, 孫肖, 孫云, 楊靜 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第十研究所