引言 隨著(zhù)嵌入式系統硬件體系結構的變化,嵌入式系統的發(fā)展趨勢向嵌入式系統高端,即嵌入式軟件系統轉移,具體體現在嵌入式操作系統趨于多樣和應用軟件日漸復雜。由于嵌入式系統軟硬件功能界限模糊,研究如何進(jìn)行系統測試和進(jìn)行質(zhì)量評估來(lái)保證嵌入式系統的產(chǎn)品質(zhì)量具有重要意義。 首先,這里明確嵌入式系統的系統測試定義,是將開(kāi)發(fā)的軟件系統(包括嵌入式操作系統和嵌入式應用軟件)、硬件系統和其它相關(guān)因素(如人員的操作、數據的獲取等)綜合起來(lái),對整個(gè)產(chǎn)品進(jìn)行的全面測試。嵌入式系統的系統測試比PC系統軟件測試要困難得多,主要體現如下: ①測試軟件功能依賴(lài)不需編碼的硬件功能,快速定位軟硬件錯誤困難; ②強壯性測試、可知性測試很難編碼實(shí)現; ③交叉測試平臺的測試用例、測試結果上載困難; ④基于消息系統測試的復雜性,包括線(xiàn)程、任務(wù)、子系統之間的交互,并發(fā)、容錯和對時(shí)間的要求; ⑤性能測試、確定性能瓶頸困難; ⑥實(shí)施測試自動(dòng)化技術(shù)困難。 1 測試方法 根據Goodenough和Gerhart提出的軟件測試充分性準則可知,軟件測試具有非復合性的特點(diǎn),也就是說(shuō),即使以軟件所有成分都進(jìn)行了充分的測試,也并不意味著(zhù)整個(gè)軟件的測試已經(jīng)充分。所以,即使通過(guò)了需求測試、設計測試、編碼測試,并不意味著(zhù)已經(jīng)完全了充分的測試,還要進(jìn)行軟硬件全面測試,即系統測試。正確的系統測試方法能設計出良好的測試事例,而良好的測試事例是測試成功的關(guān)鍵。測試事例質(zhì)量特性主要有以下幾點(diǎn)。 *檢驗性:檢測軟件缺陷的有效性,是否能發(fā)現缺陷或至少可能發(fā)現缺陷。 *可仿效性:可以支持測試多項內容,減少測試事例的數量。 *開(kāi)銷(xiāo):測試事例的執行、分析和調試是否經(jīng)濟。 *修改性:每次軟件修改后對測試事例的維護成本。 測試方法不僅要保證測試事例具有發(fā)現缺陷的高可移植性,而且還要保證測試事例設計的經(jīng)濟有效。因此,在實(shí)際測試工作中,將嵌入式系統的測試方法分類(lèi)如下:根據測試是否動(dòng)態(tài)運行被測程序分為靜態(tài)測試方法和動(dòng)態(tài)測試方法;根據測試階段分為需求測試方法、設計測試方法、編碼測試(單元測試、集成測試)方法及系統測試方法;根據測試目的分為功能測試、性能測試、可靠性測試(容錯性、可恢復性、成熟度測試*及信息安全保護等測試。參看表1嵌入式軟件測試方法對照。其中“√”代表相關(guān)性。所有這些方法的具體定義這里不一一介紹。由于不同的嵌入式系統面向的應用不同,測試方法的側重也很不相同。本文后面將對一個(gè)具體的便攜式信息處理嵌入式系統(PDA、便攜式翰林電子書(shū))的系統測試方法詳細說(shuō)明。 表1 嵌入式軟件測試方法及階段對照表
2 可靠性評估 可靠性是嵌入式系統最重要的質(zhì)量指標。ISO9000國示質(zhì)量標準(ISO/IEC 9126-1991)規定,軟件產(chǎn)品的可靠性含義是:在規定的一段時(shí)間和條件下,軟件能維持其性能水平的能力有關(guān)的一組屬性,可用成熟性、容錯性、易恢復性三個(gè)基本子特性來(lái)度量。根據我們在評估嵌入式系統中的成功經(jīng)驗,一般采取以下簡(jiǎn)單有效的評估方法(可以采用百分制或十分制)。 (1)成熟性度量 ①錯誤發(fā)現率DDP(Defect Detection Percentage)。在測試中查找出來(lái)的錯誤越多,實(shí)際應用中出錯的機會(huì )就越小,軟件也就越成熟。 DDP=測試發(fā)現的錯誤數量/已知的全部錯誤數量 已知的全部錯誤數量是測試已發(fā)現的錯誤數量加上可能會(huì )發(fā)現的錯誤數量之和。 ②測試覆蓋率度量。測試的覆蓋率,可以用測試項目的數量和內容進(jìn)行度量。除此之外,如果測試軟件的數量較大,還要考慮數據量。測試的覆蓋率,可以根據表2所示在測試指標進(jìn)行評價(jià)。通過(guò)檢查這些指標達到的程度,就可以度量出測試內容的覆蓋程度。 表2 測試覆蓋程度表
表3 可信度測試表
注意,對于最大值與最小值的差值超過(guò)5的情況,應該重新測試響應功能。 (2)容錯性評估 容錯性評估分為控制容錯性評估、數據容錯性評估、硬件故障恢復容錯性評估: 容錯性=以下各條款評分之和÷條款數 控制容錯性度量 ①對并發(fā)處理的控制能力; ②錯誤的可修正性和處理可繼續進(jìn)行能力。 數據容錯性度量 ①非法輸入數據的容錯; ②對相互沖突的要求和非法組合容錯; ③輸出數據是否合理容錯。 硬件故障中恢復容錯性度量 故障后恢復能力容錯。 (3)易恢復性度量 與易恢復性緊密相關(guān)的測試是強度測試和健壯測試。強度測試又稱(chēng)為力度測或極限測試,主要測試系統對空間強度和時(shí)間強度的容忍極限;健壯測試又稱(chēng)異常測試,是很重要的可靠性測試項目。通過(guò)易恢復性測試,一方面使系統具有異常情況的抵抗能力,另一方面使系統測試質(zhì)量可控制。 易恢復性=以下各條款評分之和÷條款數 ①空間強度可恢復; ②時(shí)間強度可恢復; ③數據強度可恢復; ④異常通信可恢復; ⑤數據破壞可恢復; ⑥電池極限可恢復。 (4)測試可信度評估 測試可信度是對測試質(zhì)量的有效評估,是保證質(zhì)量的必要步驟。目前雖然很難有量化的指標,但我們采取積分的方式顯示可信度。例如,請4個(gè)人員(甲、乙、丙、。⿲ο到y5個(gè)功能打一個(gè)從0(不信任)到10(完全信任)之間的分數,那么,可信度度量可以用表3進(jìn)行計算。 3 測試實(shí)例 (1)電流測試 電流測試是嵌入式系統的系統測試中首先要進(jìn)行的重要測試,也是最容易被忽視的測試。主要是測試系統的工作電流、待機電流。人們一般把它當成與系統測試無(wú)關(guān)的硬件測試。但是對于嵌入式系統,軟件與硬件不可能清晰地劃分,硬件的性能直接影響軟件的運行。實(shí)例1說(shuō)明了電流測試對系統運行的影響及不可替代的作用。 測試現象描述:進(jìn)行同一廠(chǎng)商PDA系統測試,有幾臺PDA在名片子系統、行程子程序的操作過(guò)程中隨機死機。 我們當時(shí)的錯誤分析定位是:①懷疑操作系統中斷處理錯誤;②懷疑內存泄漏,堆棧溢出;③懷疑應用程序錯誤。 在軟件開(kāi)發(fā)人員為解決這個(gè)問(wèn)題檢查軟件時(shí),硬件開(kāi)發(fā)人員提出應首先測試一下這幾臺機器的工作電流。結果發(fā)現,PDA的工作電流低于正常工作電流。加電容調整后隨機死機問(wèn)題消失。 由此例還可以看出,嵌入式系統測試的軟硬件測試不可分性。絕對的將硬件測試和軟件測試區分開(kāi)來(lái)的測試思想是不正確的。我們在系統測試時(shí)的電流測試設計如表4。 表4 電流測試
(2)兼容性測試 考慮到嵌放式系統軟硬件的開(kāi)發(fā)成本高于通用PC系統,因此,提高軟件對硬件的兼容及軟件升級版本的兼容性極為重要。表5是便攜林翰林電子書(shū)升級版本兼容性測試實(shí)例。 表5 兼容性測試
實(shí)例2:現在的嵌入式系統的層次結構一般分為硬件層、BIOS層、操作系統層、應用系統層。有的還需要通用PC應用軟件支持。因此,嵌入式系統的兼容性測試要考慮硬件兼容性、BIOS兼容性、操作系統兼容性,還需考慮與相應PC應用軟件的兼容性。 結語(yǔ) 本文的測試方法和評估方法在具體的嵌入式系統測試中,獲得很好的效果。這是一項很有意義的工作,不僅要求嵌入式系統的測試人員具有很全面的軟硬件知識,還需結合測試理論、統計方法,面對不同的系統進(jìn)行測試方法、工具、過(guò)程評價(jià)及質(zhì)量評估。隨著(zhù)嵌入式系統的多樣性和復雜性發(fā)展,嵌入式系統的系統測試研究將繼續深入。 參考文獻 1. Pressman Roger S Software Engineering A Practitioner' s Approach 2001 2. 朱鴻.金凌紫 軟件質(zhì)量保障和測試 1997 3. Satzinger Jone W.Jackson Robert B.Burd Stephen D Systems Analysis and Design in a Changing word 2001 4. 萬(wàn)建成.盧雷 軟件體系結構的原理、組成與應用 2002 5. Wayne Wolf 嵌入式計算系統設計原理 2002 6. ISO9000國際質(zhì)量標準.內部資料 7. ISO9001:1994標準.內部資料 8. ISO9000-3:1993標準.內部資料 9. GB/T16260-1996.信息技術(shù) 軟件產(chǎn)品評價(jià) 質(zhì)量特性及其使用指南 1996 10. GB/T17544-1998.信息技術(shù) 軟件包 質(zhì)量要求和測試 1999 作 者:南開(kāi)大學(xué) 李慶誠 張建華 雷楊 來(lái) 源:單片機與嵌入式系統應用 2003(8) |