15 或 20 年前,許多嵌入式系統(tǒng)由一個 8 位處理器和幾 KB 內(nèi)存以及可能有幾百行代碼組成。今天,汽車、ATM、手機和其他設(shè)備中嵌入式系統(tǒng)的爆炸式增長已經(jīng)極大地改變了這種動態(tài)。在以太網(wǎng)上看到多個 32 位和 64 位多核處理器并在這些系統(tǒng)中運行總計數(shù)十萬行代碼的多個應用程序的情況并不少見。
隨著這些設(shè)備變得越來越復雜,項目團隊確認軟件需求已經(jīng)過測試并且測試可以追溯到需求已經(jīng)成為一個重大負擔。在許多情況下,即使進行了廣泛的測試,團隊也可能不知道他們是否已成功滿足所有產(chǎn)品要求。
高度復雜性和對更高系統(tǒng)可靠性的需求也將質(zhì)量放在首位。較舊的嵌入式系統(tǒng)要么足夠簡單,要么不夠重要,無法花時間查找、跟蹤和修復軟件缺陷。今天,嵌入式系統(tǒng)中的缺陷與企業(yè)應用程序中的缺陷一樣普遍,甚至更為重要。由于更高的復雜性,能夠通過測試用例和需求追溯缺陷變得更加重要,這樣團隊就可以提高對問題及其影響的特性的透明度。
當今復雜的嵌入式系統(tǒng)可能有成百上千的需求,以及盡可能多或更多的測試用例。跟蹤和執(zhí)行這些測試用例,并使用這些信息來確保滿足要求,成為必須更好地控制其流程的團隊真正關(guān)心的問題。為了應對這一挑戰(zhàn),團隊需要一種自動化的方式來鏈接工件,以便有關(guān)一個工件的數(shù)據(jù)成為其他工件的信息。應用程序生命周期管理 (ALM) 軟件可以提供幫助。
可追溯性的價值
可追溯性是將需求鏈接到風險、測試用例、缺陷甚至源代碼等下游工件的實踐。鏈接支持在相關(guān)工件之間進行更改和進度的雙向通信。
例如,一旦產(chǎn)品有需求,驗證它的人就需要編寫測試用例,以確保正在開發(fā)的產(chǎn)品滿足設(shè)計要求。如果測試用例失敗,產(chǎn)生的缺陷會記錄在問題跟蹤系統(tǒng)中。
可追溯性使產(chǎn)品團隊和利益相關(guān)者能夠理解并從產(chǎn)品開發(fā)工件之間的關(guān)系中獲取有價值的信息。通過查看缺陷,可以確定尚未滿足哪些要求。團隊可以將此信息用作確定產(chǎn)品是否可以發(fā)貨的重要指南,還可以對缺陷進行分類以首先滿足最重要的要求。
但是有效的可追溯性可以為項目做更多的事情。如果安全風險被識別為產(chǎn)品的一部分,則這些風險可以與非功能性需求相關(guān)聯(lián),然后可以追蹤到下游工件。源代碼可以追溯到缺陷并返回到需求,從而關(guān)閉了設(shè)計、開發(fā)和測試之間的循環(huán)。同樣,當缺陷修復被重新檢入源代碼控制并運行測試以確認修復時,團隊和其他產(chǎn)品利益相關(guān)者非常清楚地知道相應的要求已經(jīng)得到滿足。
可追溯性還提供了通常無法以任何其他方式獲得的基本項目信息。它為測試人員提供了一種易于理解和可報告的產(chǎn)品質(zhì)量衡量標準。通過了解哪些需求仍未得到滿足,以及它們是否記錄了針對它們的問題,測試人員可以估計完成產(chǎn)品的剩余時間。最后,可追溯性使團隊能夠更好地了解剩余的工作,以及剩余工作的產(chǎn)品功能區(qū)域。
使用 Microsoft Word 或 Excel 管理需求、測試用例和缺陷已經(jīng)足夠具有挑戰(zhàn)性了。但是如果沒有真正的跟蹤系統(tǒng),就不可能通過測試用例跟蹤需求到缺陷再回到需求。
將可追溯性構(gòu)建到嵌入式項目中
產(chǎn)品團隊如何建立可追溯性?它從需求開始。一旦定義了功能需求,風險分析和緩解就開始了,測試人員生成測試用例,使他們能夠確定正在開發(fā)的產(chǎn)品是否滿足這些需求。
當測試人員運行測試用例時,通過的用例表明相關(guān)要求已得到滿足。如果測試用例失敗,測試人員會記錄與這些測試用例相關(guān)聯(lián)的缺陷,并通過鏈接記錄到被測需求。缺陷與相關(guān)的測試用例和測試運行相關(guān)聯(lián),提供了返回測試階段的鏈接。
理想情況下,此鏈接是自動完成的。雖然可以手動創(chuàng)建和維護項目工件之間的鏈接,但所涉及的工作是詳細且持續(xù)的。每當需求或測試用例發(fā)生變化時,都必須手動重新建立鏈接。手動創(chuàng)建和維護需求、測試用例和缺陷之間的鏈接所需的工作量很大,尤其是在幾乎每天都必須檢查和更新這些鏈接的情況下。
在大多數(shù)項目中,測試人員在不同的測試運行中多次執(zhí)行測試用例。當初始運行失敗時重新運行測試,并且需要驗證修復。隨著嵌入式軟件產(chǎn)品范圍的擴大以滿足更多要求,測試也會運行更多次以進行回歸。
測試也可以手動執(zhí)行,或者使用測試工具以自動化方式執(zhí)行。在實踐中,大多數(shù)團隊兩者都做。手動測試通常是第一次完成,并使用自動化工具進行記錄。除非功能發(fā)生重大變化,否則后續(xù)測試通常會自動運行。測試結(jié)果通過缺陷或成功的測試結(jié)果為可追溯性信息提供了基礎(chǔ)。兩者都可以追溯到需求和其他工件。
通過自動化測試和可追溯性,測試團隊有機會在高水平上執(zhí)行,在產(chǎn)品計劃內(nèi)完成測試,并向產(chǎn)品利益相關(guān)者提供有關(guān)質(zhì)量和需求滿足的有價值信息。這使得測試與所有利益相關(guān)者更加相關(guān),尤其是在產(chǎn)品開發(fā)的后期階段。
理想情況下,這從需求開始,但還必須包含測試管理、缺陷跟蹤和源代碼管理。對于具有安全影響的產(chǎn)品,還應納入風險管理和緩解措施。ALM 軟件(例如 Seapine Software 的 TestTrack)提供了從設(shè)計和開發(fā)項目的開始到結(jié)束創(chuàng)建、管理和鏈接工件的能力。圖 1 說明了可追溯性矩陣如何幫助團隊輕松確定缺陷或需求更改如何影響項目的其他部分。
圖 1: Seapine TestTrack 等應用程序生命周期管理解決方案的可追溯性使嵌入式項目團隊能夠快速輕松地了解缺陷和其他更改如何影響項目。
可追溯性和安全關(guān)鍵項目
可追溯性傳統(tǒng)上用于具有數(shù)百名工程師和測試人員以及數(shù)千個需求的大型開發(fā)項目。這主要是商業(yè)和軍用航空和太空系統(tǒng)領(lǐng)域,在這些領(lǐng)域中,對抗復雜性的信息需求超過了信息成本。這些系統(tǒng)可能需要數(shù)年時間才能開發(fā)并推向市場,這使得通過可追溯性獲得的信息在團隊成員離開和新成員到來時特別有價值。
但是通過自動化(例如 ALM 軟件提供的自動化),可追溯性的成本和工作量可以降低到對較小的項目和更短的時間表有意義的程度。需求和下游工件之間的自動可追溯性,以及從缺陷到需求的上游追溯,使得識別和溝通開發(fā)障礙和問題更快、更透明。
智能手機、汽車系統(tǒng)和智能工業(yè)控制設(shè)備等項目受益于更好的可追溯性。隨著越來越多的測試團隊采用自動化 ALM 方法來收集和傳播可追溯性信息,產(chǎn)品質(zhì)量將繼續(xù)提高,即使系統(tǒng)變得更加復雜。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19032瀏覽量
228449 -
智能手機
+關(guān)注
關(guān)注
66文章
18363瀏覽量
179468 -
嵌入式
+關(guān)注
關(guān)注
5052文章
18909瀏覽量
300739
發(fā)布評論請先 登錄
相關(guān)推薦
評論