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