林 琳
(北京控制工程研究所,北京100190)
由于衛(wèi)星等航天工程不僅涉及大量的投入,而且擔(dān)負(fù)著重要的使命,因此運(yùn)行其上的星載嵌入式軟件必須具備非常高的可靠性和安全性。在這種情況下,星載嵌入式軟件的質(zhì)量直接決定了整個(gè)衛(wèi)星型號(hào)產(chǎn)品的質(zhì)量,它已成為航天系統(tǒng)質(zhì)量的重要構(gòu)成因素[1]。
嵌入式系統(tǒng)的發(fā)展趨勢(shì)是:硬件逐漸向通用性平臺(tái)過(guò)度,依靠軟件來(lái)完成系統(tǒng)的各種任務(wù)。軟件已成為系統(tǒng)成敗的關(guān)鍵性因素[2]。為了保證系統(tǒng)的穩(wěn)定性,避免由于其可能出現(xiàn)的失效而導(dǎo)致災(zāi)難性的后果,要求對(duì)嵌入式系統(tǒng),包括嵌入式軟件進(jìn)行嚴(yán)格的測(cè)試、確認(rèn)和驗(yàn)證[3]。實(shí)時(shí)嵌入式軟件在時(shí)間和空間上的約束比較嚴(yán)格,被測(cè)軟件一般具有實(shí)時(shí)性、并發(fā)性等特點(diǎn)[4],測(cè)試此類軟件是計(jì)算機(jī)軟件測(cè)試中比較困難的問(wèn)題。
軟件測(cè)試是軟件開(kāi)發(fā)流程中的重要環(huán)節(jié)。而測(cè)試用例是軟件測(cè)試的核心,其組織性、功能覆蓋性、重復(fù)性的特點(diǎn)能夠保證測(cè)試功能不被遺漏。由于測(cè)試用例往往涉及多重選擇、循環(huán)嵌套,不同的路徑數(shù)目可能非常大,所以必須精心設(shè)計(jì)使之能達(dá)到最佳的測(cè)試效果。設(shè)計(jì)測(cè)試用例需要測(cè)試人員花費(fèi)大量精力去熟悉需求,并在需求變化時(shí)更新用例,占了測(cè)試周期很大一部分時(shí)間。本文希望能夠總結(jié)以往的經(jīng)驗(yàn),提出一個(gè)行之有效的測(cè)試用例設(shè)計(jì)流程以及一些基于黑盒測(cè)試的用例設(shè)計(jì)方法,以提高測(cè)試效率,從而降低軟件缺陷遺漏率。
航天型號(hào)軟件特別是嵌入式控制軟件目前一般采用瀑布式或增量開(kāi)發(fā)生存周期模型。該模型包括的測(cè)試活動(dòng)有:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試[5]。其中確認(rèn)測(cè)試作為軟件開(kāi)發(fā)方的測(cè)試,是由相對(duì)獨(dú)立于設(shè)計(jì)編碼組的軟件測(cè)試組進(jìn)行的,是軟件交付系統(tǒng)的重要保證。
確認(rèn)測(cè)試屬于動(dòng)態(tài)測(cè)試范疇。確認(rèn)測(cè)試內(nèi)容包括:在模擬環(huán)境(開(kāi)發(fā)環(huán)境)下,運(yùn)用黑盒測(cè)試方法,驗(yàn)證所測(cè)軟件是否滿足需求規(guī)格說(shuō)明列出的功能和非功能需求[6];保證軟件配置所有成分齊全,各方面質(zhì)量都符合要求,具有維護(hù)階段所必須的細(xì)節(jié)。通過(guò)準(zhǔn)則為滿足軟件需求規(guī)格說(shuō)明中規(guī)定的所有功能、性能等要求。
目前,我們的確認(rèn)測(cè)試是在一套自主研發(fā)的星地聯(lián)試設(shè)備(實(shí)時(shí)半實(shí)物的仿真環(huán)境)上進(jìn)行的,其核心任務(wù)分為需求分析、用例設(shè)計(jì)和用例執(zhí)行。軟件測(cè)試的效率和效果主要取決于用例設(shè)計(jì)[7],有效的測(cè)試用例可以定位以往未發(fā)現(xiàn)的軟件錯(cuò)誤,從而提高測(cè)試質(zhì)量。
本文主要探討確認(rèn)測(cè)試中的用例設(shè)計(jì)。
以航天嵌入式軟件中的星載控制軟件為例,它的主要功能是實(shí)現(xiàn)對(duì)衛(wèi)星的姿態(tài)和軌道控制、故障診斷,以及與其他分系統(tǒng)的通訊等,數(shù)據(jù)流/控制流復(fù)雜。對(duì)于太陽(yáng)同步中低軌道小衛(wèi)星來(lái)說(shuō),由于可測(cè)控弧段限制,對(duì)星載控制軟件的自主性要求很高。為了確保衛(wèi)星的安全可靠,必須在測(cè)試中盡量覆蓋可能出現(xiàn)的所有情況,而不僅是做到功能點(diǎn)的覆蓋。眾所周知,由于軟件需求更改頻繁、軟件邏輯路徑的組合性、輸入數(shù)據(jù)的大量性及結(jié)果多樣性等因素,哪怕是一個(gè)極簡(jiǎn)單的程序,要想窮盡所有邏輯路徑、所有輸入數(shù)據(jù)和驗(yàn)證所有結(jié)果都是非常困難的。因此,進(jìn)行合適的測(cè)試用例選取是做好測(cè)試工作的關(guān)鍵。
測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求[8]。其具體內(nèi)容詳見(jiàn)參考文獻(xiàn)[9]。
確認(rèn)測(cè)試用例的設(shè)計(jì)是基于需求的,主要依據(jù)軟件需求規(guī)格說(shuō)明,并參考用戶需求、任務(wù)書、接口協(xié)議等文檔。用例設(shè)計(jì)的前提是進(jìn)行詳細(xì)的測(cè)試需求分析,吃透功能點(diǎn),才能保證測(cè)試用例的覆蓋性和正確性。測(cè)試用例的設(shè)計(jì)是測(cè)試需求細(xì)化的過(guò)程。具體的測(cè)試用例設(shè)計(jì)流程如圖1所示。
圖1 測(cè)試用例設(shè)計(jì)流程
首先,在輸入文件到位后,開(kāi)始進(jìn)行測(cè)試需求分析。初步了解軟件任務(wù)書、用戶需求及相關(guān)文件,對(duì)軟件功能進(jìn)行合理劃分,列出被測(cè)軟件的主要功能大項(xiàng),如初始化、模式切換功能、姿態(tài)控制率計(jì)算等。其次,對(duì)功能大項(xiàng)進(jìn)行逐步細(xì)化和分解,直到每個(gè)被測(cè)試的功能點(diǎn)可以詳細(xì)定義和組合。最大限度地增加發(fā)現(xiàn)更深層次問(wèn)題的可能。進(jìn)而,根據(jù)細(xì)化后的測(cè)試項(xiàng)采用各種方法進(jìn)行用例設(shè)計(jì)。然后建立詳細(xì)的跟蹤矩陣,以便對(duì)測(cè)試覆蓋性進(jìn)行檢查,有效避免測(cè)試中的功能點(diǎn)遺漏。
按照這一思路可以進(jìn)行測(cè)試復(fù)用。在測(cè)試實(shí)施過(guò)程中,直接復(fù)用成熟的測(cè)試用例所付出的代價(jià)要遠(yuǎn)遠(yuǎn)小于重新開(kāi)發(fā)測(cè)試用例[10]。對(duì)于不同平臺(tái)的星載軟件,可從功能點(diǎn)級(jí)別進(jìn)行提取,找出相同或相近的功能點(diǎn);對(duì)于同平臺(tái)不同衛(wèi)星的星載軟件,可復(fù)用到測(cè)試項(xiàng)或測(cè)試用例;對(duì)于繼承型號(hào)的星載軟件,可直接復(fù)用具體的測(cè)試用例。如果將大量的測(cè)試用例存入測(cè)試用例庫(kù)中,經(jīng)過(guò)合理的分類,供測(cè)試人員選擇使用,將極大地提高軟件問(wèn)題的發(fā)現(xiàn)率[11]。該思路可以為開(kāi)展測(cè)試用例復(fù)用工作,搭建通用測(cè)試用例庫(kù)提供用例分類依據(jù)。
測(cè)試用例體現(xiàn)了完整的測(cè)試過(guò)程,因此測(cè)試用例的設(shè)計(jì)方法依據(jù)測(cè)試類型分類。確認(rèn)測(cè)試是以黑盒測(cè)試為主的測(cè)試類型,因此在測(cè)試用例設(shè)計(jì)時(shí),必須選擇適合的用例設(shè)計(jì)方法,才能保證在有限時(shí)間內(nèi),盡量多發(fā)現(xiàn)軟件問(wèn)題,提高軟件質(zhì)量。
設(shè)計(jì)確認(rèn)測(cè)試的測(cè)試用例主要按照黑盒方法,具體方法見(jiàn)參考文獻(xiàn) [8]。但是,把這些方法統(tǒng)稱為測(cè)試用例設(shè)計(jì)方法是不準(zhǔn)確的,這些方法只是用例設(shè)計(jì)中如何確定測(cè)試輸入數(shù)據(jù)的方法,不能包含用例設(shè)計(jì)的全部?jī)?nèi)容。測(cè)試用例設(shè)計(jì)不僅是確定輸入數(shù)據(jù)的過(guò)程,還包括如何根據(jù)測(cè)試需求、設(shè)計(jì)規(guī)格說(shuō)明等文檔確定測(cè)試用例的設(shè)計(jì)策略、設(shè)計(jì)用例的表示方法和組織管理形式等[12]。特別是對(duì)于航天嵌入式的星載軟件來(lái)說(shuō),由于實(shí)現(xiàn)的控制邏輯非常復(fù)雜,僅考慮輸入數(shù)據(jù)的設(shè)計(jì)是不夠的,還必須針對(duì)實(shí)際飛行任務(wù)中可能發(fā)生的各種情況以及輸入文件的具體要求設(shè)計(jì)不同的測(cè)試用例。只有全面考慮各個(gè)邏輯分支,才能保證測(cè)試覆蓋性。
確認(rèn)測(cè)試中的用例設(shè)計(jì)主要是設(shè)計(jì)測(cè)試輸入數(shù)據(jù)和測(cè)試邏輯。
2.2.1 測(cè)試輸入數(shù)據(jù)設(shè)計(jì)
關(guān)于測(cè)試輸入數(shù)據(jù)的設(shè)計(jì)方法,本文中就不逐一列舉了。在實(shí)際測(cè)試中,要從大量的輸入數(shù)據(jù)中精心挑選出少數(shù)有代表性的測(cè)試數(shù)據(jù),使得采用這些測(cè)試數(shù)據(jù)能達(dá)到最佳的測(cè)試效果,并高效地把隱藏的故障揭露出來(lái)是軟件測(cè)試的核心和關(guān)鍵。不同測(cè)試數(shù)據(jù)對(duì)發(fā)現(xiàn)軟件缺陷的能力差別很大[13],常需綜合使用各種方法以有效提高測(cè)試效率和測(cè)試覆蓋率。
首先使用邊界值分析方法,此類測(cè)試用例往往更易發(fā)現(xiàn)程序錯(cuò)誤。其次,進(jìn)行等價(jià)類劃分,針對(duì)輸入和輸出條件給出正常等價(jià)類和異常等價(jià)類,從而大大降低用例個(gè)數(shù)。第三,如果程序的功能說(shuō)明中含有輸入條件的組合情況,可選用因果圖法。第四,采取功能圖法,通過(guò)不同狀態(tài)下條件的有效性設(shè)計(jì)不同的測(cè)試數(shù)據(jù)。另外,根據(jù)以往的經(jīng)驗(yàn),可針對(duì)容易出現(xiàn)的錯(cuò)誤追加一些測(cè)試用例(即錯(cuò)誤推測(cè)法)。在功能性測(cè)試用例設(shè)計(jì)中,我們常需要把80%的精力投入到那些邊界情況和失效數(shù)據(jù)作為輸入的測(cè)試情況[14]。
2.2.2 測(cè)試邏輯設(shè)計(jì)
在確定了測(cè)試輸入數(shù)據(jù)的基礎(chǔ)上,需要進(jìn)一步進(jìn)行測(cè)試邏輯設(shè)計(jì)。本文中測(cè)試邏輯是指在設(shè)計(jì)測(cè)試用例中的執(zhí)行步驟時(shí),應(yīng)考慮的邏輯關(guān)系。通常,我們可以根據(jù)功能點(diǎn)的復(fù)雜程度按功能和路徑分析混合模式設(shè)置用例。
在確認(rèn)測(cè)試中,對(duì)簡(jiǎn)單的功能點(diǎn)來(lái)說(shuō),按功能測(cè)試最簡(jiǎn)捷,即按需求規(guī)格說(shuō)明定義的功能點(diǎn)遍歷測(cè)試每一個(gè)功能點(diǎn)。對(duì)于復(fù)雜的程序模塊,其數(shù)個(gè)功能的作用是相互影響、緊密相關(guān)、環(huán)環(huán)相扣的,可以演變出數(shù)量繁多的變化。沒(méi)有嚴(yán)密的邏輯分析,產(chǎn)生遺漏是在所難免。路徑分析是一個(gè)很好的方法,其最大的優(yōu)點(diǎn)在于可以避免漏測(cè)試。這里的路徑分析法與白盒測(cè)試中的路徑測(cè)試不同,它側(cè)重于功能點(diǎn)的路徑,而不關(guān)注程序的具體實(shí)現(xiàn),路徑數(shù)據(jù)相對(duì)較少。如模式控制功能,對(duì)于中低軌道小衛(wèi)星來(lái)說(shuō),控制的自主性很強(qiáng),一個(gè)工作模式包含多種定姿和控制率算法,以及選用不同敏感器和執(zhí)行機(jī)構(gòu)的組合情況,在設(shè)計(jì)這類功能點(diǎn)的用例時(shí),測(cè)試邏輯就是至關(guān)重要的了。
所以,我們?cè)谠O(shè)計(jì)用例時(shí)應(yīng)更多關(guān)注測(cè)試邏輯設(shè)計(jì)。首先,可以按照時(shí)間順序如星上時(shí)或者事件驅(qū)動(dòng)順序來(lái)設(shè)計(jì)測(cè)試步驟,在模飛(模擬實(shí)際飛行程序)測(cè)試中通常采用這種方法;其次,根據(jù)用戶需求中相應(yīng)模塊的邏輯分支來(lái)進(jìn)行測(cè)試邏輯設(shè)計(jì),通過(guò)路徑分析的方法盡量覆蓋所有分支;一般,主分支(即正常情況下運(yùn)行的分支)被測(cè)試的概率很大,錯(cuò)誤更有可能存在于那些程序運(yùn)行時(shí)很少進(jìn)入的異常分支。另外,還要考慮時(shí)序因素,數(shù)據(jù)的時(shí)間安排以及處理數(shù)據(jù)的任務(wù)并發(fā)性。例如執(zhí)行某功能時(shí)被其他事件打斷的情況,以及不同功能之間的相互影響等。
2.2.3 用例設(shè)計(jì)思路
下面作者結(jié)合工作中的經(jīng)驗(yàn),闡述一些在實(shí)際型號(hào)工作中的用例設(shè)計(jì)思路以及用例設(shè)計(jì)中的注意事項(xiàng)。進(jìn)行確認(rèn)測(cè)試用例設(shè)計(jì)時(shí),首先應(yīng)該有一個(gè)總體的設(shè)計(jì)思路作為指導(dǎo)思想,然后逐層細(xì)化。主要應(yīng)遵循的原則總結(jié)如下:
(1)自頂向下
測(cè)試用例要覆蓋需求規(guī)格說(shuō)明中提出的所有功能點(diǎn),包括功能需求、性能需求、接口需求等。同時(shí)考慮充分性,然后按照2.1節(jié)中的用例設(shè)計(jì)流程展開(kāi)用例設(shè)計(jì)。
舉一個(gè)簡(jiǎn)單的例子說(shuō)明,如表1所示。通過(guò)測(cè)試需求分析得到 “重要數(shù)據(jù)保護(hù)”這個(gè)功能點(diǎn),對(duì)該功能點(diǎn)做進(jìn)一步分解,可細(xì)化為2個(gè)測(cè)試項(xiàng),每個(gè)測(cè)試項(xiàng)可以再分解出具體測(cè)試用例的設(shè)計(jì)要點(diǎn),最后根據(jù)用例設(shè)計(jì)要點(diǎn)設(shè)計(jì)出完整的測(cè)試用例。
表1 “重要數(shù)據(jù)保護(hù)”功能的測(cè)試用例設(shè)計(jì)過(guò)程
(2)各有側(cè)重
針對(duì)不同功能點(diǎn)和測(cè)試項(xiàng),在用例設(shè)計(jì)時(shí)應(yīng)有側(cè)重點(diǎn)。對(duì)于不同的控制模式關(guān)注點(diǎn)也不同:如消初偏模式,應(yīng)關(guān)注消除初始大角速度的能力;而軌控模式則更多地關(guān)注噴氣時(shí)間的準(zhǔn)確度以及進(jìn)入或退出條件。作為嵌入式軟件,在測(cè)試時(shí)還應(yīng)關(guān)注與硬件接口的關(guān)系等。
(3)設(shè)計(jì)策略
考慮用例的執(zhí)行順序與測(cè)試時(shí)間的約束;在邏輯清晰的前提下,用盡量少的用例覆蓋測(cè)試需求(一個(gè)用例包括盡可能多的邏輯分支)。有些用例可同時(shí)執(zhí)行,例如部分模式切換的用例可以在模飛測(cè)試中進(jìn)行;另外,可以將需要在相同模式中執(zhí)行的用例統(tǒng)一測(cè)試,這樣能有效節(jié)約測(cè)試時(shí)間。從而在有限的時(shí)間內(nèi)進(jìn)行更多測(cè)試。
(4)關(guān)注細(xì)節(jié)
對(duì)于一個(gè)較復(fù)雜的大型軟件來(lái)說(shuō),測(cè)試用例的數(shù)量龐大,詳細(xì)的期望結(jié)果有助于測(cè)試執(zhí)行人員更快更準(zhǔn)確地完成測(cè)試工作。同時(shí),某些細(xì)小的地方很容易被遺漏,如剔野、限幅和計(jì)數(shù)器清零的位置等,都要在用例設(shè)計(jì)時(shí)特別關(guān)注。
(5)安全性可靠性正確性
航天軟件對(duì)安全可靠性要求很高,因此在驗(yàn)證軟件正確性的基礎(chǔ)上,必須包括可靠性測(cè)試和安全性測(cè)試??梢愿鶕?jù)相應(yīng)的測(cè)試需求設(shè)計(jì)用例,必要時(shí)借助相關(guān)測(cè)試工具。
(6)有全局觀
站在系統(tǒng)的角度思考問(wèn)題,更容易發(fā)現(xiàn)高層次錯(cuò)誤。要做好軟件測(cè)試,不能只是簡(jiǎn)單照搬需求,關(guān)鍵在于理解。對(duì)于星載控制軟件,涉及控制分系統(tǒng)各領(lǐng)域知識(shí),只有對(duì)這些知識(shí)都有相當(dāng)?shù)牧私?,才能設(shè)計(jì)出高效的用例。在確認(rèn)測(cè)試階段,常會(huì)有一些測(cè)試要以系統(tǒng)級(jí)行為為線索,從系統(tǒng)的使用方式來(lái)設(shè)計(jì)測(cè)試用例,強(qiáng)調(diào)對(duì)使用情況的覆蓋。
以中低軌道小衛(wèi)星的正常運(yùn)行模式為例。假設(shè)該衛(wèi)星安裝了慣性陀螺敏感器、紅外地球敏感器和數(shù)字太陽(yáng)敏感器,定姿方式有3種分別為陀螺+紅外(A)、紅外+數(shù)字太陽(yáng)(B)、陀螺+紅外+數(shù)字太陽(yáng)(C);控制方式為輪控(D)、噴氣控制(E)和磁控(F)。在設(shè)計(jì)模式控制功能的用例時(shí),首先按照輸入文件中正常運(yùn)行模式下定姿與控制的邏輯分支進(jìn)行路徑分析,分解出正常及異常分支如圖2所示,然后根據(jù)路徑分析結(jié)果得出用例的測(cè)試邏輯。在用例邏輯設(shè)計(jì)時(shí),執(zhí)行步驟應(yīng)遍歷路徑分析結(jié)果,以確保功能得到完整的覆蓋。
圖2 正常運(yùn)行模式定姿與控制邏輯
我們都知道,窮盡的測(cè)試是不可能的[15]。軟件測(cè)試永遠(yuǎn)不可能發(fā)現(xiàn)所有的錯(cuò)誤。測(cè)試人員的責(zé)任就在于盡量避免人為因素造成的測(cè)試遺漏(即本該在該項(xiàng)測(cè)試中發(fā)現(xiàn)而未被發(fā)現(xiàn)的軟件問(wèn)題)。只有清楚地認(rèn)識(shí)到測(cè)試遺漏發(fā)生的原因,才能提高軟件錯(cuò)誤發(fā)現(xiàn)率和測(cè)試可信度,最終確保軟件產(chǎn)品的質(zhì)量。
由于項(xiàng)目進(jìn)度等客觀條件限制,測(cè)試人員只能有重點(diǎn)地選取測(cè)試用例,不可能進(jìn)行面面俱到的測(cè)試,這就增加了錯(cuò)誤被遺漏的可能性。在實(shí)際測(cè)試工作中用例選取不當(dāng)?shù)慕逃?xùn)比比皆是。經(jīng)過(guò)對(duì)多個(gè)型號(hào)控制軟件的確認(rèn)測(cè)試以及測(cè)試問(wèn)題分析發(fā)現(xiàn),為了減少測(cè)試遺漏,需重點(diǎn)關(guān)注以下幾方面:
(1)測(cè)試中,不能抱有僥幸心理,沒(méi)有測(cè)到的分支往往是錯(cuò)誤高發(fā)的地方,測(cè)試力度決定軟件bug的發(fā)現(xiàn)數(shù)量;
(2)對(duì)于發(fā)生更改的軟件來(lái)說(shuō),錯(cuò)誤通常集中在程序修改之處(包括新增功能)或者說(shuō)是由更改引起的,所以在測(cè)試中要重點(diǎn)關(guān)注。回歸測(cè)試的影響域分析往往做得不夠,因此在測(cè)試時(shí)要多考慮相關(guān)功能(錯(cuò)誤原因可能是編碼錯(cuò)誤、修改考慮不全面或方案設(shè)計(jì)問(wèn)題);
(3)加強(qiáng)數(shù)據(jù)庫(kù)中試驗(yàn)數(shù)據(jù)的判讀:某些問(wèn)題不易在動(dòng)態(tài)測(cè)試時(shí)發(fā)現(xiàn),通過(guò)查看數(shù)據(jù)庫(kù),往往能暴露一些意想不到的問(wèn)題;
(4)測(cè)試中暴露出問(wèn)題的代碼往往隱藏著多個(gè)bug,經(jīng)常出錯(cuò)的模塊改錯(cuò)后還會(huì)經(jīng)常出錯(cuò);
(5)在軟件研制過(guò)程,特別是后續(xù)的版本升級(jí)中,不少軟件錯(cuò)誤其實(shí)是相關(guān)的,常由于當(dāng)時(shí)分析不到位或修改不徹底,導(dǎo)致將原本可解決的問(wèn)題或者新的問(wèn)題帶入下一版本;
世界上不存在沒(méi)有缺陷的軟件,對(duì)于軟件測(cè)試人員來(lái)說(shuō),發(fā)生測(cè)試遺漏是很難避免的,重要的是不斷提高發(fā)現(xiàn)問(wèn)題的能力,降低測(cè)試遺漏率。
本文對(duì)航天嵌入式軟件的測(cè)試用例設(shè)計(jì)進(jìn)行了探討,總結(jié)出了一套通用的用例設(shè)計(jì)流程和思路,有利于在軟件研制初期快速進(jìn)行測(cè)試項(xiàng)分解以及開(kāi)展用例設(shè)計(jì)。針對(duì)航天嵌入式軟件的用途和較難維護(hù)、邏輯時(shí)序復(fù)雜等特性,提出了測(cè)試輸入數(shù)據(jù)和測(cè)試邏輯結(jié)合的設(shè)計(jì)方法,能夠有效減輕用例設(shè)計(jì)工作量,提高測(cè)試效率,有效減少航天嵌入式軟件在測(cè)試過(guò)程中的錯(cuò)誤遺漏。用例設(shè)計(jì)是一個(gè)不斷改進(jìn)和日趨完善的過(guò)程,只有掌握了正確的測(cè)試用例設(shè)計(jì)流程并運(yùn)用適當(dāng)?shù)挠美O(shè)計(jì)方法,才能達(dá)到事半功倍的效果。
[1]CHEN Jiayu,XING Zhongbao.Research on on-board embedded software testing process model [J].Optics and Precision Engineering,2008,16(9):1654-1659(in Chinese).[陳佳豫,邢忠寶.星載嵌入式軟件測(cè)試過(guò)程模型的研究 [J].光學(xué)精密工程,2008,16(9):1654-1659.]
[2]DU Yan,LIU Congyue.Testing method for embedded realtime system software [J].Control & Automation,2006,(9-2):31-33(in Chinese).[杜延,劉從越.嵌入式實(shí)時(shí)系統(tǒng)軟件測(cè)試實(shí)踐 [J].微計(jì)算機(jī)信息,2006,(9-2):31-33.]
[3]ZOU Yuehe,LIN Maosen,TANG Fei.Discussion of embeded software system test [J].Electronic Product Reliability and Environmental Testing,2007,25(5):52-55(in Chinese).[鄒月和,林茂森,唐飛.嵌入式軟件系統(tǒng)測(cè)試綜述 [J].電子產(chǎn)品可靠性與環(huán)境試驗(yàn),2007,25(5):52-55.]
[4]YANG Guanghua,QI Xuan,SHI Nansheng.Design of embedded software test cases based on scenario pattern [J].Computer Engineering,2010,36(15):89-91(in Chinese). [楊廣華,齊璇,施寅生.基于場(chǎng)景模式的嵌入式軟件測(cè)試用例設(shè)計(jì)[J].計(jì)算機(jī)工程,2010,36(15):89-91.]
[5]Roger S Pressman.Software engineering-apractitioner's approach sixth edition [M ]. Beijing: China Machine Press,2009.
[6]Andreas Spillner,Tilo Linz,Hanz Schaefer.Software testing foundations:A study guide for the certified tester exam [M].2nd ed.Beijing:Posts & Telecom Press,2009.
[7]LU Xiaoli,GE Wei,CHEN Xinli,et al.Designing a test case library system of supporting sharing and reusing [J].Computer Science,2006,35(5):290-291(in Chinese). [路曉麗,葛瑋,陳新麗,等.支持共享和復(fù)用的測(cè)試用例庫(kù)系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)科學(xué),2006,35(5):290-291.]
[8]Glenford J Myers.The art of software testing [M].Beijing:China Machine Press,2006.
[9]SHANG Dongjuan,HAO Kegang.A study of test cases and reuse in software testing [J].Computer Technology and Development,2006,16(1):60-72(in Chinese).[尚冬娟,郝克剛.軟件測(cè)試中的測(cè)試用例及復(fù)用研究 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(1):60-72.]
[10]MENG Wei,LUO Shengxian.Study on feasibility of functional regression testing [J].Computer Engineering and Design,2009,30(1):125-128(in Chinese).[孟微,羅省賢.功能測(cè)試可回歸性研究 [J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(1):125-128.]
[11]LIU Jie.Software testing and reuse technology [J].Science& Technology Information,2007,4(4):209-210(in Chinese).[劉杰.軟件測(cè)試與測(cè)試中的復(fù)用技術(shù) [J].科技資訊,2007,4(4):209-210.]
[12]LIU Bai,TANG Longli,CHEN Dasheng.The method research of testcase design based on requirement [J].Electronics Quality,2007,28(10):61-63(in Chinese).[劉柏,唐龍利,陳大圣.基于需求的測(cè)試用例設(shè)計(jì)方法研究[J].電子質(zhì)量,2007,28(10):61-63.]
[13]CUI Yingxia,LI Longshu.Integrated black-box test base on input/output relationship [J].Computer Engineering and Design,2007,28(23):5581-5584(in Chinese).[崔應(yīng)霞,李龍澍.基于輸入輸出關(guān)系的綜合黑盒測(cè)試方法 [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(23):5581-5584.]
[14]ZHANG Yulin,XIE Kanglin.Test case design and reuse technology [J].Computer Applications and Software,2008,25(1):100-101(in Chinese).[張玉彬,謝康林.測(cè)試用例的設(shè)計(jì)和復(fù)用技術(shù) [J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(1):100-101.]
[15]Ron Patton.Software testing [M].Beijing:China Machine Press,2008.