文/劉睿 張彤 丁慧
信息安全保密產(chǎn)品是組成信息安全工程中的核心,其主要任務(wù)是確保信息快速傳遞與處理,并確保數(shù)據(jù)的安全和保密,對用戶的數(shù)據(jù)和網(wǎng)絡(luò)完全與運(yùn)行提供保障。為保證信息系統(tǒng)安全,需用自主研制的安全保密產(chǎn)品,而自主研制的安全產(chǎn)品的好壞主要取決于開發(fā)活動如何開展。測試是其生命周期中一個(gè)非常關(guān)鍵的環(huán)節(jié),關(guān)乎軟件的安全和質(zhì)量,是不可缺少的一部分,其是確認(rèn)整個(gè)提供的功能是否正確,以及功能是否實(shí)現(xiàn),對軟件各個(gè)部分進(jìn)行檢驗(yàn),保證軟件的質(zhì)量與運(yùn)行。
軟件測試的流程主要有需求解析、測試安排、測試用例計(jì)劃、測試境況建設(shè)、測試運(yùn)行、測試匯報(bào)總結(jié)、缺陷改良、軟件評價(jià)、測試總結(jié)。軟件測試基本流程圖如圖1所示。
測試用例是軟件測試的核心,是測試執(zhí)行的最基礎(chǔ)的憑據(jù)。測試用例設(shè)計(jì)指的是軟件測試全部的行為過程,屬于合理性的組織歸納。軟件測試具有計(jì)劃性、流程性以及組織性,對軟件測試用例進(jìn)行設(shè)計(jì),目的是使軟件測試的行為可以改變成可管理的形式。在軟件質(zhì)量管理當(dāng)中,軟件測試是十分實(shí)際的行為,但是用時(shí)較多??紤]用時(shí)的因素,軟件測試活動需要進(jìn)行量化加強(qiáng),進(jìn)一步實(shí)現(xiàn)管理層對測試流程的掌握,測試用例實(shí)際上也是測試活動中比較量化的方式之一。
軟件測試是無法實(shí)現(xiàn)窮舉測試,在較大數(shù)據(jù)量中選取可以用于測試的數(shù)據(jù),并且數(shù)據(jù)需要具有特殊性、代表性,這樣的測試可以節(jié)省大量的測試成本。軟件測試中,測試用例的主要作用有四點(diǎn),首先,對測試用例進(jìn)行計(jì)劃,并實(shí)施測試,可以避免測試的盲目性,提高工作效率;其次,使用測試用例,可以突出軟件測試的重點(diǎn),明確軟件測試的目的;然后,更新軟件版本之后,僅需要對保存測試用例進(jìn)行測試即可,可以緩解工作強(qiáng)度,減少項(xiàng)目的時(shí)間;最后,復(fù)用化、通用化的功能板塊,有助于軟件開發(fā),測試用例也可以促進(jìn)軟件測試的進(jìn)行,并在測試用例的細(xì)化過程中提高測試效率。
基于軟件需求設(shè)計(jì)測試用例時(shí),需要軟件測試用例覆蓋全部測試需求。軟件測試用例與軟件需求非一一對應(yīng)的關(guān)系,一個(gè)軟件需求可以對應(yīng)一條測試用例,也可對應(yīng)多條測試用例,反之,一條測試用例可以關(guān)聯(lián)一個(gè)測試需求,也可關(guān)聯(lián)多個(gè)測試需求,具體關(guān)系如圖2所示。
如圖2可以看出,測試用例與測試需求之間密切聯(lián)系,通過軟件需求可以確定測試用例。因此,為了覆蓋全部的軟件需求,引入測試用例,將軟件需求以規(guī)格化的方式表示出來,以便測試當(dāng)中,根據(jù)測試用例的要求,驗(yàn)證各個(gè)測試需求。
軟件測試用例的計(jì)劃,大部分是根據(jù)測試人員的專業(yè)技術(shù)與經(jīng)驗(yàn),由于測試用例的編寫人員不一,在編寫格式中也存在差異,造成測試存在盲目性;且測試用例占整個(gè)測試成本的50%,若在每次需求評審后,根據(jù)實(shí)際場景重新設(shè)計(jì)測試用例,缺少全局性的考量,尤其針對具有大量相同或相似的場景的產(chǎn)品,嚴(yán)重加大了開發(fā)成本,也無法保證測試用例的質(zhì)量。針對以上問題,引入復(fù)用軟件測試用例技術(shù),建立復(fù)用測試用例流程,在實(shí)際測試中該技術(shù)提高測試效率,保證測試質(zhì)量。
軟件測試過程中有很多可復(fù)用的資源,這些資源如果得到很好的管理,在同產(chǎn)品或近似的跨平臺項(xiàng)目進(jìn)行測試時(shí),均可重復(fù)利用。常用的測試資源主要包括測試的計(jì)劃、測試的工具、測試的說明、測試的數(shù)據(jù)、測試的成果以及測試用例等。復(fù)用資源可應(yīng)用在同一測試產(chǎn)品的不同測試階段、不同項(xiàng)目或回歸測試中,但測試資源具有不完整性,需要通過一定的測試經(jīng)驗(yàn)進(jìn)行補(bǔ)充。測試資源還存在抽樣程度的差異,抽樣程度偏低,則容易形成規(guī)范性的說明,而抽象程度偏高,則僅能利用文字進(jìn)行表述。
圖2:需求與用例的關(guān)系圖
可復(fù)用測試用例主要特征有通用性、獨(dú)立性、粗粒度、易維護(hù)性,詳細(xì)說明見表1。
測試用例是軟件測試的執(zhí)行基礎(chǔ),是軟件測試的核心。測試用例庫的功能完善,是為了加強(qiáng)測試用例的種類劃分與歸檔,有助于統(tǒng)一管理、儲存、修護(hù)測試用例的實(shí)現(xiàn)。測試用例庫的建立,不僅僅可以實(shí)現(xiàn)測試用例管理的工作量的減輕,而且可提高測試效率,通過簡單的檢索條件查找到所需的測試用例,縮短測試用例的設(shè)計(jì)周期。測試用例庫當(dāng)中,主要存在測試用例序列號、測試作用、測試流程、前提要求、用例分類、預(yù)期成果、實(shí)際結(jié)果、測試結(jié)論等要素。表2為基于航盾測試產(chǎn)品的測試用例庫表模板。測試用例庫應(yīng)具有文檔編制說明,對用例庫的歷史變更進(jìn)行記錄,每次修改后應(yīng)獎(jiǎng)文檔版的本號進(jìn)行記錄,方便追蹤與查閱,累積下來的數(shù)據(jù),可以在后續(xù)測試相關(guān)工作中,提供數(shù)據(jù)依據(jù)與幫助,實(shí)現(xiàn)測試用例庫的文檔管理。
表1:可復(fù)用測試用例特征
表2:為基于航盾測試產(chǎn)品的測試用例庫表模板
圖3:生成復(fù)用測試用例基本框架
軟件系統(tǒng)存在多樣化的操作方式,而測試用例進(jìn)行復(fù)用時(shí)也存在風(fēng)險(xiǎn)。關(guān)于這一問題,采用復(fù)用測試用例相關(guān)過程模型,如圖3所示,生成復(fù)用測試用例流程中的主要步驟,分別為測試層次劃分、公共需求、測試用例設(shè)計(jì)、測試用例評審以及和生成測試用例庫五個(gè)步驟。根據(jù)待測系統(tǒng)的需求,從用戶層、應(yīng)用層、功能層進(jìn)行測試層次劃分;通過已經(jīng)劃分完的結(jié)果,對系統(tǒng)需求規(guī)格進(jìn)行分析,并分析出公共需求,尋找復(fù)用的時(shí)機(jī);通過公共需求的分析結(jié)果進(jìn)行測試用例的分類與設(shè)計(jì),并在其中引入可復(fù)用測試用例;建立專家組,評審測試用例,保障測試用例能夠完整的籠罩公共需求,;最后,測試用例信息歸納記錄到測試用例庫當(dāng)中。
圖4:復(fù)用測試用例流程
復(fù)用測試用例過程,主要有用例的確定、用例的選取、用例的改善以及服用用例。如圖4。為驗(yàn)證該流程的應(yīng)用性,基于航盾信息安全系列產(chǎn)品的涉密載體全生命周期管理信息系統(tǒng)進(jìn)行測試,該系統(tǒng)包括按用戶層、應(yīng)用層、功能層劃分為安全管理員、審計(jì)管理員、系統(tǒng)管理員、控制臺、客戶端、打印、刻錄、錄入、復(fù)印、磁介質(zhì)管理、存儲介質(zhì)管理、載體歸屬轉(zhuǎn)換、文件/光盤閉環(huán)和載體借用管理14個(gè)模塊,建立用例庫,共計(jì)用例574條;新項(xiàng)目提交測試申請包含19個(gè)測試需求,根據(jù)復(fù)用測試用例的過程模型確定用例,從測試用例庫中選取136條作為復(fù)用用例,修改為當(dāng)前項(xiàng)目所需用例后,執(zhí)行復(fù)用用例。論證復(fù)用測試用例流程的有效性,且測試周期由之前1個(gè)月減少到10天,大大減少了測試周期,提高測試效率。
測試用例復(fù)用是提高軟件測試效率和改善軟件質(zhì)量的一項(xiàng)重要技術(shù)。本文針對軟件復(fù)用測試用例技術(shù)進(jìn)行分析,并逐一分析軟件測試、測試用例以及復(fù)用測試用例,設(shè)計(jì)復(fù)用測試用例流程,并基于航盾信息安全產(chǎn)品進(jìn)行了測試驗(yàn)證其有效性,且縮短了軟件測試周期,降低了測試成本,保證了軟件的質(zhì)量要求?;趶?fù)用測試用例是新的研究實(shí)踐領(lǐng)域,在實(shí)際測試中,測試用例庫的數(shù)據(jù)需要一定的數(shù)量,才能供給有效復(fù)用,這需要對復(fù)用測試用例庫的長期維護(hù)與修訂,需要測試人員具有較強(qiáng)的專業(yè)技能和實(shí)踐經(jīng)驗(yàn),同時(shí)其查找可復(fù)用的測試用例具有一定的困難,因此復(fù)用測試用例庫的維護(hù)與查找元素的定義均可作為為未來課題的研究方向。