1. 程式人生 > >嵌入式軟體測試工具和測試方法

嵌入式軟體測試工具和測試方法

http://www.cnblogs.com/emanlee/archive/2009/07/01/1514621.html

摘要:軟體測試的目的是保證軟體滿足需求規格說明。嵌入式軟體有其特殊的失效判定準則,但是,嵌入式軟體測試的目的與非嵌入式軟體是相同的。在嵌入式系統設計中,軟體正越來越多地取代硬體,以降低系統的成本,獲得更大的靈活性,這就需要使用更好的軟體測試方法和軟體測試工具進行嵌入式和實時軟體測試。本文討論可應用於嵌入式軟體的測試方法;介紹現有嵌入式軟體的測試工具。

一、 嵌入式軟體的測試工具

用於輔助嵌入式軟體測試的工具很多,下面對幾類比較有用的有關嵌入式軟體的測試工具加以介紹和分析。

1 記憶體分析工具

在嵌入式系統中,記憶體約束通常是有限的。記憶體分析工具用來處理在動態記憶體分配中存在的缺陷。當動態記憶體被錯誤地分配後,通常難以再現,可能導致的失效難以追蹤,使用記憶體分析工具可以避免這類缺陷進入功能測試階段。目前有兩類記憶體分析工具--軟體的和硬體的。基於軟體的記憶體分析工具可能會對程式碼的效能造成很大影響,從而嚴重影響實時操作;基於硬體的記憶體分析工具價格昂貴,而且只能在工具所限定的執行環境中使用。

2 效能分析工具

在嵌入式系統中,程式的效能通常是非常重要的。經常會有這樣的要求,在特定時間內處理一箇中斷,或生成具有特定定時要求的一幀。開發人員面臨的問題是決定應該對哪一部分程式碼進行優化來改進效能,常常會花大量的時間去優化那些對效能沒有任何影響的程式碼。效能分析工具會提供有關的資料,說明執行時間是如何消耗的,是什麼時候消耗的,以及每個例程所用的時間。根據這些資料,確定哪些例程消耗大部分執行時間,從而可以決定如何優化軟體,獲得更好的時間效能。對於大多數應用來說,大部分執行時間用在相對少量的程式碼上,費時的程式碼估計佔所有軟體總量的5%~20%。效能分析工具不僅能指出哪些例程花費時間,而且與除錯工具聯合使用可以引導開發人員檢視需要優化的特定函式,效能分析工具還可以引導開發人員發現在系統呼叫中存在的錯誤以及程式結構上的缺陷。

3 GUI測試工具

很多嵌入式應用帶有某種形式的圖形使用者介面進行互動,有些系統性能測試是根據使用者輸入響應時間進行的。GUI測試工具可以作為指令碼工具在開發環境中執行測試用例,其功能包括對操作的記錄和回放、抓取螢幕顯示供以後分析和比較、設定和管理測試過程。很多嵌入式裝置沒有GUI,但常常可以對嵌入式裝置進行插裝來執行GUI測試指令碼。雖然這種方式可能要求對被測程式碼進行更改,但是節省了功能測試和迴歸測試的時間。

4 覆蓋分析工具

在進行白盒測試時,可以使用程式碼覆蓋分析工具追蹤哪些程式碼被執行過。分析過程可以通過插裝來完成,插裝可以是在測試環境中嵌入硬體,也可以是在可執行程式碼中加入軟體,也可以是二者相結合。測試人員對結果資料加以總結,確定哪些程式碼被執行過,哪些程式碼被遺漏了。覆蓋分析工具一般會提供有關功能覆蓋、分支覆蓋、條件覆蓋的資訊。對於嵌入式軟體來說,程式碼覆蓋分析工具可能侵入程式碼的執行,影響實時程式碼的執行過程。基於硬體的程式碼覆蓋分析工具的侵入程度要小一些,但是價格一般比較昂貴,而且限制被測程式碼的數量。

