嵌入式軟件測試的秘訣在哪里 軟件測試
在嵌入式軟件開(kāi)發(fā)過(guò)程中,一般來(lái)說(shuō),花在測試和花在編碼的時(shí)間比為3:1(實(shí)際上可能更多)。這個(gè)比例隨著(zhù)你的編程和測試水平的提高而不斷下降,但不論怎樣,軟件測試對一般人來(lái)講很重要。很多年前,一位開(kāi)發(fā)人員為了在對嵌入式有更深層次的理解,向Oracle詢(xún)問(wèn)了這樣的一個(gè)問(wèn)題:我怎么才能知道并懂得我的系統到底在干些什么呢? Oracle面對這個(gè)問(wèn)題有些吃驚,因為在當時(shí)沒(méi)有人這么問(wèn)過(guò),而同時(shí)代的嵌入式開(kāi)發(fā)人員問(wèn)的最多的大都圍繞“我怎么才能使程序跑的更快”、“什么編譯器最好”等膚淺的問(wèn)題。所以,面對這個(gè)不同尋常卻異乎成熟的問(wèn)題,Oracle感到欣喜并認真回復了他:你的問(wèn)題很有深度很成熟,因為只有不斷地去深入理解才有可能不斷地提高水平。并且Oracle為了鼓勵這位執著(zhù)的程序員,把10條關(guān)于嵌入式軟件開(kāi)發(fā)測試的秘訣告訴了他:
1.懂得使用工具
2.盡早發(fā)現內存問(wèn)題
3.深入理解代碼優(yōu)化
4.不要讓自己大海撈針
5.重現并隔離問(wèn)題
6.以退為進(jìn)
7.確定測試的完整性
8.提高代碼質(zhì)量意味著(zhù)節省時(shí)間
9.發(fā)現它,分析它,解決它
10.利用初學(xué)者的思維
這十條秘訣在業(yè)界廣為流傳,使很多人受益。本文圍繞這十條秘訣展開(kāi)論述。
1.懂得使用工具
通常嵌入式系統對可靠性的要求比較高。嵌入式系統安全性的失效可能會(huì )導致災難性的后果,即使是非安全性系統,由于大批量生產(chǎn)也會(huì )導致嚴重的經(jīng)濟損失。這就要求對嵌入式系統,包括嵌入式軟件進(jìn)行嚴格的測試、確認和驗證。隨著(zhù)越來(lái)越多的領(lǐng)域使用軟件和微處理器控制各種嵌入式設備,對門(mén)益復雜的嵌入式軟件進(jìn)行快速有效的測試愈加顯得重要。
就象修車(chē)需要工具一樣,好的程序員應該能夠熟練運用各種軟件工具。不同的工具,有不同的使用范圍,有不同的功能。使用這些工具,你可以看到你的系統在干些什么,它又占用什么資源,它到底和哪些外界的東西打交道。讓你郁悶好幾天的問(wèn)題可能通過(guò)某個(gè)工具就能輕松搞定,可惜你就是不知道。那么為什么那么多的人總是在折騰個(gè)半死之后才想到要用測試工具呢?原因很多,主要有兩個(gè)。一個(gè)是害怕,另一個(gè)是惰性。害怕是因為加入測試用具或測試模塊到代碼需要技巧同時(shí)有可能引入新的錯誤,所以他們總喜歡寄希望于通過(guò)不斷地修改重編譯代碼來(lái)消除bug,結果卻無(wú)濟于事。懶惰是因為他們習慣了使用printf之類(lèi)的簡(jiǎn)單測試手段。下面來(lái)介紹一些嵌入式常用的測試工具。
.源碼級調試器[Source-level Debugger]
這種調試器一般提供單步或多步調試、斷點(diǎn)設置、內存檢測、變量查看等功能,是嵌入式調試最根本有效的調試方法。比如VxWorks TornadoII提供的gdb就屬于這一種。
.簡(jiǎn)單實(shí)用的打印顯示工具[printf]
printf或其它類(lèi)似的打印顯示工具估計是最靈活最簡(jiǎn)單的調試工具。打印代碼執行過(guò)程中的各種變量可以讓你知道代碼執行的情況。但是,printf對正常的代碼執行干擾比較大(一般printf占用CPU比較長(cháng)的時(shí)間),需要慎重使用,最好設置打印開(kāi)關(guān)來(lái)控制打印。
.ICE或JTAG調試器[In-circuit Emulator]
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/