彭致華 王霞
(浙江海洋大學(xué)信息工程學(xué)院 浙江省舟山市 316022)
德國(guó)數(shù)學(xué)家Wille[1]于1982年提出的形式概念分析,在數(shù)據(jù)分析、知識(shí)發(fā)現(xiàn)、規(guī)則提取及軟件工程等領(lǐng)域得到了廣泛的應(yīng)用。該理論是以形式背景的二元關(guān)系數(shù)據(jù)表為基礎(chǔ),從中探索得到各對(duì)象和屬性之間存在的相互關(guān)系,為數(shù)據(jù)分析提供了一種強(qiáng)有利的工具。形式概念分析,也稱作概念格,它的每個(gè)節(jié)點(diǎn)是一個(gè)形式概念,由外延和內(nèi)涵兩部分組成。概念格通過(guò)Hasse 圖生動(dòng)簡(jiǎn)潔地體現(xiàn)概念之間的泛化和例化關(guān)系[3]。
軟件測(cè)試與軟件開(kāi)發(fā)類似,也是一項(xiàng)比較高強(qiáng)度和難度的工作。測(cè)試人員需要在不同時(shí)間段對(duì)不同類型的軟件系統(tǒng)中不同階段作出測(cè)試,從而能夠?qū)φ湛蛻粜枨蟀l(fā)現(xiàn)其中存在的不足和問(wèn)題。有實(shí)驗(yàn)研究表明,軟件的規(guī)模越大,系統(tǒng)功能模塊越復(fù)雜,會(huì)導(dǎo)致測(cè)試難度的加大,甚至?xí)绊懙阶罱K測(cè)試質(zhì)量[4]。在現(xiàn)階段,軟件測(cè)試具備的自動(dòng)化條件還不夠完備,雖然目前已經(jīng)出現(xiàn)了一些軟件自動(dòng)化測(cè)試工具,但由于工具本身的可擴(kuò)展性差、價(jià)格昂貴、操作復(fù)雜等原因,并未能得到很好的應(yīng)用,軟件測(cè)試仍然需要大量的人工介入。在軟件測(cè)試相關(guān)領(lǐng)域中,國(guó)內(nèi)很多學(xué)者也在不斷探索各種有效的軟件質(zhì)量評(píng)價(jià)方法。廖錦舜[6]等人提出了一種基于模糊神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量評(píng)價(jià)方法,通過(guò)建立評(píng)價(jià)等級(jí)模糊集以及訓(xùn)練好的網(wǎng)絡(luò)對(duì)軟件質(zhì)量進(jìn)行評(píng)價(jià)。王欣[7]等人采用二元語(yǔ)義加權(quán)算子與三角模糊數(shù)的方法,通過(guò)加權(quán)集結(jié)最終得到軟件質(zhì)量的綜合評(píng)價(jià)值。岳川[8]等人構(gòu)造了一種基于群決策和投影測(cè)度的軟件質(zhì)量評(píng)價(jià)模型,該模型側(cè)重于研究軟件用戶的需求,從需求這一角度分析軟件質(zhì)量概況。禹建麗[9]等人發(fā)掘了一種基于猶豫模糊集的軟件質(zhì)量評(píng)價(jià)模型,通過(guò)將猶豫模糊集與直覺(jué)模糊集組合的綜合猶豫模糊評(píng)價(jià)矩陣,結(jié)合軟件各質(zhì)量屬性得分,從而得出一個(gè)軟件質(zhì)量排序信息。
形式概念分析方法已經(jīng)逐漸融入到軟件工程這一學(xué)科,對(duì)象和屬性之間所建立的二元關(guān)系經(jīng)常出現(xiàn)在軟件相關(guān)領(lǐng)域[5],對(duì)這種關(guān)系的處理方法也間接地推動(dòng)了形式概念分析在軟件測(cè)試等其它方面的應(yīng)用。蔣平團(tuán)隊(duì)[10]通過(guò)結(jié)合形式概念分析方法對(duì)需求分析、結(jié)構(gòu)設(shè)計(jì)以及系統(tǒng)設(shè)計(jì)階段做出了深入探討,發(fā)現(xiàn)了一群類所表現(xiàn)的共同或者重復(fù)的特征以及相關(guān)聯(lián)性,從而可以更加合理地安排軟件開(kāi)發(fā)工作。但是,目前形式概念分析在軟件測(cè)試階段的研究較少,本文旨在探究一種基于形式概念分析的新型軟件質(zhì)量綜合評(píng)價(jià)方法,通過(guò)構(gòu)造概念格,將不同軟件以及不同測(cè)試流程的結(jié)果信息綜合體現(xiàn),能夠幫助測(cè)試人員鑒別質(zhì)量較高以及質(zhì)量較低的軟件,從而得到一個(gè)軟件綜合評(píng)價(jià)體系。該方法相比較傳統(tǒng)人工結(jié)合測(cè)試文檔的軟件質(zhì)量評(píng)估在效率與準(zhǔn)確度上都將有很大的改進(jìn)。
定義1[1]稱T:=(G,M,I)為一個(gè)形式背景,其中,G 是一個(gè)對(duì)象集,M 是一個(gè)屬性集,I 是G 和M 之間的一個(gè)關(guān)系。分別稱G 和M 的元素為對(duì)象和屬性。
若對(duì)象g 和屬性m 具有關(guān)系I,則記為 或gIm。
定義2[1]設(shè)T=(G,M,I)為形式背景,若二元組(X,B)滿足X'=B,B'=X,則稱(X,B)為形式概念,其中:
設(shè)T=(G,M,I)是形式背景,對(duì)任意的形式概念(X1,B1),(X2,B2)定義如下偏序關(guān)系:
記L(G,M,I)或L(T)為T=(G,M,I)中所有形式概念構(gòu)成的集合,則L(T)是格,稱其為T 的概念格。在概念格L(T)上定義上、下確界如下:
性質(zhì)1[2]設(shè)T=(G,M,I)是一個(gè)二元背景,X,X1,X2為任意對(duì)象子集,B,B1,B2為任意屬性子集,則下列性質(zhì)成立:
軟件測(cè)試(Software Testing),是指通過(guò)人工或自動(dòng)的方式對(duì)軟件系統(tǒng)運(yùn)行或檢測(cè),判斷驗(yàn)證其中的規(guī)則和標(biāo)準(zhǔn),同時(shí)對(duì)存在的偏差做出評(píng)價(jià)并加以改進(jìn)的過(guò)程[11]。目的在于檢測(cè)軟件產(chǎn)品是否滿足規(guī)定要求同時(shí)能夠發(fā)現(xiàn)預(yù)期輸出結(jié)果和實(shí)際結(jié)果兩者之間的差別所在,主要包括需求資格書審查、概要設(shè)計(jì)與程序設(shè)計(jì)審查、單元測(cè)試、集成測(cè)試、功能測(cè)試、有效性測(cè)試、系統(tǒng)測(cè)試等七個(gè)階段。
1.2.1 需求資格書審查
在最初的需求資格書審查流程中,軟件測(cè)試人員應(yīng)該參與到系統(tǒng)或產(chǎn)品的需求分析工作當(dāng)中,清楚用戶的需求所在,仔細(xì)核實(shí)需求說(shuō)明是否與用戶的需求相符合,表述是否準(zhǔn)確無(wú)誤。
1.2.2 概要設(shè)計(jì)與程序設(shè)計(jì)審查
在概要設(shè)計(jì)與程序設(shè)計(jì)審查階段,軟件測(cè)試人員需要根據(jù)已有的需求說(shuō)明書來(lái)分析評(píng)估系統(tǒng)結(jié)構(gòu)的合理性,例如審核數(shù)據(jù)庫(kù)中的外模式、模式以及內(nèi)模式。同時(shí)需仔細(xì)審閱數(shù)據(jù)流圖、用例圖以及UML 等,綜合判斷系統(tǒng)結(jié)構(gòu)的邏輯性。
表1:軟件-階段測(cè)試得分?jǐn)?shù)據(jù)表
表2:形式背景(G,M,I)
表3:形式背景(G,M,I)的所有形式概念
1.2.3 單元測(cè)試
單元測(cè)試一般采用白盒測(cè)試的方法,針對(duì)軟件系統(tǒng)中最小的組件或者模塊,對(duì)其中程序開(kāi)展邏輯覆蓋及路徑的測(cè)試。通過(guò)開(kāi)發(fā)人員設(shè)計(jì)的程序代碼,可以用來(lái)檢查其中很小很明確的功能是否完全正確。
1.2.4 集成測(cè)試
集成測(cè)試也稱為組裝測(cè)試,將經(jīng)過(guò)單元測(cè)試的模塊或者組件組裝起來(lái)形成一個(gè)可運(yùn)行的系統(tǒng),測(cè)試的目的主要是找出模塊間接口的問(wèn)題,驗(yàn)證當(dāng)各個(gè)子系統(tǒng)模塊集成在一起時(shí)是否達(dá)到了預(yù)期的功能。有的系統(tǒng)可能單模塊在運(yùn)行時(shí)沒(méi)有問(wèn)題,但是集合在一起時(shí)就會(huì)產(chǎn)生問(wèn)題。
1.2.5 功能測(cè)試
功能測(cè)試階段根據(jù)需求說(shuō)明書,從用戶的角度來(lái)進(jìn)行功能驗(yàn)證,從用戶界面測(cè)試等維度出發(fā),確認(rèn)每個(gè)功能是否已經(jīng)按照需求說(shuō)明的要求運(yùn)行,能夠正確地接收輸入和輸出結(jié)果。測(cè)試者采用逐項(xiàng)單步測(cè)試的方法,檢驗(yàn)功能是否滿足要求。
1.2.6 有效性測(cè)試
有效性測(cè)試也稱為確認(rèn)測(cè)試,在此過(guò)程中,軟件測(cè)試人員需要驗(yàn)證系統(tǒng)的各個(gè)功能性能及特征是否都符合用戶的要求。
1.2.7 系統(tǒng)測(cè)試
在系統(tǒng)測(cè)試階段中,把環(huán)境、軟硬件和工作人員等看成一個(gè)整體,軟件進(jìn)行一套完整的測(cè)試流程,主要包含安全、壓力、性能以及回復(fù)等測(cè)試,直到與開(kāi)發(fā)需求基本一致。
在一家互聯(lián)網(wǎng)公司中,近期有A、B、C、D、E 五款軟件,上線投入使用前需要首先通過(guò)測(cè)試部門經(jīng)過(guò)一系列測(cè)試,然后將測(cè)試結(jié)果評(píng)估報(bào)告反饋給開(kāi)發(fā)部門,最后不斷改進(jìn)。測(cè)試部門需要對(duì)每款軟件進(jìn)行需求資格審查、概要設(shè)計(jì)審查、單元測(cè)試、集成測(cè)試、功能測(cè)試、有效性測(cè)試以及系統(tǒng)測(cè)試七個(gè)流程,按照評(píng)判標(biāo)準(zhǔn)對(duì)每個(gè)流程打分,滿分100 分。各軟件在各測(cè)試流程的實(shí)際得分情況如表1所示。
圖1:算法流程圖
圖2:形式背景(G,M,I)的概念格
將表1中A、B、C、D、E 這5 款軟件作為5 個(gè)對(duì)象,分別用1、2、3、4、5 表示;將7 個(gè)測(cè)試流程的得分作為7 個(gè)屬性分別用a、b、c、d、e、f、g 表示,同時(shí)定義各對(duì)象以及屬性之間的二元關(guān)系。
(1)若某款軟件的‘需求資格書審查’得分在70 分以上記為1,其它記為0;
(2)若某款軟件的‘概要設(shè)計(jì)審查’b 得分在70 分以上記為1,其它記為0;
(3)若某款軟件的‘單元測(cè)試’c 得分在70 分以上記為1,其它記為0;
(4)若某款軟件的‘集成測(cè)試’d 得分在70 分以上記為1,其它記為0;
(5)若某款軟件的‘功能測(cè)試’e 得分在70 分以上記為1,其它記為0;
(6)若某款軟件的‘有效性測(cè)試’f 得分在70 分以上記為1,其它記為0;
(7)若某款軟件的‘系統(tǒng)測(cè)試’g 得分在
70 分以上記為1,其它記為0。
則表1軟件-階段測(cè)試得分?jǐn)?shù)據(jù)表可轉(zhuǎn)換為一個(gè)形式背景(G,M,I),如表2所示。
2.3.1 算法流程圖
為了能夠進(jìn)一步提升軟件質(zhì)量評(píng)價(jià)的效率,本節(jié)設(shè)計(jì)實(shí)現(xiàn)了一種自頂向下的概念格構(gòu)造算法。根據(jù)形式背景二元關(guān)系,逐一匹配運(yùn)算滿足條件的對(duì)象和屬性,存儲(chǔ)并輸出形式概念,從而構(gòu)造概念格,算法流程圖如圖1所示。
2.3.2 核心代碼
通過(guò)程序運(yùn)算,表2形式背景(G,M,I)對(duì)應(yīng)的概念如表3所示。
構(gòu)造的概念格如圖2所示。
根據(jù)實(shí)驗(yàn)數(shù)據(jù),該算法程序從運(yùn)行開(kāi)始到結(jié)束累計(jì)消耗時(shí)間為0。01s。
基于概念格的軟件質(zhì)量綜合評(píng)價(jià)方法,提供了一個(gè)更為綜合以及準(zhǔn)確的評(píng)估信息,并間接提升了軟件測(cè)試工作的效率。
根據(jù)表3的形式概念,可以得到軟件測(cè)試結(jié)果相關(guān)信息。例如:概念C2: ({1},{a,b,d,e,f,g }),除了單元測(cè)試,其他測(cè)試階段得分都合格的只有軟件A;概念C6:({2,4},{a,c,e}),需求資格書審查、單元測(cè)試、功能測(cè)試得分都合格的為軟件B 與D;概念C7:({1,4,5),{a,f}),需求資格書審查、有效性測(cè)試都合格的只有軟件A、D 與E。
根據(jù)圖2的概念格,可以判斷質(zhì)量較高以及質(zhì)量較低的軟件分類情況,靠近頂部則軟件質(zhì)量較高,靠近底部相對(duì)較低。例如C2中軟件對(duì)象1 質(zhì)量最高,除了屬性c 不滿足,其它屬性均滿足; 而C9 中軟件對(duì)象3 質(zhì)量較低,僅b、d 屬性滿足,其他屬性都不滿足。
本文通過(guò)采用形式概念分析方法,設(shè)計(jì)并實(shí)現(xiàn)了一種概念格求解構(gòu)造算法,同時(shí)結(jié)合各軟件及在各流程測(cè)試結(jié)果,探索了一種軟件質(zhì)量綜合評(píng)價(jià)方法,可以在分析大量軟件測(cè)試評(píng)估結(jié)果以及軟件的問(wèn)題改進(jìn)上提供有效地參考。但是,能否進(jìn)一步探究軟件測(cè)試的自動(dòng)化運(yùn)行以及影響軟件質(zhì)量的相關(guān)因素等問(wèn)題,將是接下來(lái)需要思考的方向。