Global Sources
電子工程專輯
 
電子工程專輯 > 測試與測量
 
 
測試與測量  

中小型軟體開發商如何進行嵌入式系統軟體測試

上網時間: 2003年11月30日     打印版  Bookmark and Share  字型大小:  

關鍵字:軟體測試  嵌入式軟體  嵌入式系統  測試  software test 

本文討論了中小型企業在嵌入式軟體品質保證工作中的一些問題。從工作的準備到具體的經驗,試圖提供一條循序漸進,各階段重點突出的途徑,因而幫助中小型企業不斷提高嵌入式系統軟體的品質。

近年來積體電路技術的發展,使越來越多的嵌入式系統出現在我們面前,這個趨勢使得許多傳統產業中的中小型企業設立了自己的嵌入式軟體開發團隊。它們的共同特徵主要有:

a. 嵌入式軟體開發╱測試人員在10人以下;


b. 嵌入式軟體開發小組╱部門在近幾年內設立;


c. 所開發的產品,存在不含有嵌入式軟體的舊型號。

目前國內的嵌入式系統產品,絕大部份是在這種情況下開發出來的。顯然,這時除了嵌入式軟體本身所具備的周邊環境複雜,介面簡陋、可用性和即時性要求高等特徵之外,在一個中小型企業中新建嵌入式軟體開發團隊,也帶來了其它難題。

中小型企業的典型問題

a. 開發周期短


導致縮短開發周期的壓力主要來自兩個方面:資金短缺和缺乏技術規劃。後者在我們所討論的情況中尤為突出。由於嵌入式軟體帶來產品功能,性能和成本上的變化,往往引起市場的混亂,使新產品推出的時機更加難以把握。同時中小型企業在市場中的位置,決定了它們難以負責市場引導的角色,而採取更為靈活務實的策略。這些因素使我們無法得到一個中長期規劃,從容的進行開發和測試。

b. 缺少合格的品管人員


除了人力市場上難以找到合適的應聘者之外,中小型企業的開發任務數量上呈現的波動性,使它更需要一個精悍的核心團隊,很難設立專職軟體品管職務編制。同時,一些典型的行政結構和工作流程上的問題,比如一線開發人員兼任管理職務,缺乏文件和缺陷管理工具和制度等,也損害了品管人員的主動性,不利於他們能力的成長。

c. 品質意識較弱


企業家大多精明而實際,他們對自己的產品心中有數,品質也在掌控之中。品質意識弱主要還是指消費者。畢竟理智而挑剔的消費群體,是規格市場所必需的。目前不僅普通消費者對嵌入式軟體缺乏了解,相關部門往往也沒有具體的檢測要求,即使對軟體失效可能威脅人員生命的產品都是如此。中小型企業更容易過度地順應這種環境,這就在客觀上助長了低質產品的流通,也限制了企業部署品管工作的展開。

以上三個問題,分別是開發部主管,企業領導人和相關部門需要解決的。

準備工作

軟體品管主要涉及兩部份工作:提高發現缺陷的能力和改變軟體品質平衡點。對於新設立的品保部門╱小組,前期焦點主要在前者,而一段時間之後工作重點必然轉移到後者。軟體品質的平衡點出現在這種情形下:缺陷修復所對應的工作量和複雜度,引出數量相當的一批新缺陷。這種平衡點主要由團隊能力,開發平台,工作流程和開發對象的規模和難度等因素決定。在適當的預算下,使品質平衡點高於顧客的預期,並且有足夠的潛力和擴充性保持這一關係,是軟體品管工作的目標。

對於這項工作在企業活動中的定位,我們也應該有清醒的認識。以獲利為目標的企業不可能無休止的追求高品質,準確的說,企業需要的是對品質的調節能力,保證在滿足顧客的需要的同時獲得盡可能大的利潤,軟體品管則歸屬於這一工作範疇(圖1)。

重視缺陷的評估分級

速度能夠解決很多問題,根據企業實際情況選擇恰當的切入點相當重要。常見的失誤是把過多的資源投放在盡可能多地發現缺陷上,而忽略了不同種類缺陷的不同價值,造成了浪費。事實上,從系統的軟硬體資源,通訊頻寬的冗餘,架構設計調整餘地,需求變化的可能性,到開發過程改進上的潛力,諸多因素左右著這個問題的最佳答案。選擇便於修復,而又有現實的市場意義的缺陷,迅速而徹底地完成準備→測試→改進的過程,而不是追求更高的測試覆蓋率,會為後面的工作贏得寶貴而真實的體驗。

工作中總是充滿了不確定性,利用不完整資訊進行判斷是工作中固有的一部份,更好的辦法則是進行有前瞻性的規劃。技術管理者應對產品品質的大致情況,調整空間有所預見,並且有針對性地佈置調整的方法,而不需要進行全面的測試後,才能對缺陷進行統計,評估和分級。

設立文件和缺陷管理制度

缺乏文件管理制度,無論黑箱還是白箱測試都不能獲得所必需的準確輸入資訊。而缺陷管理工具,對於較複雜系統的改進而言,更是必不可少的。在實際工作中,我們也曾經嘗試手工管理缺陷,在一段時間的混亂之後最終決定開發自己的缺陷管理系統。這套軟體給測試人員,製造部、品管部、採購部和行銷中心都分配缺陷的登記賬號。系統使用B/S結構,並且實現了郵件自動通知功能,用戶名和密碼與windows域用戶同步,這使內部網路上所有電腦都可以方便地登錄使用。

