摘 要: 嵌入式軟件可靠性測(cè)試往往是基于運(yùn)行剖面的,常用均勻分布或分段均勻分布的選取方式確定各個(gè)運(yùn)行剖面輸入變量的取值范圍,這種選取方式使測(cè)試用例的生成和選擇是隨機(jī)的,不具備針對(duì)性,使用質(zhì)量功能展開(kāi)(QFD)方法能克服這種局限性。將需求優(yōu)先級(jí)、測(cè)試成本、業(yè)務(wù)重要性等因素作為權(quán)重分配給嵌入式軟件可靠性測(cè)試系統(tǒng)的運(yùn)行剖面的輸入變量,可提高工作效率,并且達(dá)到以質(zhì)量為導(dǎo)向的測(cè)試目的。
關(guān)鍵詞: 軟件可靠性測(cè)試;質(zhì)量功能展開(kāi);運(yùn)行剖面
0 引言
相較于傳統(tǒng)的軟件應(yīng)用程序,嵌入式軟件系統(tǒng)具有實(shí)時(shí)性要求高、存儲(chǔ)器資源有限、I/O通道少、使用相對(duì)昂貴的硬件、涉及的CPU類(lèi)型多等特性,因此與一般測(cè)試應(yīng)用軟件不同,嵌入式軟件測(cè)試具有獨(dú)特性。嵌入式軟件可靠性測(cè)試經(jīng)常用的一種方法是基于運(yùn)行剖面的可靠性測(cè)試。傳統(tǒng)方法中,運(yùn)行剖面中輸入變量的取值區(qū)間通常是均勻分布或分段均勻分布,這種取值方式導(dǎo)致測(cè)試用例的選取方式是隨機(jī)的,沒(méi)有針對(duì)性。本文提出在確定輸入變量權(quán)重時(shí)應(yīng)用質(zhì)量功能展開(kāi)(QFD)方法以提高工作效率和質(zhì)量。
1 相關(guān)背景知識(shí)
1.1 嵌入式軟件測(cè)試的特點(diǎn)
在特定的硬件平臺(tái)進(jìn)行測(cè)試是嵌入式軟件測(cè)試的一個(gè)顯著特點(diǎn)。嵌入式軟件開(kāi)發(fā)環(huán)境與運(yùn)行環(huán)境也有不一致的地方,所以測(cè)試時(shí),即使在主機(jī)環(huán)境或描述目標(biāo)環(huán)境中運(yùn)行時(shí)沒(méi)有發(fā)現(xiàn)軟件問(wèn)題,也不能根據(jù)此判定嵌入式軟件是高可靠的。嵌入式軟件的測(cè)試策略的開(kāi)發(fā),必須考慮到在主機(jī)環(huán)境分配給目標(biāo)環(huán)境中的資源問(wèn)題和策略。嵌入式軟件開(kāi)發(fā)測(cè)試時(shí)如果目標(biāo)機(jī)系統(tǒng)硬件不能方便地獲得,這就使得最后確認(rèn)測(cè)試中提供目標(biāo)硬件設(shè)備上有了彈性。成功進(jìn)行宿主機(jī)/目標(biāo)機(jī)測(cè)試的先決條件是軟件的可移植性,采用宿主機(jī)/目標(biāo)機(jī)測(cè)試策略可提高工作效率并且能實(shí)現(xiàn)以質(zhì)量為導(dǎo)向[1]。
實(shí)時(shí)性是嵌入式軟件測(cè)試中的另一個(gè)重要特點(diǎn)。主要體現(xiàn)了嵌入式軟件的執(zhí)行需要對(duì)時(shí)間條件做一定約束。
1.2 嵌入式軟件的可靠性測(cè)試
一般使用兩種方法來(lái)實(shí)現(xiàn)嵌入式軟件的可靠性測(cè)試[2]。
?。?)從整個(gè)系統(tǒng)剝離出嵌入式軟件,然后進(jìn)行數(shù)學(xué)仿真平臺(tái)測(cè)試。仿真平臺(tái)通過(guò)測(cè)量和測(cè)試的一個(gè)邏輯描述可以實(shí)現(xiàn)物理地連接到彼此的軟件系統(tǒng),接著通過(guò)生成測(cè)試用例,通過(guò)仿真產(chǎn)生輸入,最后,被測(cè)目標(biāo)系統(tǒng)通過(guò)被調(diào)用來(lái)運(yùn)行,得到運(yùn)行的輸出結(jié)果。
(2)使所測(cè)試的整個(gè)系統(tǒng)建立一個(gè)封閉的環(huán)境來(lái)完成測(cè)試,也稱(chēng)為交叉試驗(yàn)方法。交叉試驗(yàn)的優(yōu)點(diǎn)是精度高,操作相對(duì)簡(jiǎn)單。交叉試驗(yàn)的一般步驟如下:首先完整地編寫(xiě)在主機(jī)上的測(cè)試代碼,通過(guò)編譯并下載到目標(biāo)計(jì)算機(jī),然后通過(guò)測(cè)試代理進(jìn)行測(cè)試目標(biāo)代碼。由于測(cè)試工具部署在主機(jī)上,所以在目標(biāo)計(jì)算機(jī)上的測(cè)試信息需要由主機(jī)和目標(biāo)機(jī)來(lái)測(cè)試,然后再將信息上傳到主機(jī)并最終用主機(jī)分析工具來(lái)分析測(cè)試結(jié)果。通過(guò)這種交叉測(cè)試環(huán)境,有時(shí)會(huì)大大增加測(cè)試費(fèi)用。
1.3 質(zhì)量功能展開(kāi)
質(zhì)量功能展開(kāi)(QFD)是把客戶的原始需求轉(zhuǎn)化為產(chǎn)品的設(shè)計(jì)需求、功能部件需求、工藝要求、生產(chǎn)要求的質(zhì)量工具,對(duì)客戶的原始需求進(jìn)行多層次的演繹分析。使用QFD可以幫助指導(dǎo)產(chǎn)品的健壯設(shè)計(jì)和質(zhì)量保證。它主要的思想是通過(guò)“將客戶的需求質(zhì)量轉(zhuǎn)換成質(zhì)量特性”,確定產(chǎn)品的設(shè)計(jì)質(zhì)量,通過(guò)確定各功能部件的質(zhì)量,進(jìn)而確定每個(gè)過(guò)程的質(zhì)量和過(guò)程要素,系統(tǒng)地展開(kāi)它們之間的關(guān)系。在質(zhì)量功能展開(kāi)中起重要作用的是由需求質(zhì)量和質(zhì)量特性構(gòu)成的二維表。
QFD的基本原理是用“質(zhì)量屋”的形式,量化地分析客戶需求與質(zhì)量特性之間的關(guān)系影響程度,經(jīng)數(shù)據(jù)分析處理后找出對(duì)滿足客戶需求影響最大的質(zhì)量特性因子,指導(dǎo)人員抓住主要矛盾,開(kāi)展穩(wěn)定性優(yōu)化設(shè)計(jì),通過(guò)把最高的價(jià)值/費(fèi)用比率的特性設(shè)置為最高的優(yōu)先級(jí),進(jìn)而開(kāi)發(fā)出滿足客戶需求的產(chǎn)品。
1.4 基于運(yùn)行剖面的可靠性測(cè)試
John Musa在19世紀(jì)30年代初提出了基于運(yùn)行剖面的方法,這種方法考察的對(duì)象就是運(yùn)行剖面,因此稱(chēng)為基于運(yùn)行剖面的可靠性測(cè)試。運(yùn)行剖面是指對(duì)嵌入式系統(tǒng)使用條件的定義,即“嵌入式系統(tǒng)的輸入值用其按時(shí)間的分布或按它們?cè)诳赡茌斎敕秶鷥?nèi)的出現(xiàn)概率的分布來(lái)定義”,為了達(dá)到互通的目的,連接軟件用戶以及軟件開(kāi)發(fā)設(shè)計(jì)人員之間重要的橋梁即是運(yùn)行剖面[3]。
2 應(yīng)用QFD定義運(yùn)行剖面
2.1 通過(guò)質(zhì)量功能部署確定影響因素的優(yōu)先級(jí)
用QFD確定需求優(yōu)先級(jí)主要可分為5個(gè)步驟[4]:
(1)對(duì)原始信息進(jìn)行收集并變換成語(yǔ)言信息。通過(guò)原型、需求訪談等方式對(duì)對(duì)象系統(tǒng)和用戶進(jìn)行調(diào)查,收集原始信息。經(jīng)過(guò)一定的規(guī)則逐一對(duì)原始信息探討確認(rèn),并變換成只含有一個(gè)意思的具體表現(xiàn)的語(yǔ)言信息。
?。?)對(duì)語(yǔ)言信息進(jìn)行分類(lèi)。通過(guò)對(duì)語(yǔ)言信息的整理,將用戶需求分類(lèi)成功能需求、質(zhì)量需求和其他需求。然后分析總體的功能需求,逐次抽出下層子功能點(diǎn)。確定某一功能需要怎樣的輸入和輸出數(shù)據(jù),逐一抽出數(shù)據(jù)項(xiàng)或者數(shù)據(jù)字典。
(3)功能數(shù)據(jù)二維表的構(gòu)造。整理細(xì)化的功能點(diǎn)及其相應(yīng)的數(shù)據(jù),把功能和數(shù)據(jù)分別作為二維表的X因素和Y因素,探討兩者的關(guān)聯(lián),構(gòu)造功能數(shù)據(jù)二維表。
?。?)從功能需求抽出質(zhì)量需求和質(zhì)量特性。以功能項(xiàng)目為基礎(chǔ),從功能滿足性、使用容易性、可靠性和適應(yīng)性4個(gè)方面抽出質(zhì)量需求??梢詮墓δ苄?、可靠性、使用性、效率性、維護(hù)性和移植性6個(gè)方面抽出質(zhì)量特性。
?。?)質(zhì)量關(guān)聯(lián)表的構(gòu)造。把質(zhì)量需求項(xiàng)作為二維表的X因素,質(zhì)量特性項(xiàng)作為Y因素,探討兩者的關(guān)系,構(gòu)造二維表。在構(gòu)造二維表時(shí)可以采用AHP方法對(duì)功能數(shù)據(jù)和質(zhì)量表進(jìn)行分層來(lái)構(gòu)造[5]。按其相互關(guān)系通過(guò)兩兩比較,通過(guò)行業(yè)專(zhuān)家對(duì)評(píng)價(jià)指標(biāo)的判斷來(lái)確定層次中各質(zhì)量特性因素的相對(duì)重要性,進(jìn)而給出每個(gè)因素的權(quán)值,在這個(gè)基礎(chǔ)上計(jì)算出方案的綜合排序,反復(fù)循環(huán)逐漸導(dǎo)出需求的層次結(jié)構(gòu),這些層次關(guān)系可以作為對(duì)各個(gè)需求的優(yōu)先級(jí)的不同權(quán)重。
2.2 運(yùn)行剖面構(gòu)建過(guò)程
嵌入式軟件的可靠性測(cè)試通常通過(guò)嵌入式用戶如何使用系統(tǒng)和使用頻率來(lái)確定運(yùn)行剖面[6]。運(yùn)行剖面描述了在實(shí)際運(yùn)行時(shí)嵌入式軟件的各項(xiàng)功能的使用概率。它的主要任務(wù)是在嵌入式軟件可靠性試驗(yàn)中如何根據(jù)運(yùn)行剖面在運(yùn)行測(cè)試中的誤差數(shù)據(jù)來(lái)確定最適合嵌入式軟件可靠性的模型,進(jìn)而使得得到的可靠性指標(biāo)更加準(zhǔn)確。在實(shí)際使用中運(yùn)行剖面取決于嵌入式軟件系統(tǒng)的機(jī)型、功能、需求和相應(yīng)的輸入,以及進(jìn)行分析的嵌入式軟件開(kāi)發(fā)可靠性和附加的嵌入式系統(tǒng)開(kāi)發(fā)人員對(duì)這些模型的概率、功能、任務(wù)的了解程度。測(cè)試、分析的結(jié)果是否可信取決于運(yùn)行剖面構(gòu)造的質(zhì)量。
2.3 傳統(tǒng)的運(yùn)行剖面輸入變量的取值
運(yùn)行剖面可以看成是二維向量的集合,定義如下:
OpProfile={(Element1,W1),(Element2,W2),…,
(Elementn,Wn)}
其中,Element表示運(yùn)行剖面中所包含的沒(méi)有交集的元素,W代表元素的權(quán)重或概率。
運(yùn)行剖面允許使用不同的權(quán)重選擇運(yùn)行,根據(jù)有關(guān)規(guī)則測(cè)試用例的選擇還必須確定輸入變量或者軟件運(yùn)行環(huán)境變量的值。確定各個(gè)運(yùn)行剖面輸入變量的取值范圍的常用方法是采用均勻分布或分段均勻分布的選取方式,這種選取方式使測(cè)試用例的生成和選擇是隨機(jī)的,不具備針對(duì)性[7-8]。
2.4 應(yīng)用QFD建立運(yùn)行剖面
嵌入式軟件可靠性測(cè)試的基本思想是將資源集中在使用最頻繁和最可能導(dǎo)致嚴(yán)重失效的功能上,并使測(cè)試盡可能按照實(shí)際進(jìn)行,因此運(yùn)行剖面的選擇應(yīng)結(jié)合以下幾個(gè)方面來(lái)綜合考慮:
?。?)需求優(yōu)先級(jí)的高低
根據(jù)用戶對(duì)嵌入式軟件系統(tǒng)的需求的優(yōu)先級(jí)確定哪些測(cè)試是重要的或者優(yōu)先級(jí)別是比較高的,在測(cè)試時(shí)投入相對(duì)多的資源[9]。
?。?)日常使用頻率高、涉及用戶面廣的功能
用戶使用頻率高的功能點(diǎn)的測(cè)試更為重要,所以需要投入更多的精力并且可以讓模擬環(huán)境更接近生產(chǎn)環(huán)境,這樣可使測(cè)試效果更真實(shí)。
(3)能反映業(yè)務(wù)重要性指標(biāo)的功能
根據(jù)業(yè)務(wù)重要程度和使用習(xí)慣對(duì)模塊的優(yōu)先級(jí)別進(jìn)行排序,為了使用戶培訓(xùn)及用戶應(yīng)用的過(guò)程更加高效,需要把業(yè)務(wù)最重要和使用最多的模塊優(yōu)先級(jí)別排在最高。
?。?)測(cè)試成本因素、測(cè)試實(shí)施過(guò)程的簡(jiǎn)便性及可操作性
需要綜合考慮測(cè)試成本的因素。測(cè)試用例選擇越多意味著測(cè)試過(guò)程的復(fù)雜度越高、成本越大。從成本的角度分析,可以只選擇其中的一種業(yè)務(wù)類(lèi)型作為測(cè)試用例。還需要考慮測(cè)試過(guò)程的可操作性。某些功能很難搭建模擬環(huán)境進(jìn)行測(cè)試,對(duì)那些可操作性較差的功能點(diǎn)將作為測(cè)試優(yōu)先級(jí)較低的選項(xiàng)。
在每個(gè)層級(jí)的剖面都可以按照QFD的方法進(jìn)行上述影響因素分析并賦值,賦值后的數(shù)字代表針對(duì)嵌入式軟件執(zhí)行時(shí)間的權(quán)重或概率。在運(yùn)行剖面給定的輸入變量的取值按照上述方法的權(quán)重代入公式,根據(jù)運(yùn)行剖面生成測(cè)試用例的過(guò)程來(lái)實(shí)現(xiàn)對(duì)某一功能的測(cè)試。
3 結(jié)束語(yǔ)
本文提出基于QFD應(yīng)用到運(yùn)行剖面輸入變量的權(quán)重確定,其通過(guò)QFD分析影響嵌入式軟件可靠性測(cè)試的因素,建立需求優(yōu)先級(jí)、業(yè)務(wù)重要性、測(cè)試成本等因素的二維表,通過(guò)二維表中的這些因素作為嵌入式軟件可靠性測(cè)試系統(tǒng)的運(yùn)行剖面的輸入變量的權(quán)重或概率予以分配,來(lái)提高工作效率并且達(dá)到以質(zhì)量為導(dǎo)向的測(cè)試目的。
參考文獻(xiàn)
[1] 張廣梅,李曉維.軟件可靠性測(cè)試方法探析[J].計(jì)算機(jī)應(yīng)用,2004,24(4):28-30.
[2] 韓柯.軟件可靠性工程[M].北京:機(jī)械工業(yè)出版社,2003.
[3] LYU M R. Handbook software reliability engineering [M]. New York: McGraw-Hill, 1996.
[4] 李軍.CMMI實(shí)施過(guò)程中確定需求優(yōu)先級(jí)的幾種方法[J].軟件導(dǎo)刊,2010,9(11):22-23.
[5] 湛浩旻,印桂生,趙蘊(yùn)龍.基于ISM與AHP組合的需求優(yōu)先級(jí)排序方法[J].計(jì)算機(jī)科學(xué),2013,40(3):225-227,243.
[6] 艾駿,陸民燕,阮鐮.面向軟件可靠性測(cè)試數(shù)據(jù)生成的剖面構(gòu)造技術(shù)[J].計(jì)算機(jī)工程,2006,32(22):7-9,45.
[7] 徐忠兵,王大翊,蕫威.嵌入式軟件可靠性測(cè)試用例自動(dòng)生成技術(shù)的研究[J].科技信息,2009(5):57,48.
[8] 黃松,端木怡婷,惠戰(zhàn)偉,等.基于運(yùn)行剖面的測(cè)試用例選擇改進(jìn)算法[J].指揮信息系統(tǒng)與技術(shù),2011,2(3):78-82.
[9] 熊偉.基于QFD的軟件需求分析法[J].計(jì)算機(jī)與現(xiàn)代化,1998(5):1-4,27.