零缺陷軟件開(kāi)發(fā)工具ZDSD
前言
本文引用地址:http://butianyuan.cn/article/81533.htm在航空、航天、國(guó)防、核工業(yè)、通信、汽車、醫(yī)療、金融等尖端產(chǎn)業(yè),對(duì)應(yīng)用軟件的安全性、可靠性提出零缺陷的苛刻標(biāo)準(zhǔn)。從事零缺陷軟件開(kāi)發(fā)的專業(yè)公司中,英國(guó)LDRA公司(Liverpool Data Research Associates)由Mike Hennell教授在1975年創(chuàng)建,它的零缺陷軟件開(kāi)發(fā)(ZDSD)調(diào)試和測(cè)試工具是拳頭產(chǎn)品。下文對(duì)業(yè)界著名的嵌入式調(diào)試和測(cè)試工具ZDSD作簡(jiǎn)要介紹。
ZDSD解決方案
LDRA公司的ZDSD解決方案的層次模型如圖1所示。在嵌入式系統(tǒng)開(kāi)發(fā)項(xiàng)目中,層次模型包含了五個(gè)基本級(jí)別,隨著對(duì)設(shè)計(jì)過(guò)程和項(xiàng)目的目標(biāo)、中間產(chǎn)品和整體生產(chǎn)率的關(guān)注的不同,這些級(jí)別可以進(jìn)行調(diào)整。
級(jí)別1
級(jí)別1是對(duì)一個(gè)將要開(kāi)發(fā)的系統(tǒng)的確定性描述和需要滿足的功能性標(biāo)準(zhǔn),稱為高級(jí)需求。這個(gè)級(jí)別可以是詳細(xì)描述的,也可以不進(jìn)行詳細(xì)的描述,它的精確的定義可以推遲到級(jí)別2由設(shè)計(jì)人員,或者甚至級(jí)別3的系統(tǒng)概要設(shè)計(jì)階段由實(shí)現(xiàn)人員去描述。級(jí)別1高級(jí)需求也叫做系統(tǒng)需求、用戶需求、產(chǎn)品需求,或者其他相同含義的稱謂。這些需求可以以數(shù)據(jù)庫(kù)方式保存(如Telelogic DOORS)或者以文本方式保存(如Microsoft Word)。
級(jí)別2
級(jí)別2是對(duì)系統(tǒng)設(shè)計(jì),包含對(duì)級(jí)別1所描述的系統(tǒng)設(shè)計(jì)的表示方法。這一級(jí)別在大多情況下稱為低層需求,低層需求必須首先建立起和級(jí)別1的聯(lián)接或者追蹤關(guān)系。這個(gè)聯(lián)接關(guān)系稱為需求追蹤矩陣(RTM)。圖1的層次模型中的所有級(jí)別都直接或者間接的參與到RTM中。
級(jí)別2一般可以采用三種典型設(shè)計(jì)過(guò)程之一來(lái)表示,第一用設(shè)計(jì)模型進(jìn)行描述,如統(tǒng)一建模語(yǔ)言(UML)或者專用的建模工具(如Mathworks的Simulink和NI的LabView等)。第二作為選擇,用設(shè)計(jì)規(guī)格說(shuō)明進(jìn)行描述。第三用體系架構(gòu)概念來(lái)達(dá)到項(xiàng)目中的關(guān)鍵要求,而不采用正式的描述方式。
級(jí)別3
級(jí)別3是系統(tǒng)的實(shí)現(xiàn),包含與級(jí)別2的描述保持一致的源代碼或匯編代碼的生成。在采用建模工具的自動(dòng)代碼生成的情況下,級(jí)別2和級(jí)別3之間的聯(lián)接可以自動(dòng)實(shí)現(xiàn),確保兩個(gè)級(jí)別之間的需求可追蹤性。在通常情況下,使用嵌入式操作系統(tǒng)供應(yīng)商(如Green Hills、Wind River或者LynxOS)提供的集成開(kāi)發(fā)環(huán)境(IDE)中進(jìn)行手工編碼。
級(jí)別4
級(jí)別4專注于確認(rèn)。這一級(jí)別將對(duì)嵌入式軟件進(jìn)行針對(duì)功能和針對(duì)結(jié)構(gòu)的測(cè)試。可以采用自頂而下,自底而上,或者兩種方法相結(jié)合的測(cè)試策略。這一級(jí)別可以采用模擬器、軟件仿真器、測(cè)試驅(qū)動(dòng)自動(dòng)生成器以及測(cè)試用例自動(dòng)生成器。如果要進(jìn)行實(shí)際路徑測(cè)試,那么結(jié)構(gòu)測(cè)試中需要擴(kuò)展使用在級(jí)別3中應(yīng)用過(guò)的分析和斷言形式的方法。不采用這些分析技術(shù),缺陷的因果關(guān)系就不能有效的揭示出來(lái)。
在級(jí)別4 RTM得到全面的擴(kuò)展,將包含測(cè)試用例標(biāo)識(shí)、測(cè)試規(guī)格說(shuō)明和測(cè)試結(jié)果在內(nèi)的相關(guān)確認(rèn)產(chǎn)品項(xiàng)。級(jí)別4的重點(diǎn)是在目標(biāo)機(jī)測(cè)試和系統(tǒng)集成測(cè)試之前更正缺陷。基于主機(jī)的測(cè)試是非常典型的一種節(jié)約費(fèi)用的選擇,因?yàn)樗芎玫靥峁┝嗽缙跍y(cè)試手段,并且它是不依賴于目標(biāo)平臺(tái)實(shí)現(xiàn)最底層功能的良好手段。
級(jí)別5
對(duì)嵌入式軟件的確認(rèn),特別是安全苛刻性軟件,最有代表性的是在級(jí)別5進(jìn)行。然而,由于在這一級(jí)功能頻繁的在硬件/軟件之間變化,使得缺陷的確定比級(jí)別4更加困難。另外,一個(gè)層面的追蹤,從源代碼到目標(biāo)碼的追蹤也必須被覆蓋。
功能測(cè)試是第5級(jí)中的核心工作。另外,結(jié)構(gòu)覆蓋作為用來(lái)度量功能需求和實(shí)現(xiàn)最終追蹤關(guān)系。在級(jí)別4中使用的所有測(cè)試產(chǎn)品項(xiàng)都會(huì)在級(jí)別5中涉及。
LDRA公司的ZDSD解決方案完全適合上文描述的ZDSD模型的要求。ZDSD解決方案在V型軟件開(kāi)發(fā)中的應(yīng)用如圖2所示。
LDRA產(chǎn)品介紹
LDRA工具套件主要包括Testbed/TBrun、TBreq以及RTInsight,套件能夠輔助客戶高效地實(shí)現(xiàn)ZDSD的開(kāi)發(fā)流程。
Testbed功能介紹
LDRA開(kāi)發(fā)的工具套件在達(dá)到團(tuán)隊(duì)軟件開(kāi)發(fā)和維護(hù)目標(biāo)的過(guò)程中,對(duì)六項(xiàng)內(nèi)容提供幫助,如圖3所示。
·代碼評(píng)審(檢查編碼規(guī)則);
·質(zhì)量評(píng)審(分析代碼的復(fù)雜度、密度和可測(cè)試性);
·設(shè)計(jì)評(píng)審(分析接口、變量使用和控制流等);
·單元測(cè)試(自動(dòng)創(chuàng)建測(cè)試驅(qū)動(dòng)和測(cè)試向量);
·測(cè)試驗(yàn)證(追蹤測(cè)試執(zhí)行和分析代碼覆蓋率);
·測(cè)試管理(測(cè)試用例管理和文檔管理)。
1.代碼評(píng)審。通過(guò)使用工具提供的強(qiáng)大的(包括編碼規(guī)則檢查)分析功能以及工具提供的全面的報(bào)告,可以實(shí)現(xiàn)對(duì)傳統(tǒng)代碼評(píng)審工作的擴(kuò)展。
工具提供的代碼評(píng)審功能的主要特點(diǎn)是,提供了一個(gè)自動(dòng)化的、有效的、可重復(fù)的過(guò)程,這個(gè)過(guò)程既節(jié)省了時(shí)間和資源,又為開(kāi)發(fā)者提供了詳細(xì)的全面標(biāo)準(zhǔn),這些是傳統(tǒng)的手工技術(shù)不能與之相比的。
2.質(zhì)量評(píng)審。該功能使用質(zhì)量度量方法快速確定軟件的質(zhì)量,使質(zhì)量評(píng)審過(guò)程自動(dòng)化。
質(zhì)量評(píng)審一個(gè)主要特點(diǎn)是全面的代碼可視化、系統(tǒng)級(jí)的質(zhì)量度量和代碼的結(jié)構(gòu)簡(jiǎn)化,幫助提高對(duì)整個(gè)代碼的信心。
3.設(shè)計(jì)評(píng)審。對(duì)源代碼與最初的設(shè)計(jì)需求之間的一致性進(jìn)行評(píng)估是很重要的。
4.單元測(cè)試。在軟件生命周期中,隨著軟件開(kāi)發(fā)的進(jìn)行,發(fā)現(xiàn)錯(cuò)誤以及修正錯(cuò)誤的成本越來(lái)越大,這是一個(gè)大家公認(rèn)的事實(shí)。經(jīng)驗(yàn)證明代碼開(kāi)發(fā)早期的集中測(cè)試可以減少相關(guān)的成本。
單元測(cè)試在初始編碼階段提供了識(shí)別和改正錯(cuò)誤的方法,幫助確認(rèn)和維護(hù)軟件單元/模塊的一致性。單元測(cè)試工具使測(cè)試過(guò)程自動(dòng)化,解決了傳統(tǒng)的單元測(cè)試大量消耗時(shí)間和資源的問(wèn)題。
5.測(cè)試驗(yàn)證。在開(kāi)發(fā)安全、商業(yè)和任務(wù)苛刻性軟件的過(guò)程中,必須堅(jiān)持最嚴(yán)格的標(biāo)準(zhǔn)。
代碼的分析、測(cè)試和維護(hù)占了軟件開(kāi)發(fā)生命周期的70%??焖俨槊鞅粶y(cè)試軟件中不適當(dāng)?shù)牟糠?,并且按照一個(gè)高的標(biāo)準(zhǔn)來(lái)測(cè)試并減少回頭測(cè)試的成本,這是極為重要的。主要的目的是節(jié)省資源,提高產(chǎn)品質(zhì)量,縮短上市時(shí)間。
6.測(cè)試管理。因?yàn)槌浞掷斫庖粋€(gè)系統(tǒng)可能需要花費(fèi)很長(zhǎng)的時(shí)間和大量的人力、物力。工具套件幫助開(kāi)發(fā)者和測(cè)試工程師理解、歸檔、維護(hù)龐大的復(fù)雜系統(tǒng)。
文檔編制幫助達(dá)到質(zhì)量標(biāo)準(zhǔn)(如ISO 9001:2000)。測(cè)試管理的一個(gè)主要特點(diǎn)是為評(píng)審提供整個(gè)系統(tǒng)的文檔和版本控制,也幫助減少維護(hù)的成本。
TBreq功能介紹
TBreq包含了LDRA Testbed和TBrun(單元測(cè)試工具)的工具包集成, 能夠提供一套完整的解決方案來(lái)幫助測(cè)試團(tuán)隊(duì)實(shí)現(xiàn)測(cè)試規(guī)格說(shuō)明、單元測(cè)試場(chǎng)景、測(cè)試數(shù)據(jù)以及代碼覆蓋率驗(yàn)證,實(shí)現(xiàn)高層次的設(shè)計(jì)規(guī)格說(shuō)明之間的映射。TBreq直接和管理工具(DOORS、ReqPro、Word、Excel)接口來(lái)保證在整個(gè)軟件生命周期中,實(shí)現(xiàn)需求跟蹤以及保證對(duì)于需求覆蓋的完整性。
在LDRA工具包里,TBreq根據(jù)需求直接生成測(cè)試規(guī)格說(shuō)明和可執(zhí)行的測(cè)試用例。測(cè)試結(jié)果直接自動(dòng)的返回到需求管理工具,從而實(shí)現(xiàn)往返的需求跟蹤驗(yàn)證。
所有的這些特點(diǎn)使得TBreq成為當(dāng)今市場(chǎng)上有效的針對(duì)需求管理的解決方案。TBreq是將需求、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試和驗(yàn)證工作與管理工具和設(shè)計(jì)開(kāi)發(fā)工具鏈連接起來(lái)的較簡(jiǎn)單的解決方案。
RTInsightPro嵌入式測(cè)試系統(tǒng)
隨著嵌入式實(shí)時(shí)系統(tǒng)的廣泛應(yīng)用,嵌入式軟件可靠性越來(lái)越成為系統(tǒng)能否正常運(yùn)行的關(guān)鍵,由于傳統(tǒng)主機(jī)平臺(tái)軟件測(cè)試工具的局限性,給嵌入式平臺(tái)軟件測(cè)試帶來(lái)很大的困難。
RTInsightPro充分考慮到嵌入式軟件實(shí)時(shí)性特點(diǎn),結(jié)合使用LDRA公司靜態(tài)分析與代碼自動(dòng)插裝技術(shù),可成功用于實(shí)時(shí)嵌入式系統(tǒng)集成與系統(tǒng)測(cè)試,提供代碼覆蓋率分析、函數(shù)性能分析、內(nèi)存泄露分析、任務(wù)性能分析、變量監(jiān)控、堆棧監(jiān)控及系統(tǒng)跟蹤功能。RTInsightPro測(cè)試系統(tǒng)如圖4所示。
通過(guò)采用LDRA公司Testbed軟件測(cè)試工具靜態(tài)分析與代碼插裝技術(shù),以及RTInsightPro硬件,可實(shí)時(shí)地對(duì)嵌入式系統(tǒng)進(jìn)行代碼覆蓋率分析與性能分析。由于采用代碼插裝,可準(zhǔn)確地判斷代碼執(zhí)行情況,同時(shí)由于采用RTInsightPro高速虛擬端口技術(shù),使得代碼插裝量可控制在每個(gè)特征點(diǎn)(即函數(shù)入口、出口,程序分支點(diǎn))一到兩條指令或語(yǔ)句(代碼增加量可控制在10%之內(nèi)),大大減少插裝代碼增加對(duì)被測(cè)系統(tǒng)的影響。
RTInsighPro提供代碼覆蓋率分析、函數(shù)性能分析、變量監(jiān)控、堆棧使用監(jiān)控、內(nèi)存泄漏分析、任務(wù)性能分析及系統(tǒng)跟蹤等功能。
參考文獻(xiàn):
1. LDRA公司Zero Defect Software Development (ZDSD)_Manifesto Version 2.12
評(píng)論