黃茂生
(工業(yè)和信息化部電子第五研究所,廣州 510610)
信息化技術(shù)的迅猛發(fā)展,在軌道交通、電力、智能制造等廣泛應(yīng)用,出現(xiàn)大量以軟件為核心的軟件密集型智能裝備系統(tǒng),軟件密集型指在設(shè)備系統(tǒng)的功能特性、研制費用、研制風(fēng)險及研制時間等一個或多個方面,軟件占主導(dǎo)地位的裝備系統(tǒng), 即以軟件為核心的裝備系統(tǒng)[1,2]。目前對該類設(shè)備的試驗評價,采用了傳統(tǒng)的可靠性試驗加軟件測試的方式進行,按照規(guī)定要求完成試驗和故障歸零后,在實際裝備使用中仍出現(xiàn)不少的質(zhì)量與可靠性問題,通過對多型裝備定型后出現(xiàn)的故障數(shù)據(jù)分析發(fā)現(xiàn),裝備使用條件下的環(huán)境應(yīng)力、外部輸入數(shù)據(jù)、用戶的使用操作等多個因素共同造成了設(shè)備故障與失效情況[3-5],說明對軟件密集型信息化裝備分別開展可靠性試驗及軟件測試的方法,不能充分的暴露其可靠性薄弱環(huán)節(jié),迫切需要對試驗技術(shù)方法進行研究和改進。
本文對依據(jù)GJB 899A-2009實施的可靠性試驗和依據(jù)GJB/Z 141-2004的軟件測試,進行了比較和分析,針對其對軟件密集型裝備可靠性試驗的薄弱環(huán)節(jié),研究提出一種考慮軟件工作載荷的可靠性綜合試驗剖面設(shè)計技術(shù),并通過某型裝備進行了應(yīng)用試驗驗證。
在裝備研制過程中,可靠性試驗和軟件測試是裝備研制中必須做的兩項重要試驗,在型號工程中已經(jīng)開展多年,并取得了良好效果,大大地促進了裝備質(zhì)量的提高。可靠性試驗方面,主要參考和依據(jù)MIL-STD-781D《可靠性試驗的發(fā)展,試驗條件及程序》及相關(guān)標準,針對不同裝備應(yīng)用于不同氣候環(huán)境和機械環(huán)境的特點,選取實際使用中最典型、最有代表性的使用條件,通過設(shè)計溫度、濕度、振動以及電應(yīng)力四種環(huán)境應(yīng)力的同步施加,模擬實際使用中所經(jīng)歷的綜合環(huán)境效應(yīng)[6],對設(shè)備進行試驗考核和可靠性評價,其可靠性試驗剖面的典型結(jié)構(gòu)如圖1所示。在可靠試驗期間,會根據(jù)試驗大綱,進行部分軟件(系統(tǒng))功能檢查以及若干性能檢測,但在選定檢查的功能、性能指標時,未充分考慮軟件、硬件之間的影響,因此也沒有規(guī)定軟件運行方式、頻度、時間以及預(yù)置條件等,試驗方案之間對軟件功能邏輯的覆蓋率有較大的差異,因而對軟件和系統(tǒng)可靠性指標的考核和結(jié)果評價均存在一定的偏差。
現(xiàn)行的軟件測試,將測試按級別分為單元測試、集成測試等,測試類型分為功能性測試、性能測試、強度測試等,測試階段分為測試策劃、測試設(shè)計、測試執(zhí)行等[7,8],測試目的是“考核軟件是否符合系統(tǒng)研制總要求或軟件研制總要求規(guī)定的技術(shù)指標”的要求,測試通過查找缺陷以及對缺陷進行歸零處理來提升軟件的質(zhì)量,是面向需求的符合性測試,偏重質(zhì)量符合性。軟件測試時,多數(shù)情況下將軟件運行的硬件平臺置于有空調(diào)進行溫控的機房中,沒有其置于裝備實際應(yīng)用場景的溫濕度、電應(yīng)力以及振動綜合環(huán)境下,軟件測試時無法模擬硬件性能變化等對軟件的功能、性能等影響,難以發(fā)現(xiàn)軟件硬件共因故障,更難以重現(xiàn)。
文獻[9,10]指出由嵌有軟件的硬件組成的大型軟硬件系統(tǒng)會出現(xiàn)硬件失效、軟件失效和軟硬關(guān)聯(lián)作用失效,并規(guī)定對該類系統(tǒng)的可靠性試驗,需要施加的應(yīng)力除了包括溫度、濕度、振動、電應(yīng)力等傳統(tǒng)的環(huán)境應(yīng)力外,還應(yīng)該包括工作載荷(Operating Load)。可見,單獨的硬件可靠性試驗和軟件測試在暴露軟硬件關(guān)聯(lián)的故障方面存在欠缺,因此對系統(tǒng)可靠性指標評價存在一定的偏差。
圖1 機載設(shè)備可靠性試驗剖面的典型結(jié)構(gòu)
圖2 考慮工作載荷的可靠性綜合試驗剖面設(shè)計技術(shù)
考慮軟件載荷的試驗剖面設(shè)計技術(shù),在現(xiàn)行可靠性試驗、軟件測試的管理和技術(shù)模式框架下,以現(xiàn)行可靠性試驗為基礎(chǔ),細化和完善試驗方案設(shè)計,充分考慮軟件的運行剖面,以典型的工作載荷構(gòu)建完善的軟件測試剖面替代原有的測試點,使綜合可靠性試驗剖面盡可能貼近用戶的使用環(huán)境和條件,剖面設(shè)計方法和設(shè)計過程見圖所示(圖2)。
硬件可靠性試驗剖面設(shè)計主要參考和依據(jù)MIL-STD-781D《可靠性試驗的發(fā)展, 試驗條件及程序》及相關(guān)標準,分別完成單任務(wù)可靠性試驗剖面設(shè)計和多任務(wù)可靠性試驗剖面設(shè)計。
1)單一任務(wù)可靠性試驗剖面
圖3 單一任務(wù)裝備的可靠性試驗剖面合成過程(示例)
首先根據(jù)設(shè)備及裝載平臺的設(shè)計要求以及任務(wù)剖面,繪制任務(wù)特征參數(shù)圖(見圖3(a));其次,從設(shè)備設(shè)計性能規(guī)范和任務(wù)剖面獲取各任務(wù)階段、高度、馬赫數(shù)、動壓等數(shù)據(jù),并計算或獲取必要的數(shù)據(jù)(溫度、溫度變化率、振動應(yīng)力、電應(yīng)力、濕度等),結(jié)合任務(wù)特征參數(shù)圖提供的數(shù)據(jù),得到繪制環(huán)境剖面所需的數(shù)據(jù):任務(wù)階段、持續(xù)時間、高度、馬赫數(shù)、機艙溫度、溫度變化率、動壓q、概率譜密度W0、W1、露點溫度、設(shè)備狀態(tài)等,并繪制環(huán)境剖面(見圖3(b)所示);最后,依據(jù)規(guī)定的原則,對環(huán)境剖面中的濕度、溫度變化率和振動數(shù)據(jù)進行處理,依據(jù)處理得到試驗剖面圖數(shù)據(jù)(任務(wù)階段、持續(xù)時間、溫度變化率、W0、設(shè)備狀態(tài)等),繪制試驗剖面圖(見圖3(c)所示),試驗剖面應(yīng)包括溫度試驗剖面和振動試驗剖面,分冷天執(zhí)行任務(wù)和熱天執(zhí)行任務(wù)兩種情況。電應(yīng)力循環(huán)和濕度應(yīng)力由于變化比較簡單,可以不在剖面上表示出來。
2)多任務(wù)裝備的可靠性試驗剖面合成
多任務(wù)裝備的可靠性試驗合成,主要是以溫度的時序為基準,同步電應(yīng)力剖面、振動剖面,兩者的合成方法原理基本一致。多任務(wù)裝備可靠性試驗溫度剖面合成過程和方法如下:
步驟1:逐一列出各個任務(wù)出現(xiàn)的相對頻率估計值(即各任務(wù)在總?cè)蝿?wù)中所占的比例,用加權(quán)因子?表示),各任務(wù)的加權(quán)因子的總和為1;
步驟2:按每一任務(wù)剖面列出每一穩(wěn)態(tài)溫度臺階等級T及其持續(xù)時間t,用任務(wù)加權(quán)因子?與持續(xù)時間t的乘積作為加權(quán)持續(xù)時間?t,見表1所示;
步驟3:對表1的相同溫度值進行合并,被合并溫度所對應(yīng)加權(quán)持續(xù)時間進行累加,得到一個只有溫度值和總加權(quán)持續(xù)時間的兩列溫度值匯總表格。
最后,確定冷天和熱天的最大溫度值TMAX、最小溫度值TMIN、加權(quán)溫度值TINT3個溫度臺階值和持續(xù)時間。TMAX(TMIN)為最高(最低)溫度值5 ℃范圍內(nèi)的溫度值的加權(quán)綜合,其持續(xù)時間為參加加權(quán)的各溫度對應(yīng)的總加權(quán)持續(xù)時間之和;TINT為處參加計算TMAX和TMIN加權(quán)溫度值之外的所有剩余溫度值的加權(quán)平均值(將所有剩余溫度值分別乘以對應(yīng)的總加權(quán)持續(xù)時間,相加后再除以各對應(yīng)的總加權(quán)持續(xù)時間之和),其持續(xù)時間為各參加加權(quán)溫度值對應(yīng)的總加權(quán)持續(xù)時間之和。
使用類似方法,確定冷天和熱天的起飛振動量值WOTO、飛行連續(xù)振動量值WOC、最大振動量值WOMAX、最小振動量值WOMIN、加權(quán)振動量值WOINT共5個振動量值和持續(xù)時間。
最后以溫度試驗剖面為主線,繪制多任務(wù)合成試驗剖面,見圖3(d)所示。
考慮工作載荷的軟件剖面設(shè)計的重點,首先獲取應(yīng)用戶的實際使用情況,由其執(zhí)行的任務(wù)剖面來確定操作執(zhí)行時機、頻度,對任務(wù)剖面進行使用信息擴充,獲取和確定系統(tǒng)狀態(tài)及工作模式[9],對由Markov鏈得到的用戶使用模型進行層次結(jié)構(gòu)分解,構(gòu)建層次結(jié)構(gòu)狀態(tài)遷移矩陣,最終設(shè)計形成帶有執(zhí)行概率分配參數(shù)的工作模式執(zhí)行路徑序列集,按照軟件測試的等價類分析、邊界值分析、判定表法等測試用例設(shè)計方法對輸入?yún)?shù)進行設(shè)計,設(shè)計形成測試用例集,完成構(gòu)造軟件測試剖面。
表1 各任務(wù)剖面溫度值表
圖4 任務(wù)剖面Ai-“高-低-低-高”剖面(示例)
1)任務(wù)剖面再設(shè)計
一般來說,通過任務(wù)想定建模得到的任務(wù)剖面包含的信息包括:任務(wù)階段、運行方式、運行功能、任務(wù)時間、環(huán)境應(yīng)力與處于該環(huán)境應(yīng)力下的時間等。而軟件測試剖面的制定需要在任務(wù)剖面的基礎(chǔ)上添加軟件使用操作等工作載荷相關(guān)信息,依據(jù)用戶文檔、操作手冊等相關(guān)文檔,與用戶代表等進行面對面的溝通,逐一獲取每個任務(wù)剖面各階段中的軟件系統(tǒng)狀態(tài)、工作模式等信息,從圖4的任務(wù)剖面擴充設(shè)計獲取到表2的信息。
2)基于MUSA的軟件狀態(tài)層次分解
對表2中獲取裝備全任務(wù)剖面可能出現(xiàn)的軟件工作模式集進行分類匯總,得到典型工作模式。然后,依據(jù)《操作員手冊》等文檔,使用文獻[10]的方法,對每個典型工作模式進行逐層分解,分解得到該裝備所支持的下級工作模式。
以某型設(shè)備為例,其任務(wù)剖面全集中出現(xiàn)的軟件工作模式集包含K-K、K-H、K-D和D-H四種典型工作模式,對四種工作模式進行下一級分解,如K-K工作模式進一步分解為VS,RWS,TWS,STT、SAM等(見表3所示)。
3)基于Markov鏈的狀態(tài)遷移矩陣構(gòu)建
依據(jù)任務(wù)來確定工作模式的切換,模式之間的轉(zhuǎn)換是有一定的約束:同級模式之間可以直接轉(zhuǎn)換,子模式之間的轉(zhuǎn)換若是跨父模式的,是以父模式切換為前提條件的,有些模式的切換則必須經(jīng)過其他模式的引導(dǎo)(見表4和圖5所示),因此,可以使用分層結(jié)構(gòu)Markov鏈使用模型,將同一層級工作模式看作一個整體,看作是Markov 鏈中的一個結(jié)點,將同層級的轉(zhuǎn)換關(guān)系封裝起來形成子集,避免Markov鏈狀態(tài)空間爆炸問題。使用Markov鏈使用模型構(gòu)建同層工作模式的轉(zhuǎn)移概率矩陣,同層級不同模式下子模式之間的轉(zhuǎn)換關(guān)系,則通過兩個子模式及父級的Markov鏈的串行關(guān)系來實現(xiàn):
假設(shè)狀態(tài)轉(zhuǎn)移矩陣Ak為n×n的矩陣,其中k∈{1,…,m},m為分解得到的工作模式集總數(shù),n為第k層級工作模式的最大模式數(shù),每一項pkij=p(Xkt=xkj|Xk(t-1)=xki)表示工作模式xki轉(zhuǎn)移到工作模式xkj的概率,在轉(zhuǎn)移矩陣中,如果某兩個工作模式xki、xkj之間不能直接轉(zhuǎn)換,則記狀態(tài)轉(zhuǎn)移概率pkij為0。
表2 任務(wù)剖面擴充信息表
表3 K-K工作模式轉(zhuǎn)換關(guān)系
圖5 K-K工作模式轉(zhuǎn)換圖(示例)
轉(zhuǎn)移概率矩陣Ak滿足以下兩個條件:
4)執(zhí)行路徑序列集構(gòu)造及單任務(wù)軟件測試剖面用例集設(shè)計
根據(jù)1)-3)得到所有工作模式執(zhí)行路徑序列集S={s1,s2,…,sd}, 路徑sd代表軟件的一次完整使用操作過程,等同1個基礎(chǔ)測試用例,路徑概率代表用戶使用操作的頻度,sd經(jīng)歷了若干個模式,結(jié)合Markov鏈狀態(tài)遷移矩陣,可計算得到每條路徑所對應(yīng)的路徑概率psd。
假設(shè)某條執(zhí)行路徑跨越了一個父級Ak及兩個子級狀態(tài)轉(zhuǎn)移矩陣Ak-1、Ak-2:
式中:
∏AK—該執(zhí)行路徑在狀態(tài)轉(zhuǎn)移矩陣Ak內(nèi)的狀態(tài)遷移概率的乘積。
對S中的工作模式執(zhí)行路徑序列,使用等價類劃分法、邊界值分析法、判定表法等測試用例設(shè)計方法,對sd進行用例設(shè)計形成測試剖面,并建立任務(wù)階段與sd的映射表(如表4所示)。
由于硬件可靠性是時間的函數(shù),是器件隨著使用時間的積累其物理特性的變化,有浴盆曲線現(xiàn)象,因此硬件可靠性主要通過環(huán)境應(yīng)力的時間累積來激發(fā)產(chǎn)品故障;而軟件可靠性的決定因素是與輸入數(shù)據(jù)和程序內(nèi)部狀態(tài)有關(guān)的軟件差錯,其故障的激發(fā)取決于程序運行的路徑,是程序路徑運行狀態(tài)空間域的函數(shù),是程序代碼運行空間的函數(shù)。
依據(jù)硬件可靠性和軟件可靠性的這一特性,將多任務(wù)可靠性試驗剖面合成剖面的時間占比,替換為來自任務(wù)該階段(Aij)的軟件執(zhí)行路徑序列的執(zhí)行概率占比,實現(xiàn)可靠性試驗剖面的“時間”與軟件測試剖面的“空間”的匹配。如圖6所示,從2.1中“2)多任務(wù)可靠性試驗剖面合成”,得到合成試驗剖面中溫度臺階(-34.3 ℃)的任務(wù)來源及其持續(xù)時間占比(圖6中虛線框內(nèi)所示),通過上述“時空匹配”,可得到該溫度臺階需執(zhí)行的執(zhí)行路徑序列及其執(zhí)行概率(見表5所示),單個Aij內(nèi)的執(zhí)行路徑序列間的執(zhí)行分配由式(5)的psd來確定。最后,對執(zhí)行路徑序列歸一化處理,形成考慮軟件工作載荷的可靠性綜合試驗剖面,如圖7所示。
表4 某任務(wù)剖面Ai任務(wù)階段與sd的映射表
圖6 軟件測試剖面與可靠性試驗剖面匹配
表5 溫度臺階(-34.3 ℃)的任務(wù)來源及sd執(zhí)行概率
圖7 考慮軟件工作載荷的可靠性綜合試驗剖面
在某設(shè)備的可靠性驗收試驗中,采用本文提出的剖面構(gòu)造技術(shù)進行可靠性綜合試驗剖面設(shè)計,驗證試驗共設(shè)計13.75個循環(huán),合計試驗時間110 h。驗證試驗的綜合試驗剖面中,涉及軟件操作和測試的有6個溫度臺階(見圖7所示),與之前同型號裝備的試驗剖面相比,增加52個基本用例數(shù),歸一化后的用例執(zhí)行總數(shù)量為502個。
驗證試驗發(fā)現(xiàn)了軟硬件關(guān)聯(lián)故障1個,該故障在此前的可靠性試驗和軟件測試均未發(fā)現(xiàn)。通過故障歸零分析時發(fā)現(xiàn):該故障曾經(jīng)出現(xiàn)過多次,且是該裝備的外場使用中出現(xiàn),出現(xiàn)的條件組合都是“載機在大量級振動并裝備在運行大角度俯仰掃描功能”,傳統(tǒng)的可靠性試驗和軟件測試由于各自特點與局限性,均未能暴露該類型的故障。
由此可見,考慮軟件工作載荷的可靠性綜合試驗剖面設(shè)計技術(shù),以完善的軟件測試剖面替代原有的測試點,其本質(zhì)與盡可能貼近用戶使用環(huán)境和條件的可靠性試驗要求,是相一致的,可作為傳統(tǒng)可靠性試驗和單獨的軟件第三方測試/定型測試的有效補充,有效暴露軟件密集型信息化裝備的軟硬件關(guān)聯(lián)故障,符合目前裝備發(fā)展的需求,具有良好的應(yīng)用前景。