二、 嵌入式軟體的測試方法

一般來說,軟體測試有7個基本階段,即單元或模組測試、整合測試、外部功能測試、迴歸測試、系統測試、驗收測試、安裝測試。嵌入式軟體測試在4個階段上進行,即模組測試、整合測試、系統測試、硬體/軟體整合測試。前3個階段適用於任何軟體的測試,硬體/軟體整合測試階段是嵌入式軟體所特有的,目的是驗證嵌入式軟體與其所控制的硬體裝置能否正確地互動。

1 白盒測試與黑盒測試 一般來說,軟體測試有兩種基本的方式,即白盒測試方法與黑盒測試方法,嵌入式軟體測試也不例外。

白盒測試或基於程式碼的測試檢查程式的內部設計。根據原始碼的組織結構查詢軟體缺陷,一般要求測試人員對軟體的結構和作用有詳細的瞭解。白盒測試與程式碼覆蓋率密切相關,可以在白盒測試的同時計算出測試的程式碼覆蓋率,保證測試的充分性。把100%的程式碼都測試到幾乎是不可能的,所以要選擇最重要的程式碼進行白盒測試。由於嚴格的安全性和可靠性的要求,嵌入式軟體測試同非嵌入式軟體測試相比,通常要求有更高的程式碼覆蓋率。對於嵌入式軟體,白盒測試一般不必在目標硬體上進行,更為實際的方式是在開發環境中通過硬體模擬進行,所以選取的測試工具應該支援在宿主環境中的測試。

黑盒測試在某些情況下也稱為功能測試。這類測試方法根據軟體的用途和外部特徵查詢軟體缺陷,不需要了解程式的內部結構。黑盒測試最大的優勢在於不依賴程式碼,而是從實際使用的角度進行測試,通過黑盒測試可以發現白盒測試發現不了的問題。因為黑盒測試與需求緊密相關,需求規格說明的質量會直接影響測試的結果,黑盒測試只能限制在需求的範圍內進行。在進行嵌入式軟體黑盒測試時,要把系統的預期用途作為重要依據,根據需求中對負載、定時、效能的要求,判斷軟體是否滿足這些需求規範。為了保證正確地測試,還須要檢驗軟硬體之間的介面。嵌入式軟體黑盒測試的一個重要方面是極限測試。在使用環境中,通常要求嵌入式軟體的失效過程要平穩,所以,黑盒測試不僅要檢查軟體工作過程,也要檢查軟體失效過程。

2 目標環境測試和宿主環境測試

在嵌入式軟體測試中,常常要在基於目標的測試和基於宿主的測試之間作出折衷。基於目標的測試消耗較多的經費和時間,而基於宿主的測試代價較小,但畢竟是在模擬環境中進行的。目前的趨勢是把更多的測試轉移到宿主環境中進行,但是,目標環境的複雜性和獨特性不可能完全模擬。

在兩個環境中可以發現不同的軟體缺陷,重要的是對目標環境和宿主環境的測試內容有所選擇。在宿主環境中,可以進行邏輯或介面的測試、其它非實時測試以及與硬體無關的測試。在模擬或宿主環境中的測試消耗時間通常相對較少,用除錯工具可以更快地完成除錯和測試任務。而與定時問題有關的白盒測試、中斷測試、硬體介面測試只能在目標環境中進行。在軟體測試周期中,基於目標的測試是在較晚的"硬體/軟體整合測試"階段開始的,如果不更早地在模擬環境中進行白盒測試,而是等到"硬體/軟體整合測試"階段進行全部的白盒測試,將耗費更多的財力和人力。

結論

嵌入式系統在人類生活中發揮著重要的作用,包括飛行控制器這樣的控制系統,以及洗衣機這樣的家用電器。目前,嵌入式系統中軟體的比重越來越大,也越來越複雜,保證嵌入式軟體的可靠性正面臨嚴峻的挑戰。

