嵌入式軟體的測試(一)

嵌入式軟體、客戶訂製軟體、套裝軟體三者,那一個最難設計製作?那一個又最簡單?這些問題也許因為立場或看法的不同而會有不同的答案;不過我是認為嵌入式軟體應該是最簡單的。主要的依據是一般嵌入式軟體都只需要跟硬體打交道,只要都打點好就行;但是如客戶訂製軟體就不一樣,必須跟人打交道,而偏偏每個人的想法或看法卻不一定相同,很難搞定。套裝軟體就更複雜了,在設計的時候可能還不知道將來是那些人會買來用的。

順著這個邏輯,嵌入式軟體的測試相對而言也會是比較單純的。(補充一下,如果沒有領域知識,那任何軟體的設計製作都會是很難的。所以如果是因為對於嵌入式軟體是怎麼一回事還不太清楚而認為嵌入式軟體最難的朋友,也許在開始接觸過一陣子之後就會改變想法了。)

嵌入式軟體的測試,主要是組態測試(configuration test)與控制測試(control test)。組態測試是要找出軟體模組之間可能的不協調(synchronization),而控制測試是要找出因為時間掌握(timing)沒有考慮週到所發生的不協調。以嵌入式系統開機功能為例,負責開機功能的軟體先要分別檢查所有的硬體(如記憶體及其他晶片組等等)是否能正常運作。最簡單的方式是循序一樣一樣來,但是如此開機時間就長,使用者無法接受;因此投機的方式就是只檢查最主要的幾樣,其它等將來要用的時候再檢查,節省時間。設計這種測試案例,是最典型的嵌入式軟體的組態測試技術。

如果對這個有興趣,可能還需要去參考一下軟體工程書上給予「組態」的定義:一組為達成某一共同目的、由組態項目所形成的集合。組態測試就是要設法證明某個嵌入式軟體的組態事實上不完善,不符合組態的定義。(PS. 希望這一段寫得不要太玄。)

留言

這個網誌中的熱門文章

CMMI是什麼?

CRC cards - 非正規物件導向發展技術

談談OCP