李海海 陳曉軒
(卡斯柯信號(hào)有限公司 上海市 200070)
軟件測(cè)試是嵌入式軟件開(kāi)發(fā)中一個(gè)重要的環(huán)節(jié),軟件測(cè)試過(guò)程是一種抽象的模型,用于定義軟件測(cè)試流程和方法,一種好的測(cè)試模型,在一定程度上決定了軟件開(kāi)發(fā)成本以及質(zhì)量,在整個(gè)軟件生命周期中,越早的發(fā)現(xiàn)問(wèn)題,整個(gè)項(xiàng)目的費(fèi)用也就越低。
在鐵路系統(tǒng)中,安全嵌入式軟件被廣泛應(yīng)用,為了保證產(chǎn)品的安全和可靠性,測(cè)試流程同樣重要,目前傳統(tǒng)的模型為V 模型以及W 模型,但是這兩種模型都存在一定的問(wèn)題,無(wú)法滿足鐵路安全軟件的安全流程認(rèn)證要求,為了更好的滿足安全認(rèn)證的要求,實(shí)現(xiàn)對(duì)安全軟件流程SIL4 的要求,對(duì)W 進(jìn)行改進(jìn),完善了測(cè)試文檔測(cè)試的流程,以保證測(cè)試的準(zhǔn)確性和有效性。
V 模型目前廣泛應(yīng)用于嵌入式軟件的測(cè)試過(guò)程,如圖1 所示,測(cè)試分別是從單元測(cè)試、軟件集成測(cè)試、軟件確認(rèn)測(cè)試、系統(tǒng)集成測(cè)試,系統(tǒng)確認(rèn)測(cè)試,驗(yàn)收測(cè)試。V 模型的優(yōu)點(diǎn)是明確的定義了測(cè)試階段和開(kāi)發(fā)階段的對(duì)應(yīng)關(guān)系,但是缺點(diǎn)也是很明顯:
(1)測(cè)試活動(dòng)是在編碼以后才介入,早期的需求設(shè)計(jì)導(dǎo)致錯(cuò)誤可能在后期才發(fā)現(xiàn),導(dǎo)致返工,基于錯(cuò)誤越早發(fā)現(xiàn),成本越低的原則,會(huì)導(dǎo)致成本增大;
(2)人員利用率低,早期測(cè)試等著編碼完成,后期開(kāi)發(fā)人員編碼完成后,需要等著測(cè)試提交缺陷,所以這種模型已經(jīng)如法滿足要求。
如圖2 所示,W 模型是V 模型的改進(jìn), W 模型由兩個(gè)“V”重疊而成。其中一個(gè)“V”表示開(kāi)發(fā)過(guò)程,包括用戶需求、系統(tǒng)需求說(shuō)明、系統(tǒng)架構(gòu)設(shè)計(jì),軟件需求說(shuō)明,軟件架構(gòu)設(shè)計(jì),軟件詳細(xì)設(shè)計(jì),編碼。另一個(gè)“V”表示測(cè)試過(guò)程,包括用戶需求分析、系統(tǒng)需求測(cè)試、系統(tǒng)架構(gòu)測(cè)試,軟件需求測(cè)試,軟件架構(gòu)測(cè)試,軟件單元測(cè)試,W 模型的優(yōu)點(diǎn)有:
(1)W 模型保證了需求的完整性,準(zhǔn)確性和一致性,能較早的發(fā)現(xiàn)問(wèn)題,避免后期編碼人員的功能實(shí)現(xiàn)錯(cuò)誤;
(2)人員利用率高,前期測(cè)試人員介入,也能夠較早了解產(chǎn)品;
(3)測(cè)試與開(kāi)發(fā)并行且相對(duì)獨(dú)立。但是W 模型也存在一定安全隱患,在前期注重的是開(kāi)發(fā)文檔的測(cè)試,沒(méi)有對(duì)測(cè)試文檔進(jìn)行測(cè)試,不能在前期發(fā)現(xiàn)測(cè)試文檔的準(zhǔn)確性,后期可能導(dǎo)致測(cè)試執(zhí)行的錯(cuò)誤。
圖3 為3V 模型整個(gè)流程圖,在W 模型的基礎(chǔ)上增加一個(gè)V,V 左邊主要是用例的設(shè)計(jì)以及用例的確認(rèn)和驗(yàn)證,“V”的右邊主要是測(cè)試報(bào)告,以控制階段的進(jìn)行,詳細(xì)描述如下:
圖1:V 模型流程圖
圖2:W 模型流程圖
(1)用戶需求階段:①通過(guò)分析用戶需求,識(shí)別不可能實(shí)現(xiàn)的用戶需求;②通過(guò)分析,明確細(xì)化客戶目的。用戶需求階段是項(xiàng)目的開(kāi)始,與顧客的交談不夠多和不夠徹底,一些重要的需求被忽視,會(huì)導(dǎo)致后續(xù)開(kāi)發(fā)工作有大的偏差,因此,需要做好用戶需求的分析,能夠保證功能的不遺漏。
(2)系統(tǒng)需求設(shè)計(jì)階段:①通過(guò)驗(yàn)證系統(tǒng)需求和用戶需求之間的追蹤關(guān)系,驗(yàn)證系統(tǒng)需求的完整性和一致性;②通過(guò)編寫用例,確定系統(tǒng)功能的可測(cè)性;③通過(guò)系統(tǒng)確認(rèn)用例的V&V,驗(yàn)證系統(tǒng)測(cè)試用例準(zhǔn)確性和追蹤的完整性,防止漏測(cè)功能。
(3)系統(tǒng)架構(gòu)設(shè)計(jì)階段:①通過(guò)驗(yàn)證架構(gòu)和系統(tǒng)需求之間的追蹤關(guān)系,驗(yàn)證系統(tǒng)架構(gòu)的完整性與一致性,并驗(yàn)證軟件之間交互數(shù)據(jù)的一致性;②通過(guò)編寫用例,以及對(duì)系統(tǒng)集成用例的V&V,驗(yàn)證系統(tǒng)集成用例的準(zhǔn)確性和追蹤的完整性,確保軟件之間數(shù)據(jù)交互的準(zhǔn)確性。
圖3:3V 模型流程圖
(4)軟件需求設(shè)計(jì)階段:①通過(guò)驗(yàn)證和確認(rèn)軟件需求和系統(tǒng)架構(gòu)之間的追蹤關(guān)系,驗(yàn)證各個(gè)軟件功能的完整和一致性;②通過(guò)編寫軟件確認(rèn)用例,確定軟件功能的可測(cè)性;③通過(guò)軟件確認(rèn)用例的V&V,驗(yàn)證軟件確認(rèn)測(cè)試用例準(zhǔn)確性和追蹤的完整性,防止漏測(cè)功能。
(5)軟件架構(gòu)設(shè)計(jì)階段:①通過(guò)驗(yàn)證和確認(rèn)軟件架構(gòu)和軟件需求之間的追蹤關(guān)系,軟件架構(gòu)與軟件需求的一致性,驗(yàn)證軟件模塊之間接口的一致性;②通過(guò)編寫軟件集成用例并對(duì)軟件集成用例的V&V,驗(yàn)證軟件集成測(cè)試用例準(zhǔn)確性和追蹤的完整性,防止漏測(cè)模塊之間的接口數(shù)據(jù)。
(6)軟件概要設(shè)計(jì)階段:① 通過(guò)驗(yàn)證和確認(rèn)軟件詳細(xì)設(shè)計(jì)與軟件建構(gòu)之間的追蹤關(guān)系,驗(yàn)證詳細(xì)設(shè)計(jì)的完整性和準(zhǔn)確性,提編碼提供詳細(xì)的設(shè)計(jì)依據(jù);② 通過(guò)編寫單元測(cè)試用并對(duì)單元測(cè)試用例的V&V,驗(yàn)證了單元測(cè)試用例的準(zhǔn)確性和追蹤完整性。
(7)編碼到軟件單元測(cè)試階段以及報(bào)告階段:完成編碼后,測(cè)試人員依據(jù)單元測(cè)試用例執(zhí)行測(cè)試,完成對(duì)軟件的動(dòng)態(tài)測(cè)試以及靜態(tài)的代碼走讀,如有問(wèn)題,提交缺陷,編碼問(wèn)題只需對(duì)應(yīng)軟件概要設(shè)計(jì)修改,待測(cè)試通過(guò),提交單元測(cè)試通過(guò)的測(cè)試報(bào)告。
(8)其他階段的測(cè)試:為了防止下一階段測(cè)試無(wú)效,下一階段必須在收到上一階段測(cè)試通過(guò)報(bào)告才能開(kāi)展。
對(duì)于安全軟件的開(kāi)發(fā)來(lái)說(shuō),基于3V 模型的測(cè)試模型有利于通過(guò)流程來(lái)保證軟件質(zhì)量,同時(shí)測(cè)試人員的早期介入,也能更好的對(duì)產(chǎn)品了解,不僅僅是前期通過(guò)文檔質(zhì)量來(lái)保證開(kāi)發(fā)代碼的質(zhì)量,更是通過(guò)技術(shù)文檔來(lái)保證產(chǎn)品的開(kāi)發(fā)質(zhì)量,在我們進(jìn)行開(kāi)發(fā)文檔測(cè)試的同時(shí),我們也對(duì)后面開(kāi)發(fā)階段對(duì)應(yīng)的測(cè)試階段-單元測(cè)試、軟件集成測(cè)試、軟件確認(rèn)測(cè)試、系統(tǒng)集成測(cè)試、系統(tǒng)確認(rèn)測(cè)試以及驗(yàn)收測(cè)試做出測(cè)試設(shè)計(jì)以及驗(yàn)證,保證了后面測(cè)試質(zhì)量。3V 模型完全符合SIL4 軟件的開(kāi)發(fā)流程,可以廣泛應(yīng)用到安全產(chǎn)品。
在采用3V 模型時(shí),對(duì)于“V”模型左邊,當(dāng)某個(gè)階段發(fā)現(xiàn)問(wèn)題時(shí),我們只要回到上一個(gè)階段即可,不必回答最初,有利于節(jié)省時(shí)間,但是在“V”模型右邊,當(dāng)某個(gè)測(cè)試階段發(fā)現(xiàn)問(wèn)題并修改時(shí),往往要回到單元測(cè)試開(kāi)始,所以3V 模型不適合敏捷開(kāi)發(fā)。
本文結(jié)合軟件測(cè)試模型的實(shí)際原則,提出一種新的安全軟件測(cè)試模型-W 模型,該模型吸取了V 模型和W 模型的有點(diǎn),同時(shí)彌補(bǔ)了改模型的不足之處,體現(xiàn)了“盡早測(cè)試,盡早發(fā)現(xiàn)問(wèn)題,開(kāi)發(fā)測(cè)試文檔全面測(cè),代碼文檔全面測(cè)”的原則,在遵循安全軟件測(cè)試原則上,將問(wèn)題盡早暴漏,減少反正,也通過(guò)流程來(lái)全面確保文檔的正確性。