大多數軟體測試方法都可以直接或間接地用於嵌入式軟體的測試,但是由於作業系統的實時和嵌入式特性,嵌入式軟體測試也面臨一些特殊的問題。雖然目前已經有一些針對嵌入式軟體的測試和除錯工具,但是在有些方面仍存在不足,包括多工作業系統的併發、非侵入式的測試和除錯、嵌入式系統的軟體抽象等。對於嵌入式軟體測試技術的研究和軟體測試工具的開發,仍須要做很多進一步的工作。


相關推薦

嵌入式軟體測試工具測試方法

http://www.cnblogs.com/emanlee/archive/2009/07/01/1514621.html 摘要:軟體測試的目的是保證軟體滿足需求規格說明。嵌入式軟體有其特殊的失效判定準則,但是,嵌入式軟體測試的目的與非嵌入式軟體是相同的。在嵌入式系統設

測試工具測試自動化-新華三

廠商 軟件 回放 under 協議 服務 可重用性 行業 國內 人類的進化史和發展史,就是一個不斷創造和使用工具的歷史。工具是人類想象力的物理呈現,也是社會進步的巨大助力。對於測試而言,工具同樣不可或缺,甚至於如果想判斷某個廠商的測試水平是處於“蠻荒時代&rdq

ceph--磁碟rbd、rados效能測試工具方法

我在物理機上建立了5臺虛擬機器,搭建了一個ceph叢集,結構如圖: 具體的安裝步驟參考文件:http://docs.ceph.org.cn/start/                                 http://www.centoscn.c

web測試中的測試測試方法總結

動態 小數 圖片尺寸 提示信息 方便 margin style 容錯性 字符型 測試是一種思維,包括情感思維和智力思維,情感思維主要體現在一句俗語:思想決定行動上(要懷疑一切),智力思維主要體現在測試用例的設計上。具有了這樣的思想,就會找出更多的bug。 一、輸入框

火狐瀏覽器自帶介面測試工具HttpRequester使用方法

前言: HttpRequester介面測試工具作為一個十分好用的後臺介面測試工具,它讓程式設計師擺脫了依靠前端介面獲取引數的瓶頸。提高了後臺開發的工作效率,對於改錯和優化具有不可忽視的作用。 一、json資料提交測試方法 操作步驟: 1.在URL裡面填寫介面路徑。 2.點選Conten

軟體測試計劃測試方案區別

測試方案軟體過程:測試計劃評審通過—>設計測試方案—>測試方案評審通過—>依據測試方案設計測試用例—>測試用例評審通過—>依據測試方案搭建測試環境。   五、文件內容   測試計劃和測試方案的本質區別是內容不同。   測試計劃的核心內容

linux 效能測試工具Lmbench 使用方法

一、引言 要評價一個系統的效能,通常有不同的指標,相應的會有不同的測試方法和測試工具,一般來說為了確保測試結果的公平和權威性,會選用比較成熟的商業測試軟體。但在特定情形下,只是想要簡單比較不同系統或比較一些函式庫效能時,也能夠從開源世界裡選用一些優秀的工具來完成這個任務,

app弱網測試常用工具測試策略

1. 弱網模擬工具 1.1.  iOS平臺,通過自帶的開發者選項 》Network Link Conditioner, 即可簡單的模擬各種速度的網路情況: 1.2 通過抓包工具,設定延遲,進行模擬不同的網路情況,比如常用的fiddler, charles: 1.

8個超實用的Java測試工具框架