幾點經驗

1. 正規的開發方法

這個標題容易使人聯想到一連串時髦的術語,也容易使強調靈活簡便的中小型企業產生排斥感。但是實踐證實,如果人員能力和系統資源允許的話,這是降低人員工作強度,保證品質的一個好途徑。我們的嘗試是從提高軟體的可驗證性開始的。為了降低測試的難度,我們希望將關鍵模組的行為以有限狀態機描述,並且提供以下明確的介面,以方便地測試每一次狀態變化:

a. 設置被測試對象的狀態;


b. 修改輸入數值或者觸發事件;


c. 獲得被測試對象的狀態;


d. 獲得輸出數值或者作業類型。

顯然這樣的程式碼很容易測試,但是卻會佔用更多的程式碼空間。為了確認額外開銷的實際大小,我們設計了基於這種建模方式的C程式碼樣本,並且在共創聯盟(http://cosoft.org.cn/projects/mirage/)和sourceforge(http://sourceforge.net/projects/mirages/)上註冊了相應的程式碼產生工具mirage計畫(GPL)。在實現了一個簡單的原型後,我們沒有繼續去完善這個程式碼產生工具。但是實踐告訴我們,可以非常迅速地根據FSM編寫牢固的程式碼框架,手工完善之後可以得到高品質的易於測試的原始程式碼,因而把實現階段的壓力轉移到設計階段,並且在簡潔的模型中進行。這些程式碼在時間效率上表現出色,但是空間上會有一定的額外開銷。對於越複雜的軟體,這種方法帶來的益處越顯著。同樣的思路也可以用在匯編程式碼中,最近我們在PICmicro中,實現了相應的匯編程式碼樣本,甚至應用在僅有4k指令空間的緊密環境中。

2. 適當的工具配置計畫

在前期我們往往需要抵制購買昂貴設備的誘惑,而把重點放在培育優秀的人員和最佳化開發流程上面,根據工作的進展逐次添置設備。需要特別注意的是,關注嵌入式軟體測試的不僅僅是測試工具的開發商和晶片的設計者,整合開發環境的供應商,也越來越多地考慮如何為測試提供更多地支援。結合實際的需要,靈活利用好這些資源完全可以在很少的投入下,搭建起簡單實用的測試過程。

下面我們舉一個實際的例子。Keil公司的μVision2 IDE較新的版本支援AGSI[1]。透過AGSI可以開發一個動態連接庫,用戶可以把硬體模擬器與μVision2的軟體模擬環境協同起來。

如上所述,我們在一個軟體模擬環境內,對狀態變化進行測試需要的即時功能有:


a. 改寫數據記憶體╱暫存器╱的數值;


b. 獲得數據記憶體╱暫存器的數值;


c. 模擬環境主動彈出事件通知(斷點等);

這些恰好都是AGSI所能提供的,將Keil公司提供的示範程式碼作簡單修改,我們完成了原型並驗證了這個設計思路,同時μVision2本身也提供了覆蓋率統計,性能分析等軟體測試所需要的功能。

類似的例子還有很多,大家掌握軟體測試的基本原理之後,可以很自如的作出工具配置的計畫來。把它和團隊結合在一起,才能逐步達成完美的效果。

強調測試自動化

測試或許是技術領域中最可能、也是最需要提高自動化程度的工作,對於資源緊缺的中小型企業而言更是如此。測試自動化主要包括:

a. 測試準備的自動化(如驅動器的產生);


b. 測試用例的自動化產生;


c. 測試的實施,記錄和診斷的自動化。

關鍵在前兩點,目前主要有兩種途徑:


a. 利用被測試對象設計階段的建模結果;


b. 對原始程式碼進行自動分析。

正如上面提到的,利用移植技術我們可以產生高品質的原始程式碼。如果因程式碼空間的壓力無法採用,那麼在測試過程中替代人工版本的實現,或者批次產生╱驗證測試用例上還是適用的。這其實是第一種途徑;而對原始程式碼進行自動分析,往往超過中小型企業的技術能力,通常在商業化的測試工具中運用。

發展趨勢分析

嵌入式系統是一個高速發展的領域,相應地嵌入式軟體測試技術也必然隨後跟進。因為微處理器的速度越來越高,測試的難度越來越大。其次,隨著整合度的提高,晶片開發商開始把測試支援作為產品的賣點。最後,可重配置元件的發展,將使軟體與硬體的結合越來越緊密,無論在開發時還是在執行時[2]。這時候嵌入式軟體測試相應的轉變為嵌入式系統測試。當然,市場、企業和有關部門之間的互動,也是我們需要關注和預估的。

參考:


1. Application Note 154: Implementing μVision2 DLL's for Advanced Generic Simulator Interface,Keil。


2. http://www。icsa。informatics。ed。ac。uk/research/mission-long。html

作者:黃勇剛


副總工程師、測試組組長


北京市崇正華盛應急照明系統有限責任公司


Email: huangyg@czhs.com.cn





投票數:   加入我的最愛
我來評論 - 中小型軟體開發商如何進行嵌入式系統軟...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首