加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1 測試基礎知識
    • 2 測試用例設計
    • 3 總結
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

嵌入式基礎知識-測試基礎概念

01/22 12:00
2877
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

本篇來介紹嵌入式項目開發(fā)中,軟件測試的相關基礎知識。

1 測試基礎知識

測試是指:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)錯誤,對軟件質量進行評估

測試的對象包括程序、數(shù)據(jù)和文檔

對于測試,并不是只有測試人員才需要了解,需要了解測試的人員包括:

用戶:參與需求驗證和驗收測試

項目經(jīng)理:參與測試計劃指定

程序員:完成單元測試

測試員:設計和執(zhí)行測試

1.1 測試原則

系統(tǒng)測試的原則包括:

軟件測試的目的是發(fā)現(xiàn)軟件的錯誤

盡早地、不斷地進行測試

避免由原開發(fā)軟件的人或小組承擔

設計測試方案時,不僅要確定輸入數(shù)據(jù),還要根據(jù)根據(jù)系統(tǒng)功能確定預期結果

既要包含有效、合理的測試用例,也要包含失效、不合理的用例

檢測程序是否做了該做的事,且是否做了不該做的事

嚴格按照測試計劃進行

妥善保存測試計劃和測試用例

測試用例可重復使用或追加測試

1.2 測試方法

測試方法可以分為靜態(tài)測試與動態(tài)測試兩大類:

1.2.1 靜態(tài)測試

靜態(tài)測試可以由人工進行,也可以借助軟件工具自動進行。

桌面檢查:程序員自己檢查編寫的程序

代碼審查:若干程序員與測試人員組成評審小組,召開程序評審會進行審查

代碼走查:由測試人員提供測試用例,程序員在大腦中運行測試用例,檢查代碼邏輯

1.2.2 動態(tài)測試

動態(tài)測試的主要特征是必須真正執(zhí)行被測試的程序,通過輸入測試用例,對其運行情況進行分析。

動態(tài)測試包括:

黑盒測試:把待測軟件當作一個內部結構不可見的黑盒,根據(jù)軟件功能設計用例,測試軟件功能。

白盒測試:明確軟件內部代碼流程,根據(jù)軟件代碼邏輯設計用例,進行用例覆蓋。

灰盒測試:黑盒與白盒測試的結合

1.3 測試策略

在進行軟件測試時,如果軟件比較龐大復雜,就要考慮一定的測試策略:

自底向上:從底層驅動模塊開始測試,然后逐漸合并模塊測試

自頂向下:?先測試整個系統(tǒng),再逐步向下測試底層模塊

三明治:自底向上與自頂向下的結合

1.4 測試階段

在整個的軟件開發(fā)周期中,會有不同階段的軟件測試,測試的側重點也不同。

對比軟件的開發(fā)流程,軟件的測試階段分為單元測試、集成測試、系統(tǒng)測試和驗收測試:

單元測試:對應編碼階段,程序自己對單個模塊測試,測試模塊內部的接口、信息和功能

集成測試:對應詳細設計,將模塊組合起來測試,可以一次全部組裝,也可以增量式組裝

系統(tǒng)測試:對應概要設計,用于檢驗軟件產(chǎn)品是否與系統(tǒng)的其它部分協(xié)調工作,系統(tǒng)測試適用于評估系統(tǒng)的非功能需求,如性能、可靠性和安全性

驗收測試:對應需求階段,是軟件部署前的一個測試操作,其測試范圍類似于系統(tǒng)測試,通常由系統(tǒng)提供者和客戶共同完成

2 測試用例設計

在進行測試前,需要先設計好測試用例,這里主要介紹動態(tài)測試中的黑盒測試與白盒測試的測試用例。

2.1 黑盒測試用例設計

在黑盒測試時,根據(jù)軟件需求規(guī)格說明書進行測試用例的設計。

黑盒測試用例設計包括:

等價類劃分:將數(shù)據(jù)按照某種特性歸類,然后在每類數(shù)據(jù)中選取一個即可。通過設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類。

邊界值劃分:將邊界值作為測試用例,邊界值一般為范圍的兩端值和此范圍之外的兩端最小間隔的值

錯誤推測:根據(jù)經(jīng)驗推測可能有問題的地方

因果圖:由一個結果反推原因,具體結果具體分析

2.2 白盒測試用例設計

在白盒測試時,確定測試數(shù)據(jù)應根據(jù)程序的功能文檔指定的覆蓋標準,當根據(jù)程序的功能文檔確定的測試數(shù)據(jù)不能滿足指定的覆蓋標準時,可參考程序的內部邏輯分析未滿足覆蓋標準的原因,并修改文檔或增加測試數(shù)據(jù)。

白盒測試包括:

基本路徑測試循環(huán)覆蓋測試邏輯覆蓋測試

其中,邏輯覆蓋又包括:

語句覆蓋(Statement Coverage, SC):設計足夠的測試用例,讓程序中

所有的語句至少執(zhí)行一次

判定覆蓋(Decision Coverage, DC):設計足夠的測試用例,讓程序中

每個判定的每一種可能結果至少出現(xiàn)一次

條件覆蓋(Condition Coverage, CC):設計足夠的測試用例,讓程序中

每個判定的每個條件的可能取值至少經(jīng)歷一次

路徑覆蓋(Path Coverage, PC):設計足夠的測試用例,覆蓋程序中

所有可能的路徑

例如如下的程序流程圖中:

語句、判定、條件和路徑的對應關系如下

在這些準則覆蓋層級中:

最弱的準則是語句覆蓋,因為執(zhí)行了所有語句,并不一定執(zhí)行了所有的條件判定最強的準則是路徑覆蓋

另外,還有一些復雜的邏輯覆蓋:

條件判斷覆蓋(Condition/Decision Coverage, C/DC):使得判定中每個條件的真和假至少出現(xiàn)一次,并且每個判定本身的真和假也至少出現(xiàn)一次。

條件組合覆蓋(Multiple Condition Coverage, MCC):使得每個判定中條件的各種可能組合都至少出現(xiàn)一次;一定滿足DC、CC和C/DC。

修正的條件判斷覆蓋(Modified Condition/Decision Coverage, MC/DC):每個程序模塊的入口和出口都要考慮至少被調用一次,每個程序的判定到所有可能的結果值至少轉換一次。

3 總結

本篇介紹了軟件測試的相關基礎知識,包括靜態(tài)測試與動態(tài)測試、測試策略、測試階段、白盒測試與黑盒測試等。下篇將根據(jù)實例,繼續(xù)介紹白盒測試,各種語句覆蓋的實操設計。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
CSTNE16M0V530000R0 1 Murata Manufacturing Co Ltd Ceramic Resonator,

ECAD模型

下載ECAD模型
$0.68 查看
CSTCC3M68G53-R0 1 Murata Manufacturing Co Ltd Ceramic Resonator, 3.68MHz Nom, CERAMIC PACKAGE-3

ECAD模型

下載ECAD模型
$0.84 查看
HCNW3120#300 1 Avago Technologies 1 CHANNEL LOGIC OUTPUT OPTOCOUPLER, 0.300 INCH, SURFACE MOUNT, DIP-8
$4.78 查看

相關推薦

電子產(chǎn)業(yè)圖譜

控制科學與工程碩士,日常分享單片機、嵌入式、C/C++、Linux等學習經(jīng)驗干貨~