技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
14
1
自我挑戰組
開始系統測試
系列 第
14
篇
Day 14 | 軟體測試階段(一) - 單元測試與整合測試
14th鐵人賽
Pancy
2022-09-29 02:58:59
3155 瀏覽
分享至
一、測試階段的分類
測試階段也稱為測試級別
分類
單元測試
整合測試
系統測試
驗收測試
二、單元測試
什麼是單元?
單元是軟體內最小的、可以單獨執行程式碼的單位。
對於控制語言(如C、Visual Basic等),通常由一個或多個最接近的函式(function)或過程(procedure)所組成
對於物件導向設計(如Java、C++等),可以是一個類或類的實例,或者由方法(method)來實現功能
對於網頁或是視窗介面,單元可以是一個文字輸入框或一個按鈕等。
什麼是單元測試(Component Testing)?
針對一個軟體單元的測試
這個階段的測試通常由開發人員執行,發現缺陷後立刻進行修改,也沒有任何形式的紀錄
單元測試的重點、所需知識和前置條件
測試重點
功能性測試
健壯性 - 逆向測試:無效值
性能
所需知識/know-how
開發知識和技能
基本的測試技術
前置條件
完成編譯的測試對象
測試環境
開發工具
測試對象的規範說明
單元測試使用的技術和能發現的缺陷
典型的技術
白箱測試技術(語句、分支覆蓋等) - 觀察程式的每一個過程是否符合需求
黑箱測試技術(等價類劃分、邊境值分析等) - 只看輸出結果是否正確
一般情況下是先黑後白,但白箱測試用的更多,白箱和黑箱是一起寫案例的。
能發現的缺陷
單元內的功能性缺陷
運行時的缺陷
(本機)效能問題
健壯性問題
可能遺留的缺陷
API問題
「大環境」的問題
許多非功能性的缺陷
單元測試需要撰寫程式碼
驅動程式(Driver) - 通過API與測試對象通訊的輔助工具,用於調用被測式的單元或系統替代性程式。
模擬函數(Stub) - 替代或模擬還沒完成的單元(模組),用於模擬輸入和輸出(針對尚未完整的功能)
模擬軟體(Simulation) - 用一個系統來描述另一個要測試的抽象系統行為驗證
三、整合測試
什麼是整合?
把單元/系統合併為更大部件的過程
什麼是整合測試(Integration Testing)?
目標在暴露
API
以及整合組件/系統間
交互
時存在的缺陷測試。
有多種整合類型,如:
單元整合測試(compoment integration testing) - 測試目的在於發現API和整合後單元間協同工作的缺陷。
參數的輸入與輸出為API,而傳遞過程為交互
API側重於靜態,交互則側重於動態
一般常說的整合測試就是單元整合測試
系統整合測試(system integration testing)
測試系統和其他軟體包的整合:如商務標準軟體(Commercial Off-The-Shelf software,COTS)的整合
測試與外部系統的API和交互:如電子數據的交換、網路
單元測試通常是單人執行,而整合測試通常是多人或第三方執行。
整合測試的重點、所需知識和前置條件
測試重點
API
系統內不同部分的交互作用
所需知識/know-how
最好具備開發知識和技能(有可能需要測試Driver和Stub)
測試技術
具備有關單元間的交互知識 - 單元間傳遞什麼參數、這些參數需要做什麼處理
前置條件
完成整合的被測系統
測試平台(test bed) - 在單元測試階段使用的一些工具可能在整合測試階段中被反覆使用
有關單元間交互的文件
整合測試使用的技術和能發現的缺陷
典型的技術
白箱測試技術(內部API)
黑箱測試技術(等價類劃分、邊境值分析等)
一般情況下仍是先黑後白,但白箱測試用的更多,白箱和黑箱是一起寫案例的。
能發現的缺陷
API的缺陷
單元間的協調錯誤
可能遺留的缺陷
相關單元外的問題
整個系統需求的不滿足
與外部系統的API常常被忽略
整合測試的策略
向下整合(top-down integration)
向上整合(bottom-down integration)
留言
追蹤
檢舉
上一篇
Day 13 | 錯誤推測
下一篇
Day 15 | 軟體測試階段(二) - 系統測試與驗收測試
系列文
開始系統測試
共
30
篇
目錄
RSS系列文
訂閱系列文
11
人訂閱
26
Day 26 | 性能測試
27
Day 27 | Web測試
28
Day 28 | 手機APP測試(一)
29
Day 29 | 手機APP測試(二)
30
Day 30 | 自動化測試概述
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22207
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
新手學習編程,哪種編程語言好?
防火牆與DNS請教
硬盤只能在舊電腦上讀到 在新電腦上顯示不明硬盤
寫好了一個程式,想問打包成EXE的問題
FORTI 防火牆使用 RADIUS 認證問題請教
請問在ERP當中如何管理油漆、螺絲物料?
這樣的物件設計好嗎?
這屆鐵人賽有完賽禮嗎?有人收到嗎?
Python多執行緒日誌記錄系統問題
Outlook 會跳出"插入智慧卡"(有安裝HiCOS卡片管理工具)
熱門回答
這樣的物件設計好嗎?
防火牆與DNS請教
新手學習編程,哪種編程語言好?
Outlook 會跳出"插入智慧卡"(有安裝HiCOS卡片管理工具)
請問在ERP當中如何管理油漆、螺絲物料?
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day35]
每日一篇學習筆記 直到我做完專題 :( [Day36]
每日一篇學習筆記 直到我做完專題 :( [Day37]
每日一篇學習筆記 直到我做完專題 :( [Day38]
NYCU 電路學概論2 -112學年度
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}