嵌入式軟件測試策略 軟件測試
對于嵌入式軟件測試或叫交叉測試(cross-test),在測試的各個(gè)階段有著(zhù)通用的策略:
1.單元測試:
所有單元級測試都可以在主機環(huán)境上進(jìn)行,除非少數情況,特別具體指定了單元測試直接在目標環(huán)境進(jìn)行。最大化在主機環(huán)境進(jìn)行軟件測試的比例,通過(guò)盡可能小的目標單元訪(fǎng)問(wèn)所有目標指定的界面。
在主機平臺上運行測試速度比在目標平臺上快的多,當在主機平臺完成測試,可以在目標環(huán)境上重復作一簡(jiǎn)單的確認測試,確認測試結果在主機和目標機上沒(méi)有被他們的不同影響。在目標環(huán)境上進(jìn)行確認測試將確定一些未知的,未預料到的,未說(shuō)明的主機與目標機的不同。例如,目標編譯器可能有bug,但在主機編譯器上沒(méi)有。
2.集成測試:
軟件集成也可在主機環(huán)境上完成,在主機平臺上模擬目標環(huán)境運行,當然在目標環(huán)境上重復測試也是必須的,在此級別上的確認測試將確定一些環(huán)境上的問(wèn)題,比如內存定位和分配上的一些錯誤。
在主機環(huán)境上的集成測試的使用,依賴(lài)于目標系統的具體功能有多少。有些嵌入式系統與目標環(huán)境耦合的非常緊密,若在主機環(huán)境做集成是不切實(shí)際的。一個(gè)大型軟件的開(kāi)發(fā)可以分幾個(gè)級別的集成。低級別的軟件集成在主機平臺上完成有很大優(yōu)勢,越往后的集成越依賴(lài)于目標環(huán)境。
3.系統測試和確認測試
所有的系統測試和確認測試必須在目標環(huán)境下執行。當然在主機上開(kāi)發(fā)和執行系統測試,然后移植到目標環(huán)境重復執行是很方便的。對目標系統的依賴(lài)性會(huì )妨礙將主機環(huán)境上的系統測試移植到目標系統上,況且只有少數開(kāi)發(fā)者會(huì )卷入系統測試,所以有時(shí)放棄在主機環(huán)境上執行系統測試可能更方便。
確認測試最終的實(shí)施舞臺必須在目標環(huán)境中,系統的確認必須在真實(shí)系統之下測試,而不能在主機環(huán)境下模擬。這關(guān)系到嵌入式軟件的最終使用。
包括恢復測試、安全測試、強度測試、性能測試,已超出了軟件測試的范疇,本文暫不討論。
使用有效的cross-test測試策略可極大的提高嵌入式軟件開(kāi)發(fā)測試的水平和效率,當然正確的測試工具使用也是必不可少的:
總結一下,應用以上測試工具進(jìn)行.Cross-test時(shí)的策略:
A) 使用測試工具的插裝功能(主機環(huán)境)執行靜態(tài)測試分析,并且為動(dòng)態(tài)覆蓋測試準備好一插裝好的軟件代碼。
B) 使用源碼在主機環(huán)境執行功能測試,修正軟件的錯誤和測試腳本中的錯誤。
C) 使用插裝后的軟件代碼執行覆蓋率測試,添加測試用例或修正軟件的錯誤,保證達到所要求的覆蓋率目標。
D) 在目標環(huán)境下重復(B),確認軟件在目標環(huán)境中執行測試的正確性。
E) 若測試需要達到極端的完整性,最好在目標系統上重復(C),確定軟件的覆蓋率沒(méi)有改變。
通常在主機環(huán)境執行多數的測試,只是在最終確定測試結果和最后的系統測試才移植到目標環(huán)境,這樣可以避免發(fā)生訪(fǎng)問(wèn)目標系統資源上的瓶頸,也可以減少在昂貴資源如在線(xiàn)仿真器上的費用。另外,若目標系統的硬件由于某種原因而不能使用時(shí),最后的確認測試可以推遲直到目標硬件可用,這為嵌入式軟件的開(kāi)發(fā)測試提供了彈性。設計軟件的可移植性是成功進(jìn)行cross-test的先決條件,它通?梢蕴岣哕浖質(zhì)量,并且度軟件的維護大有益處。以上所提到的測試工具,都可以通過(guò)各自的方式提供測試在主機與目標之間的移植,從而使嵌入式軟件的測試得以方便的執行。
使用有效的cross-test測試策略可極大的提高嵌入式軟件開(kāi)發(fā)測試的水平和效率,提高嵌入式軟件的質(zhì)量。
附錄:
1)HOST-TARGET的連接方法簡(jiǎn)介:

直接連接
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/