軟件測試技術(shù)常見問題匯總
軟件測試技術(shù)是計算機三級考試的科目之一,以下是小編整理的軟件測試技術(shù)常見問題匯總,希望可以為您提供幫助!
1、 單元測試主要內(nèi)容是什么?
單元測試大多數(shù)由開發(fā)人員來完成,測試人員技術(shù)背景較好或者開發(fā)系統(tǒng)軟件時可能會安排測試人員進行單元測試,大多數(shù)進行的單元測試都是開發(fā)人員調(diào)試程序或者開發(fā)組系統(tǒng)聯(lián)合調(diào)試的過程。討論這個問題主要是擴充一下讀者的視野。
單元測試一般包括五個方面的測試:
(1)模塊接口測試:模塊接口測試是單元測試的基礎(chǔ)。只有在數(shù)據(jù)能正確流入、流出模塊的前提下,其他測試才有意義。模塊接口測試也是集成測試的重點,這里進行的測試主要是為后面打好基礎(chǔ)。測試接口正確與否應(yīng)該考慮下列因素:
輸入的實際參數(shù)與形式參數(shù)的個數(shù)是否相同;
輸入的實際參數(shù)與形式參數(shù)的屬性是否匹配;
輸入的實際參數(shù)與形式參數(shù)的量綱是否一致;
調(diào)用其他模塊時所給實際參數(shù)的個數(shù)是否與被調(diào)模塊的形參個數(shù)相同;
調(diào)用其他模塊時所給實際參數(shù)的屬性是否與被調(diào)模塊的形參屬性匹配;
調(diào)用其他模塊時所給實際參數(shù)的量綱是否與被調(diào)模塊的形參量綱一致;
調(diào)用預(yù)定義函數(shù)時所用參數(shù)的個數(shù)、屬性和次序是否正確;
是否存在與當(dāng)前入口點無關(guān)的參數(shù)引用;
是否修改了只讀型參數(shù);
對全程變量的定義各模塊是否一致;
是否把某些約束作為參數(shù)傳遞。
如果模塊功能包括外部輸入輸出,還應(yīng)該考慮下列因素:
文件屬性是否正確;
OPEN/CLOSE語句是否正確;
格式說明與輸入輸出語句是否匹配;
緩沖區(qū)大小與記錄長度是否匹配;
文件使用前是否已經(jīng)打開;
是否處理了文件尾;
是否處理了輸入/輸出錯誤;
輸出信息中是否有文字性錯誤。
局部數(shù)據(jù)結(jié)構(gòu)測試;
邊界條件測試;
模塊中所有獨立執(zhí)行通路測試;
(2)局部數(shù)據(jù)結(jié)構(gòu)測試:檢查局部數(shù)據(jù)結(jié)構(gòu)是為了保證臨時存儲在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確,局部功能是整個功能運行的基礎(chǔ)。重點是一些函數(shù)是否正確執(zhí)行,內(nèi)部是否運行正確。局部數(shù)據(jù)結(jié)構(gòu)往往是錯誤的根源,應(yīng)仔細設(shè)計測試用例,力求發(fā)現(xiàn)下面幾類錯誤:
不合適或不相容的類型說明;
變量無初值;
變量初始化或省缺值有錯;
不正確的變量名(拼錯或不正確地截斷);
出現(xiàn)上溢、下溢和地址異常。
(3)邊界條件測試:邊界條件測試是單元測試中最重要的一項任務(wù)。眾所周知,軟件經(jīng)常在邊界上失效,采用邊界值分析技術(shù),針對邊界值及其左、右設(shè)計測試用例,很有可能發(fā)現(xiàn)新的錯誤。邊界條件測試是一項基礎(chǔ)測試,也是后面系統(tǒng)測試中的功能測試的重點,邊界測試執(zhí)行的較好,可以大大提高程序健壯性。
(4)模塊中所有獨立路徑測試:在模塊中應(yīng)對每一條獨立執(zhí)行路徑進行測試,單元測試的基本任務(wù)是保證模塊中每條語句至少執(zhí)行一次。測試目的主要是為了發(fā)現(xiàn)因錯誤計算、不正確的比較和不適當(dāng)?shù)目刂屏髟斐傻腻e誤。具體做法就是程序員逐條調(diào)試語句。常見的錯誤包括:
誤解或用錯了算符優(yōu)先級;
混合類型運算;
變量初值錯;
精度不夠;
表達式符號錯。
比較判斷與控制流常常緊密相關(guān),測試時注意下列錯誤:
不同數(shù)據(jù)類型的對象之間進行比較;
錯誤地使用邏輯運算符或優(yōu)先級;
因計算機表示的局限性,期望理論上相等而實際上不相等的兩個量相等;
比較運算或變量出錯;
循環(huán)終止條件或不可能出現(xiàn);
迭代發(fā)散時不能退出;
錯誤地修改了循環(huán)變量。
(5)模塊的各條錯誤處理通路測試:程序在遇到異常情況時不應(yīng)該退出,好的程序應(yīng)能預(yù)見各種出錯條件,并預(yù)設(shè)各種出錯處理通路。如果用戶不按照正常操作,程序就退出或者停止工作,實際上也是一種缺陷,因此單元測試要測試各種錯誤處理路徑。一般這種測試著重檢查下列問題:
輸出的出錯信息難以理解;
記錄的錯誤與實際遇到的錯誤不相符;
在程序自定義的出錯處理段運行之前,系統(tǒng)已介入;
異常處理不當(dāng);
錯誤陳述中未能提供足夠的定位出錯信息。
2、 如何理解強度測試?
強度測試是為了確定系統(tǒng)在最差工作環(huán)境的工作能力,也可能是用于驗證在標準工作壓力下的各種資源的最下限指標。
它和壓力測試的目標是不同的,壓力測試是在標準工作環(huán)境下,不斷增加系統(tǒng)負荷,最終測試出該系統(tǒng)能力達到的最大負荷(穩(wěn)定和峰值),而強度測試則是在非標準工作環(huán)境下,甚至不斷人為降低系統(tǒng)工作環(huán)境所需要的資源,如網(wǎng)絡(luò)帶寬,系統(tǒng)內(nèi)存,數(shù)據(jù)鎖等等,以測試系統(tǒng)在資源不足的情況下的工作狀態(tài),通過強度測試,可以確定本系統(tǒng)正常工作的最差環(huán)境.
強度測試和壓力測試的測試指標相近,大多都是與時間相關(guān)的指標,如并發(fā)量(吞吐量),延遲(最大\最小\平均)以及順序指標等
強度測試需要對系統(tǒng)的結(jié)構(gòu)熟悉,針對系統(tǒng)的特征設(shè)計強度測試的方法。
3、 如何理解壓力、負載、性能測試測試?
性能測試是一個較大的范圍,實際上性能測試本身包含了性能、強度、壓力、負載等多方面的測試內(nèi)容。
壓力測試是對服務(wù)器的穩(wěn)定性以及負載能力等方面的測試,是一種很平常的測試。增大訪問系統(tǒng)的用戶數(shù)量、或者幾個用戶進行大數(shù)據(jù)量操作都是壓力測試。而負載測試是壓力相對較大的測試,主要是測試系統(tǒng)在一種或者集中極限條件下的相應(yīng)能力,是性能測試的重要部分。100個用戶對系統(tǒng)進行連續(xù)半個小時的訪問可以看作壓力測試,那么連續(xù)訪問8個小時就可以認為負載測試,1000個用戶連續(xù)訪問系統(tǒng)1個小時也可以看作是負載測試。
實際上壓力測試和負載測試沒有明顯的區(qū)分。測試人員應(yīng)該站在關(guān)注整體性能的高度上來對系統(tǒng)進行測試。
4、 什么是系統(tǒng)瓶頸?
瓶頸主要是指整個軟硬件構(gòu)成的軟件系統(tǒng)某一方面或者幾個方面能力不能滿足用戶的特定業(yè)務(wù)要求,“特定”是指瓶頸會在某些條件下會出現(xiàn),因為畢竟大多數(shù)系統(tǒng)在投入前。
嚴格的從技術(shù)角度講,所有的系統(tǒng)都會有瓶頸,因為大多數(shù)系統(tǒng)的資源配置不是協(xié)調(diào)的,例如CPU使用率剛好達到100%時,內(nèi)存也正好耗盡的系統(tǒng)不是很多見。因此我們討論系統(tǒng)瓶頸要從應(yīng)用的角度討論:關(guān)鍵是看系統(tǒng)能否滿足用戶需求。在用戶極限使用系統(tǒng)的情況下,系統(tǒng)的響應(yīng)仍然正常,我們可以認為改系統(tǒng)沒有瓶頸或者瓶頸不會影響用戶工作。
因此我們測試系統(tǒng)瓶頸主要是實現(xiàn)下面兩個目的:
發(fā)現(xiàn)“表面”的瓶頸。主要是模擬用戶的操作,找出用戶極限使用系統(tǒng)時的瓶頸,然后解決瓶頸,這是性能測試的基本目標。
發(fā)現(xiàn)潛在的瓶頸并解決,保證系統(tǒng)的長期穩(wěn)定性。主要是考慮用戶在將來擴展系統(tǒng)或者業(yè)務(wù)發(fā)生變化時,系統(tǒng)能夠適應(yīng)變化。滿足用戶目前需求的系統(tǒng)不是最好的,我們設(shè)計系統(tǒng)的目標是在保證系統(tǒng)整個軟件生命周期能夠不斷適應(yīng)用戶的變化,或者通過簡單擴展系統(tǒng)就可以適應(yīng)新的變化。
5、 文檔測試主要包含什么內(nèi)容?
在國內(nèi)軟件開發(fā)管理中,文檔管理幾乎是最弱的一項,因而在測試工作中特別容易忽略文檔測試也就不足為奇了。要想給用戶提供完整的產(chǎn)品,文檔測試是必不可少的。文檔測試一般注重下面幾個方面:
文檔的完整性:主要是測試文檔內(nèi)容的全面性與完整性,從總體上把握文檔的質(zhì)量。例如用戶手冊應(yīng)該包括軟件的所有功能模塊。
描述與軟件實際情況的一致性:主要測試軟件文檔與軟件實際的一致程度。例如用戶手冊基本完整后,我們還要注意用戶手冊與實際功能描述是否一致。因為文檔往往跟不上軟件版本的更新速度。
易理解性:主要是檢查文檔對關(guān)鍵、重要的操作有無圖文說明,文字、圖表是否易于理解。對于關(guān)鍵、重要的操作僅僅只有文字說明肯定是不夠的,應(yīng)該附有圖表使說明更為直觀和明了。
文檔中提供操作的實例:這項檢查內(nèi)容主要針對用戶手冊。對主要功能和關(guān)鍵操作提供的應(yīng)用實例是否豐富,提供的實例描述是否詳細。只有簡單的圖文說明,而無實例的用戶手冊看起來就像是軟件界面的簡單拷貝,對于用戶來說,實際上沒有什么幫助。
印刷與包裝質(zhì)量:主要是檢查軟件文檔的商品化程度。有些用戶手冊是簡單打印、裝訂而成,過于粗糙,不易于用戶保存。優(yōu)秀的文檔例如用戶手冊和技術(shù)白皮書,應(yīng)提供商品化包裝,并且印刷精美。
6、 功能測試用例需要詳細到什么程度才是合格的?
這個問題也是測試工程師經(jīng)常問的問題。有人主張測試用例詳細到每個步驟執(zhí)行什么都要寫出來,目的是即使一個不了解系統(tǒng)的新手都可以按照測試用例來執(zhí)行工作。主張這類寫法的人還可以舉出例子:歐美、日本等軟件外包文檔都是這樣做的。
另外一種觀點就是主張寫的粗些,類似于編寫測試大綱。主張這種觀點的人是因為軟件開發(fā)需求管理不規(guī)范,變動十分頻繁,因而不能按照歐美的高標準來編寫測試用例。這樣的測試用例容易維護,可以讓測試執(zhí)行人員有更大的發(fā)揮空間。
實際上,軟件測試用例的詳細程度首先要以覆蓋到測試點為基本要求。舉個例子:“用戶登陸系統(tǒng)”的測試用例可以不寫出具體的執(zhí)行數(shù)據(jù),但是至少要寫出五種以上情況(),如果只用一句話覆蓋了這個功能是不合格的測試用例。覆蓋功能點不是指列出功能點,而是要寫出功能點的各個方面(如果組合情況較多時可以采用等價劃分)。
另一個影響測試用例的就是組織的開發(fā)能力和測試對象特點。如果開發(fā)力量比較落后,編寫較詳細的測試用例是不現(xiàn)實的,因為根本沒有那么大的資源投入,當(dāng)然這種情況很隨著團隊的發(fā)展而逐漸有所改善。測試對象特點重點是指測試對象在進度、成本等方面的要求,如果進度較緊張的情況下,是根本沒有時間寫出高質(zhì)量的測試用例的,甚至有些時候測試工作只是一種輔助工作,因而不編寫測試用例。
因此,測試用例的編寫要根據(jù)測試對象特點、團隊的執(zhí)行能力等各個方面綜合起來決定編寫策略。最后要注意的是測試人員一定不能抱怨,力爭在不斷提高測試用例編寫水平的同時,不斷地提高自身能力。
7、 配置和兼容性測試的區(qū)別是什么?
配置測試的目的是保證軟件在其相關(guān)的硬件上能夠正常運行,而兼容性測試主要是測試軟件能否與不同的軟件正確協(xié)作。
配置測試的核心內(nèi)容就是使用各種硬件來測試軟件的運行情況,一般包括:
(1) 軟件在不同的主機上的運行情況,例如Dell和Apple;
(2) 軟件在不同的組件上的運行情況,例如開發(fā)的撥號程序要測試在不同廠商生產(chǎn)的Modem上的運行情況;
(3) 不同的外設(shè);
(4) 不同的接口;
(5) 不同的可選項,例如不同的內(nèi)存大小;
兼容性測試的核心內(nèi)容:
(1) 測試軟件是否能在不同的操作系統(tǒng)平臺上兼容;
(2) 測試軟件是否能在同一操作系統(tǒng)平臺的不同版本上兼容;
(3) 軟件本身能否向前或者向后兼容;
(4) 測試軟件能否與其它相關(guān)的軟件兼容;
(5) 數(shù)據(jù)兼容性測試,主要是指數(shù)據(jù)能否共享;
配置和兼容性測試通稱對開發(fā)系統(tǒng)類軟件比較重要,例如驅(qū)動程序、操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等。具體進行時仍然按照測試用例來執(zhí)行。
8、 軟件文檔測試主要包含什么?
隨著軟件文檔系統(tǒng)日益龐大,文檔測試已經(jīng)成為軟件測試的重要內(nèi)容。文檔測試對象主要如下:
包裝文字和圖形;
市場宣傳材料、廣告以及其它插頁;
授權(quán)、注冊登記表;
最終用戶許可協(xié)議;
安裝和設(shè)置向?qū)?
用戶手冊;
聯(lián)機幫助;
樣例、示范例子和模板;
文檔測試的目的是提高易用性和可靠性,降低支持費用,因為用戶通過文檔就可以自己解決問題。因此文檔測試的檢查內(nèi)容主要如下:
讀者對象——主要是文檔的內(nèi)容是否能讓該級別的讀者理解;
術(shù)語——主要是檢查術(shù)語是否適合讀者;
內(nèi)容和主題——檢查主題是否合適、是否丟失、格式是否規(guī)范等;
圖標和屏幕抓圖——檢查圖表的準確度和精確度;
樣例和示例——是否與軟件功能一致;
拼寫和語法;
文檔的關(guān)聯(lián)性——是否與其它相關(guān)文檔的內(nèi)容一致,例如與廣告信息是否一致;
文檔測試是相當(dāng)重要的一項測試工作,不但要給予充分的重視,更要要認真的完成,象做功能測試一樣來對待文檔測試。
【軟件測試技術(shù)常見問題】相關(guān)文章:
計算機三級軟件測試技術(shù)基礎(chǔ)常見問題匯總03-15
計算機三級軟件測試技術(shù)測試題11-27
日語能力測試常見問題03-03
網(wǎng)絡(luò)帶寬測試軟件07-21