精读-软件测试的艺术之模块测试及更高级别的测试
本文是關(guān)于精讀書籍《軟件測試的藝術(shù)》的一些學習筆記和分享
本書共有九章包括測試思想(心理,經(jīng)濟),代碼檢查,測試用例設(shè)計,模塊測試,更高級別的測試,調(diào)試,極限測試和因特爾應(yīng)用系統(tǒng)的測試。
本文主要介紹了一些介紹了一些模塊測試和一些更高級別的測試,并結(jié)合《軟件測試》這本書對這兩方面進行補充。
模塊(單元)測試
模塊測試的目的是將模塊的功能與定義模塊的功能過個說明或接口規(guī)格進行說明比較。
測試用例的設(shè)計方式
模塊測試總體上是面向白盒測試的。具體的白盒測試方法已經(jīng)在上一章節(jié)進行了討論。在模塊測試中主要需要模塊的規(guī)格說明和模塊的源代碼。
增量(集成)測試及集成的順序
非增量測試:先獨立的測試每一個模塊,然后再將這些模塊組裝成完整的程序
增量測試:將下一步要進行測試的模塊組裝到測試完成的模塊集合中,然后在進行測試
對比:
- 非增量測試所需的工作量量要多一點
- 增量測試可以較早地發(fā)現(xiàn)模塊中與不匹配接口、不正確假設(shè)相關(guān)的編程錯誤。
- 增量測試會更容易一點
- 增量測試會進行的更徹底
- 非增量測試多占用的機器時間更少一點
- 模塊測試階段開始時,如果使用的是非增量測試,就會有更多的機會進行并行操作(所有模塊可以同時進行)
對比之后,基于計算機行業(yè)當前的趨勢(硬件成本已經(jīng)降低而且勢必持續(xù)下去,硬件成功會不斷增加,而人力成本和軟件錯誤的的代價在不斷增長),所以錯誤發(fā)現(xiàn)得越早,改正它的成本就越低。進而我們可以得到結(jié)論,增量測試要更好一點。
驅(qū)動模塊是用來模擬被測試模塊的上一級模塊,相當于被測模塊的主程序。它接收數(shù)據(jù),將相關(guān)數(shù)據(jù)傳送給被測模塊,啟用被測模塊,并打印出相應(yīng)的結(jié)果。
樁模塊是指模擬被測試的模塊所調(diào)用的模塊,而不是軟件產(chǎn)品的組成的部分。
自頂向下測試
自頂向下的測試是從程序的頂部或初始模塊開始。自頂向下測試包含兩種測試策略,分別是深度優(yōu)先和廣度優(yōu)先。
廣度優(yōu)先:
測試順序:A,B,C,D,E,F,G,H,I,J,K,L
深度優(yōu)先:
?測試順序:A,B,E,F,J,C,G,K,D,H,L,I
總體的測試策略就是:
- 設(shè)計模塊序列時應(yīng)將這些關(guān)鍵模塊盡早的添加進去
- 應(yīng)將I/O模塊盡可能早的添加進來
自底向上測試
自底向上的策略開始于程序中的終端模塊,是從系統(tǒng)層次結(jié)構(gòu)圖的最底層模塊開始進行組裝和集成測試的方式。對于某一個層次的特定模塊,因為它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測試完成,所以不再需要樁模塊。在測試過程中,如果想要從子模塊得到信息可以通過直接運行子模塊得到。
同樣的如果我們可以將上面的圖進行分解,找到相應(yīng)的樁模塊
對比:
| 優(yōu)點 | 缺點 | |
| 自頂向下 |
|
|
| 自底向上 |
|
|
我們可以發(fā)現(xiàn),無論是自頂向下還是自底向上都會各自的優(yōu)缺點,所以有這一種“三明治”集成測試的方式可以分別利用這兩種測試方法的有點。“三明治”集成測試通過分層將各自分層的部分可以分別采用自頂向下和自底向上的方法。
對執(zhí)行模塊測試的建議
當測試用例造成模塊輸出的實際結(jié)果與預期結(jié)果不匹配的情況時,存在兩種可能的解釋。要么是測試用例不正確,要么是模塊存在錯誤。為了避免這樣的混亂,我們在執(zhí)行測試之前,應(yīng)對測試用例集進行審核和檢查。
使用自動化測試工具可以使測試過程中的枯燥勞動減至最低。
更高級別的測試
在更高級測試中,主要討論了功能測試,系統(tǒng)測試,驗收測試和安裝測試。
功能測試
功能測試就是一個試圖發(fā)現(xiàn)程序與其外部規(guī)格說明之間存在不一致的過程。這里外部規(guī)格說明就是一份從最終用戶的角度對程序行為的精確描述。
功能測試通常是黑盒測試,所以在黑盒測試方法中等價類劃分,邊界值分析,因果圖分析法和錯誤猜測的方法都很適用于功能測試。
系統(tǒng)測試
系統(tǒng)測試主要包括能力測試,容量測試,強度測試,易用性測試,安全性測試,存儲測試,配置測試。兼容性/配置/轉(zhuǎn)換測試,安裝測試,可靠性測試,可恢復性測試,適用性測試,文檔測試,過程測試等
1.能力測試
判斷目標文檔提及的每一項能力是否都確實得到實現(xiàn)。過程就是逐條語句地檢查目標文檔。此類測試常常可以在不適用計算機的情況下進行。
2.容量測試
使程序經(jīng)受大容量數(shù)據(jù)的檢驗。由于容量測試顯然需要大量的資源,鑒于對機器和工時考慮,不可進行過多的容量測試。
3.強度測試(壓力測試)
強度測試就是使程序承受高負載或強度的檢驗。高強度是指在很短的時間間隔內(nèi)達到的數(shù)據(jù)或操作峰值。強度測試適用于在可變負載下運行的程序,例如對于一些Web的并發(fā)量測試。
4.易用性測試
- 易用性測試通常要考慮的問題:
- 用戶界面是否要根據(jù)用戶的智力,教育背景和環(huán)境進行調(diào)整
- 程序的輸出是否有意義、不模糊且沒有計算機的雜亂信息
- 錯誤診斷是否直接
- 整體的用戶界面是否存在語法,格式,風格等問題
- 在準確性要求高的環(huán)境中,輸入中是否有足夠的確認信息
- 對于所有的輸入,系統(tǒng)是否返回了某些即時確認信息
- 程序是否包含過多或不太可能用到的選項
- 程序是否易用
5.安全性測試
安全性測試是設(shè)計測試用例來突破程序安全檢查的過程。
6.性能測試
描述為在特定負載和配置環(huán)境下程序的響應(yīng)時間和吞吐率。注:設(shè)計測試用例來說明程序不能滿足其性能標準
7.存儲測試
描述程序使用的內(nèi)存和輔存的容量以及臨時文件或溢出文件的大小。同樣,設(shè)計測試用例來證明這些存儲目標沒有得到滿足
8.配置測試
一些配置的因素比如操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)和信息交換系統(tǒng)等都支持多種硬件配置,包括不同類型和數(shù)量的I/O設(shè)備和通信線路,或不同的儲存容量。
9.兼容性/配置/轉(zhuǎn)換測試
對于一些涉及對現(xiàn)有系統(tǒng)的兼容以及從現(xiàn)有系統(tǒng)轉(zhuǎn)換的過程,測試其兼容性目標和轉(zhuǎn)換過程
10.安裝測試
安裝程序如果出現(xiàn)故障,會影響用戶對軟件的成功體驗。所以測試安裝過程是系統(tǒng)的一個重要的部分。
11.可靠性測試
可靠性測試是為了保證產(chǎn)品在規(guī)定的壽命期間內(nèi),在預期的使用、運輸或儲存等所有環(huán)境下,保持功能可靠性而進行的活動。進一步可以研究歸納斷言的概念。
12.可恢復性測試
對系統(tǒng)如何從程序錯誤,硬件失效和數(shù)據(jù)錯誤中恢復出來的測試
13.適用性測試
幫助您的產(chǎn)品符合法律安全與性能要求,同時提高用戶體驗,滿足當?shù)厣盍晳T和消費習慣需求
14.文檔測試
對用戶文檔的正確定,完整性和清晰性進行檢查
15.過程測試
對多有依規(guī)定的人工過程,如系統(tǒng)操作員,數(shù)據(jù)庫管理員或最終用戶的操作過程進行測試。
驗收測試
驗收測試是將程序與其最初的需求及最終用戶當前的需要進行比較的過程,該測試通常是由程序的客戶或最終用戶來進行。
測試的計劃與控制
測試計劃應(yīng)包括:
目標:必須定義每個測試階段的目標
結(jié)束準則:制定準則以規(guī)定每一個測試階段何時可以結(jié)束
進度:每個階段都須有時間表
責任:確定設(shè)計,編寫,和驗證測試用例的人和發(fā)現(xiàn)軟件錯誤的人
測試用例庫及標準:確定、編寫以及存儲測試用例的系統(tǒng)方法
工具:確定需要使用的測試工具
計算機時間:計劃每個測試階段所需要的計算機時間
硬件配置:描述特別需要的硬件配置或設(shè)備
集成:定義程序如歌組裝在一起的方法(如自定向下的增量測試)
跟蹤步驟:跟蹤測試的方方面面,包括對錯誤易發(fā)模塊的定位,以及有關(guān)進度、資源和結(jié)束準則的估計
調(diào)試步驟:制定上報已發(fā)現(xiàn)錯誤、跟蹤錯誤修改進程以及修改部分加入系統(tǒng)中去的機制
回歸測試:回歸測試在對程序作了功能改進或進行了修改之后,判斷程序的改動是否引起其他程序其他方面的退步。
測試結(jié)束準則
三個參考原則:
總結(jié)
以上是生活随笔為你收集整理的精读-软件测试的艺术之模块测试及更高级别的测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《那些年啊,那些事——一个程序员的奋斗史
- 下一篇: redis数据批量导入导出