本文將為大家介紹8款超好用的Java測試工具和框架。 Java入門 如果你才剛開始接觸Java世界,那麼要做的第一件事情是,安裝JDK——Java Development Kit(包),它自帶有Java Runtime Environment(JRE)和JVM(Ja

溫故而知新:gtest單元測試工具lcov覆蓋率統計工具的結合使用

一、簡介        之所以叫溫故而知新,是因為將這兩個工具結合起來作為單元測試工具的想法在上一個專案中應用了,好像還沒有人將這兩種工具結合使用,或者沒有寫成部落格供大家參考,現在重新溫習下將想法寫下來。     gtest單元測試工具接觸過的人都很熟悉了,它是一款go

日程管理APP的測試計劃測試矩陣

集成 說明 計劃 idt 無線 roi ble -c nbsp 測試計劃:(完成整個APP時間:2周) 編號 測試時間 測試內容 1 第2天 在需求設計階段,檢查產品說明文檔及設計文檔 2 第3~9天 在編碼階段,編寫測試用例 3 第10~11天 集成測試

日程管理的測試計劃測試矩陣

矩陣 ima ont -s pan size alt 計劃 技術分享 一、測試計劃 二、測試矩陣 日程管理的測試計劃和測試矩陣

mysql慢查詢分析工具分析方法

mysql 慢查詢 分析工具 1.mysql慢查詢分析工具1.參考文檔:http://www.ttlsa.com/mysql/analyse-slow-query-log-using-anemometer/http://isadba.com/?p=655官方文檔:https://github.co

長尾關鍵詞挖掘工具使用方法

很多博友說我的部落格長尾關鍵詞排名非常不錯,其實我的部落格壓根就沒有主關鍵詞,我從建立部落格到現在,一直就是做長尾關鍵詞的排名,因為長尾關鍵詞出現排名後,可以給我們帶來海量的流量,那麼今天和大家仔細說一說長尾關鍵詞的挖掘工具和使用方法。 什麼是長尾關鍵詞 其實大家應該非常清楚,什麼是長尾關鍵詞,比如說衡陽

軟件測試_測試工具_APP測試工具_對比

我只 get jmeter 部分 對比 公司 baidu .org studio 以下是我自己整理的APP測試工具對比,各個工具相關並不全面。尤其關於收費一項,我只是針對自己公司的實際情況進行對比的,每個工具還有其他收費套餐可以選擇,詳情可進入相關官網進行查看 以下是部分官

App測試實戰:測試內容、測試工具測試效果

零、概述   0.1App測試內容:        1、常規的功能和效能:功能遍歷、業務響應速度、介面測試等        2、專項測試:主要是 系統指標包括耗電、記憶體佔用、流量消耗、CPU(計算量)、啟動速度、流暢度、安裝包大小        3、特殊測試:弱網路

測試策略測試階段流程圖

1.值域測試: 所有輸入資料,邊界值,正確和錯誤資料. 提示資訊 2.資料庫測試 增刪查改操作測試,資料庫效率,無效資料,無效資料.空資料.資料庫自動儲存 3.功能測試 重點功能的測試.模組測試.整合:各模組整合,系統:需求說明,驗收:使用者手冊 4.裸機測試

敏捷開發----專案管理工具實踐方法

原文地址:https://www.zhihu.com/question/54626462管理工具:1.需求管理工具confluence 是一個基於java企業知識平臺,基本上是一個企業部落格,他有一些工作流管理功能,也支援很多外掛(如UML、思維等等),容易定製。2.基於敏捷

測試計劃測試方案區別

        關於測試計劃和測試方案的區別,這裡主要從編寫目的、定義和層次、編寫時間和依據、軟體過程、文件內容這五方面來說明,具體內容如下: 一、編寫目的 制定測試計劃目的:按照所制定的測試計劃可以有效的計劃、執行、跟蹤、組織和管理測試專案。具體從一下三方面來說: 1

測試方針測試策略的區別

測試方針(Test Policy)是一個高層次(High Level)的文件,通常處於整個測試管理體系中所有測試文件的頂層。 測試方針文件的目的是代表整個公司的測試理念,並提供測試部門應該遵守和遵循的方向。它應該適用於新專案和維護工作。 通常,由高階測試管理者