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