
一、軟件測(cè)試概況
1、測(cè)試原則
(1)完全測(cè)試是不可能的。不可能找出所有錯(cuò)誤
(2)測(cè)試存在風(fēng)險(xiǎn)。測(cè)試不全面
(3)測(cè)試只能表明缺陷的存在。不能證明沒(méi)有缺陷
(4)產(chǎn)品潛在錯(cuò)誤書(shū)與已發(fā)現(xiàn)錯(cuò)誤數(shù)成正比。
(5)讓不同cesium人員參與測(cè)試工作中。避免固定測(cè)試思維
(6)開(kāi)發(fā)者與測(cè)試者分開(kāi)
(7)設(shè)計(jì)用例時(shí),包括輸入數(shù)據(jù)和預(yù)期的輸出結(jié)果兩部分,且輸入數(shù)據(jù)包括合法與非法的情況。
(8)集中測(cè)試易出錯(cuò)或錯(cuò)誤較多的模塊。二八定律
(9)長(zhǎng)期保留所有測(cè)試用例。進(jìn)行回歸測(cè)試
2、軟件測(cè)試模型
指:軟件測(cè)試全部過(guò)程、活動(dòng)或人物的結(jié)構(gòu)框架。應(yīng)闡明的問(wèn)題:(1)測(cè)試時(shí)間(2)測(cè)試步驟(3)如何對(duì)測(cè)試進(jìn)行計(jì)劃(4)不同階段的測(cè)試中應(yīng)關(guān)注的測(cè)試對(duì)象(5)測(cè)試過(guò)程中應(yīng)考慮哪些問(wèn)題(6)測(cè)試需要達(dá)到的目標(biāo)。
V模型、W模型、H模型
3、測(cè)試分類
按時(shí)間階段:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試
按是否運(yùn)行程序:靜態(tài)測(cè)試、動(dòng)態(tài)測(cè)試
按是否查看源碼(從設(shè)計(jì)用例角度):黑盒測(cè)試(等價(jià)類是種重要黑盒測(cè)試技術(shù))、白盒測(cè)試(邏輯覆蓋是種重要白盒測(cè)試技術(shù))
按質(zhì)量因素:
(1)功能測(cè)試:關(guān)注功能實(shí)現(xiàn)。以需求規(guī)格說(shuō)明書(shū)為依據(jù),檢驗(yàn)是否實(shí)現(xiàn)說(shuō)明書(shū)中所有功能需求。
(2)可靠性測(cè)試:關(guān)注程序輸出結(jié)果的準(zhǔn)確性。以需求規(guī)格說(shuō)明書(shū)對(duì)系統(tǒng)可靠性要求為依據(jù),衡量的是程序在多長(zhǎng)時(shí)間內(nèi)一直運(yùn)行且給出期望值,評(píng)測(cè)軟件提供準(zhǔn)確輸出的能力。
(3)可用性測(cè)試:衡量處理服務(wù)請(qǐng)求時(shí),程序的可用頻率。以需求規(guī)格說(shuō)明書(shū)對(duì)系統(tǒng)的可用性為依據(jù),可用性衡量的是程序處理服務(wù)請(qǐng)求且在最短時(shí)間內(nèi)從故障中恢復(fù)的能力。
(4)性能測(cè)試:輸入輸出數(shù)據(jù)的精度、系統(tǒng)響應(yīng)時(shí)間、更新頻率、數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間、操作方式、或運(yùn)行運(yùn)行環(huán)境變化時(shí)軟件的適應(yīng)能力、故障處理能力、資源使用率??杉?xì)分為負(fù)載測(cè)試、容量測(cè)試、壓力測(cè)試。
(5)安全性測(cè)試:主要驗(yàn)證系統(tǒng)的安全性、保密性等措施是否有效地發(fā)揮作用,包括用戶管理、訪問(wèn)空盒子、數(shù)據(jù)備份與恢復(fù)、入侵檢測(cè)。
除以上分類測(cè)試外,還有
(1)配置測(cè)試:檢驗(yàn)是否多種硬件平臺(tái)正常運(yùn)行
(2)兼容性測(cè)試:檢驗(yàn)各軟件是否正確交互和共享信息,主要關(guān)注軟件的運(yùn)行平臺(tái)和應(yīng)用系統(tǒng)版本、標(biāo)準(zhǔn)和規(guī)范、數(shù)據(jù)的共享性
(3)安裝測(cè)試:為了發(fā)現(xiàn)軟件在安裝中存在的錯(cuò)誤,驗(yàn)證與安裝手冊(cè)的內(nèi)容是否一致。對(duì)應(yīng)的還有卸載測(cè)試
(4)文檔測(cè)試:檢驗(yàn)軟件產(chǎn)品的文檔是否清晰、準(zhǔn)確、一致
(5)軟件國(guó)際化測(cè)試、軟件本地化測(cè)試:和本地化相對(duì)應(yīng)。要求軟件支持Unicode,不同時(shí)區(qū)的設(shè)定、顯示和切換,清除些不易改變的設(shè)置。本地化是軟件按特性國(guó)家、地區(qū)的市場(chǎng)需要進(jìn)行加工、處理,使?jié)M足特定市場(chǎng)用戶對(duì)軟件的要求的過(guò)程,本地化重點(diǎn)有:翻譯問(wèn)題、文化背景問(wèn)題、數(shù)據(jù)格式問(wèn)題等
(6)α測(cè)試、β測(cè)試:都屬于驗(yàn)收測(cè)試范疇
4、測(cè)試用例
1.測(cè)試用例編寫(xiě)
2.測(cè)試用例設(shè)計(jì)
(1)任何情況都必選擇邊界值分析法
(2)必要時(shí)用等價(jià)類劃分法補(bǔ)充些測(cè)試用例
(3)用錯(cuò)誤推測(cè)法再追加些測(cè)試用例
(4)對(duì)照程序邏輯,檢查設(shè)計(jì)出的用例的邏輯覆蓋度
(5)若程序功能說(shuō)明中含有輸入條件的組合情況,則可選因果圖法
3.測(cè)試用例場(chǎng)景
通過(guò)描述用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開(kāi)始到結(jié)束遍歷其中所有的基本流和備選流
二、軟件測(cè)試方法與過(guò)程
靜態(tài)測(cè)試
以人工為主,測(cè)試者通過(guò)閱讀代碼和文檔,分析其正確性、一致性及邏輯結(jié)構(gòu)的正確性,從而找出軟件中的錯(cuò)誤或缺陷。對(duì)自動(dòng)化工具依賴性較小,發(fā)揮人的主觀能動(dòng)性。
審查和走查是靜態(tài)測(cè)試常用形式。審查指通過(guò)閱讀討論各設(shè)計(jì)文檔及代碼來(lái)檢查其是否有錯(cuò)。審查可獨(dú)自或會(huì)議形式進(jìn)行。走查對(duì)象只是代碼,不含文檔。代碼走查以小組形式,測(cè)試人員提供用例,參與者模擬計(jì)算機(jī),跟蹤程序執(zhí)行過(guò)程,對(duì)其邏輯和功能提問(wèn),并通過(guò)討論發(fā)現(xiàn)問(wèn)題。
靜態(tài)測(cè)試效率較高,且要求測(cè)試者有豐富經(jīng)驗(yàn)。
動(dòng)態(tài)測(cè)試
兩種流行技術(shù)——黑盒測(cè)試、白盒測(cè)試。
1.黑盒測(cè)試
根據(jù)設(shè)計(jì)用例的方法不同,黑盒測(cè)試包括等價(jià)劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法等。白盒測(cè)試包括邏輯覆蓋測(cè)試方法、基本路徑測(cè)試等方法。
1.1等價(jià)類劃分法?把程序的輸入域劃分為若干子集,再?gòu)拿總€(gè)子集中選少數(shù)代表性數(shù)據(jù)為用例,選取的數(shù)據(jù)對(duì)揭露程序錯(cuò)誤都是等效的。等價(jià)類分為有效等價(jià)類(對(duì)程序規(guī)格說(shuō)明有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合)和無(wú)效等價(jià)類。
劃分等價(jià)類原則?
(1)若輸入條件規(guī)定了取值范圍或個(gè)數(shù),則可確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類
(2)若輸入條件規(guī)定了輸入值的集合或是規(guī)定了“必須如何”的條件,則可確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類
(3)若輸入條件是布爾表達(dá)式,則可分為一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類
(4)若輸入條件是一組值且程序?qū)Σ煌闹涤胁煌奶幚矸绞?,則每個(gè)允許的輸入值對(duì)應(yīng)一個(gè)有效等價(jià)類,不允許的輸入值為一個(gè)無(wú)效等價(jià)類
(5)若規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則就可以劃分出一個(gè)有效的等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效的等價(jià)類(從各角度違反規(guī)則)。設(shè)計(jì)測(cè)試用例步驟?
(1)對(duì)每個(gè)輸入和外部條件進(jìn)行等價(jià)類劃分,畫(huà)出等價(jià)類表,并為每個(gè)等價(jià)類進(jìn)行編號(hào)
(2)設(shè)計(jì)一個(gè)測(cè)試用例,使其盡可能多覆蓋有效等價(jià)類,重復(fù)這一步直至所有的有效等價(jià)類被覆蓋
(3)為每一個(gè)無(wú)效等價(jià)類設(shè)計(jì)一個(gè)測(cè)試用例
1.2邊界值分析法?是一種補(bǔ)充等價(jià)類劃分法的黑盒測(cè)試方法,它是選擇等價(jià)類邊界的測(cè)試用例。大量的錯(cuò)誤常發(fā)生在輸入和輸出范圍的邊界上不是范圍內(nèi)部。邊界值:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最長(zhǎng)/最短、空/滿等。
設(shè)計(jì)原則?
(1)若規(guī)定了取值范圍,應(yīng)以范圍的邊界及剛剛超范圍的邊界外的值為測(cè)試用例
(2)若規(guī)定了值得個(gè)數(shù),應(yīng)以最大、最小個(gè)數(shù)和稍小于最小和稍大于最大個(gè)數(shù)作為測(cè)試用例
(3)針對(duì)每個(gè)輸出條件,也使用上面的兩條原則
(4)若程序規(guī)格說(shuō)明書(shū)中提到的輸入或輸出范圍是有序集合,應(yīng)注意選取有序集的第一個(gè)和最后一個(gè)為測(cè)試用例
(5)分析規(guī)格說(shuō)明書(shū),找出其他可能
1.3錯(cuò)誤推測(cè)法?很大程度靠直覺(jué)和經(jīng)驗(yàn)進(jìn)行?;舅枷??是列舉出程序中可能有的錯(cuò)誤和易發(fā)生錯(cuò)誤的特殊情況,且根據(jù)它們選測(cè)試方案。
1.4因果圖法?(若設(shè)計(jì)階段已用到?jīng)Q策表則可直接使用而不必再畫(huà)因果圖)
等價(jià)類劃分法和邊界值分析法都主要考慮的是輸入條件,沒(méi)考慮輸入條件的各組合及各輸入條件間的相互制約關(guān)系??紤]描述多種條件的組合,相應(yīng)地產(chǎn)生多個(gè)動(dòng)作的形式來(lái)考慮設(shè)計(jì)測(cè)試用例,這就需要利用因果圖法。因果圖法?是從自然語(yǔ)言書(shū)寫(xiě)的程序規(guī)格說(shuō)明書(shū)中尋找因果關(guān)系,即輸入條件與輸出和程序狀態(tài)的改變,通過(guò)因果圖產(chǎn)生判定表。
設(shè)計(jì)用例步驟?
(1)分析程序規(guī)格說(shuō)明書(shū)中的描述中,哪些是原因、結(jié)果,原因常是輸入條件或輸入條件的等價(jià)類,而結(jié)果常是輸出條件
(2)分析程序規(guī)格說(shuō)明書(shū)中描述的語(yǔ)義內(nèi)容,并將其表示成連接各個(gè)原因與各個(gè)結(jié)果的因果圖
(3)由于語(yǔ)法或環(huán)境限制,有些原因和結(jié)果的組合的情況是不可能出現(xiàn)的,為表明這些特定的情況,在因果圖上使用若干特殊符號(hào)標(biāo)明約束條件
(4)把因果圖轉(zhuǎn)化為決策表
(5)為決策表中每一列表示的情況設(shè)計(jì)測(cè)試用例
1.5決策表法?是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具,可以把復(fù)雜邏輯關(guān)系和多種條件組合的情況表達(dá)得比較明確。決策表組成:條件樁+條件項(xiàng)+動(dòng)作樁+動(dòng)作項(xiàng)
決策表建立步驟?
(1)確定規(guī)則個(gè)數(shù)
(2)列出所有條件樁和動(dòng)作樁
(3)填入條件項(xiàng)
(4)填入動(dòng)作項(xiàng),制定初始決策表
(5)簡(jiǎn)化、合并相似規(guī)則或相同動(dòng)作
1.6場(chǎng)景法?用例場(chǎng)景是通過(guò)描述流經(jīng)用例的路徑來(lái)確定的過(guò)程,這個(gè)流經(jīng)過(guò)程要從用例開(kāi)始到結(jié)束遍歷其中所有的基本流和備選流
應(yīng)用場(chǎng)景法進(jìn)行黑盒測(cè)試步驟?
(1)根據(jù)規(guī)格說(shuō)明,描述出程序的基本流和各個(gè)備選流
(2)根據(jù)基本流和各個(gè)備選流生成不同的場(chǎng)景
(3)對(duì)每一場(chǎng)景生成相應(yīng)的測(cè)試用例
(4)對(duì)生成的所有測(cè)試用例進(jìn)行復(fù)審,去掉多余的測(cè)試用例,對(duì)每一測(cè)試用例確定測(cè)試數(shù)據(jù)
1.7黑盒測(cè)試選擇
經(jīng)驗(yàn)之談
(1)任何情況下都必須選擇邊界值分析法,此法設(shè)計(jì)的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤能力最強(qiáng)
(2)必要時(shí)用等價(jià)類劃分法補(bǔ)充些測(cè)試用例
(3)用錯(cuò)誤推測(cè)法再追加些測(cè)試用例
(4)若程序的功能說(shuō)明中含有輸入條件的組合情況,則可選用因果圖法和決策表法
2.白盒測(cè)試
關(guān)注軟件內(nèi)部細(xì)節(jié)和邏輯結(jié)構(gòu),利用構(gòu)件層設(shè)計(jì)的一部分而描述的控制結(jié)構(gòu)來(lái)生成測(cè)試用例。
2.1代碼檢查法
變量檢查、命名和類型審查、程序邏輯審查、程序語(yǔ)法檢查和程序結(jié)構(gòu)檢查。準(zhǔn)備?需求描述文檔、程序設(shè)計(jì)文檔、程序源碼清單、代碼編寫(xiě)標(biāo)準(zhǔn)和代碼錯(cuò)誤檢查表??捎霉ぞ摺?/p>
2.2靜態(tài)結(jié)構(gòu)分析法
是種對(duì)代碼機(jī)械性的、程序化的特性進(jìn)行分析的方法??捎霉ぞ?。
2.3程序插樁技術(shù)
借助往程序種插入操作來(lái)實(shí)現(xiàn)測(cè)試目的的方法。(如輸出語(yǔ)句)
2.4邏輯覆蓋法
2.5基本路徑法
2.6白盒測(cè)試方法選擇
(1)先靜態(tài)再動(dòng)態(tài)的組合方式,先代碼檢查和靜態(tài)結(jié)構(gòu)分析再覆蓋測(cè)試
(2)靜態(tài)分析結(jié)構(gòu)為先導(dǎo),通過(guò)代碼檢查和動(dòng)態(tài)測(cè)試對(duì)靜態(tài)分析結(jié)果做確認(rèn)
(3)覆蓋測(cè)試為白盒測(cè)試重點(diǎn),可用基本路徑法達(dá)到語(yǔ)句覆蓋標(biāo)準(zhǔn),對(duì)軟件重點(diǎn)模塊,應(yīng)用覆蓋標(biāo)準(zhǔn)衡量測(cè)試的覆蓋率
(4)單元測(cè)試階段以代碼檢查、覆蓋測(cè)試為主,集成測(cè)試階段要增加靜態(tài)結(jié)構(gòu)分析,在系統(tǒng)測(cè)試階段根據(jù)黑盒測(cè)試結(jié)果采用相應(yīng)的白盒測(cè)試方法
比較
黑盒測(cè)試:不涉及程序結(jié)構(gòu),用軟件規(guī)格說(shuō)明書(shū)生成測(cè)試用例,可適用從單元測(cè)試到系統(tǒng)驗(yàn)收測(cè)試,某些代碼得不到測(cè)試
白盒測(cè)試:考察程序邏輯解結(jié)構(gòu),用程序結(jié)構(gòu)信息生成測(cè)試用例,主要適用單元測(cè)試和集成測(cè)試