按測(cè)試階段來分類
單元測(cè)試贰镣,集成測(cè)試呜象,系統(tǒng)測(cè)試膳凝,驗(yàn)收測(cè)試
- 單元測(cè)試
1.什么是單元測(cè)試?
對(duì)軟件中的進(jìn)行檢查和驗(yàn)證恭陡。
向C語言可以看成各個(gè)函數(shù)蹬音,像JAVA這種面向?qū)ο蟮恼Z言可以看成每個(gè)類,像一些有界面的功能軟件也可以看成單個(gè)的功能項(xiàng)休玩。
2 .單元測(cè)試的原則
- 盡可能保證各個(gè)測(cè)試用例是相互獨(dú)立的著淆。
public void testlogin(){
String username,password;
uername = "test";
password = getpassFromDB(username);//產(chǎn)生了依賴,應(yīng)該盡量避免
Boolean result = app.login(username,password);
assertTrue(result);
}
- 一般由代碼的開發(fā)人員來實(shí)施拴疤,用以檢驗(yàn)所開發(fā)的代碼功能符合自己的設(shè)計(jì)要求永部。
3.單元測(cè)試的益處 - 能盡早發(fā)現(xiàn)缺陷
- 有利于重構(gòu)
- 簡(jiǎn)化集成(為集成測(cè)試奠定基礎(chǔ))
- 文檔
- 用于設(shè)計(jì)
4.單元測(cè)試的限制 - 不可能覆蓋所有的執(zhí)行路徑,所以不可能保證捕捉到所有路徑的錯(cuò)誤呐矾。
- 每一行代碼苔埋,一般需要3~5行測(cè)試代碼才能完成單元測(cè)試。所以存在投入和產(chǎn)出的一個(gè)平衡凫佛。
5.單元測(cè)試的框架
JUunit(java)
PHPUnit(php)
nunit
CppUnit(C++) - 集成測(cè)試
1.定義:是在單元測(cè)試的基礎(chǔ)上讲坎,測(cè)試在將所有的軟件單元按照概要設(shè)計(jì)規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達(dá)到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動(dòng)愧薛。
2.集成測(cè)試的主要實(shí)施方案 - Big Bang一次性集成測(cè)試
- 自頂向下
- 自底向上(針對(duì)已經(jīng)組裝的測(cè)試晨炕,不需要再針對(duì)上一層編寫組裝模塊)
- 核心系統(tǒng)集成
- 高頻集成
3.集成測(cè)試&單元測(cè)試 - 測(cè)試的對(duì)象不同
- 測(cè)試的依據(jù)不同
- 測(cè)試的方法不同
- 系統(tǒng)測(cè)試
定義:是將經(jīng)過集成測(cè)試的軟件,作為計(jì)算機(jī)系統(tǒng)的一個(gè)部分毫炉,與系統(tǒng)中其他部分結(jié)合起來瓮栗,在實(shí)際運(yùn)行環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行的一系列嚴(yán)格有效的測(cè)試,以發(fā)現(xiàn)軟件的潛在問題瞄勾,保證系統(tǒng)的正常運(yùn)行费奸。
1.關(guān)注點(diǎn) - 關(guān)注系統(tǒng)本身的使用
- 關(guān)注系統(tǒng)與其他系統(tǒng)間的連通
- 關(guān)注系統(tǒng)在不同使用壓力下的表現(xiàn)
- 關(guān)注系統(tǒng)在真實(shí)使用環(huán)境下的表現(xiàn)
2.系統(tǒng)測(cè)試&集成測(cè)試 - 測(cè)試對(duì)象:
集成測(cè)試:由通過了單元測(cè)試的各個(gè)模塊所集成起來的控件。
系統(tǒng)測(cè)試:除了軟件之外进陡,還包括計(jì)算機(jī)硬件及相關(guān)的外圍設(shè)備愿阐、數(shù)據(jù)采集和傳輸機(jī)構(gòu)、支持軟件、系統(tǒng)操作人員等整個(gè)系統(tǒng)。 - 測(cè)試時(shí)間:
集成測(cè)試介于單元測(cè)試和系統(tǒng)測(cè)試之間測(cè)試
系統(tǒng)測(cè)試在集成測(cè)試之后 - 測(cè)試內(nèi)容
集成測(cè)試:各個(gè)單元模塊之間的接口
系統(tǒng)測(cè)試:整個(gè)系統(tǒng)的功能和性能 - 測(cè)試角度:
集成測(cè)試偏于技術(shù)角度驗(yàn)證
系統(tǒng)測(cè)試偏于業(yè)務(wù)角度驗(yàn)證 - 驗(yàn)收測(cè)試
定義:也稱交付測(cè)試揪罕,針對(duì)用戶需求、業(yè)務(wù)流程的正式的測(cè)試辛孵,確定系統(tǒng)是否滿足驗(yàn)收標(biāo)準(zhǔn),由用戶赡磅、客戶或其他授權(quán)機(jī)決定是否接受系統(tǒng)魄缚。
細(xì)分:用戶驗(yàn)收測(cè)試,運(yùn)行驗(yàn)收測(cè)試焚廊,合同和規(guī)范驗(yàn)收測(cè)試冶匹,alpha測(cè)試习劫,Beta測(cè)試(完全脫離開發(fā)者環(huán)境)。
按測(cè)試手段來分類
黑盒測(cè)試徙硅、白盒測(cè)試
靜態(tài)測(cè)試榜聂、動(dòng)態(tài)測(cè)試
手工測(cè)試、自動(dòng)化測(cè)試
- 黑盒測(cè)試(一般來說嗓蘑,在系統(tǒng)測(cè)試階段使用的更多。)
1.黑盒測(cè)試的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):容易實(shí)施匿乃,不需要關(guān)注內(nèi)部的實(shí)現(xiàn)桩皿;更貼近用戶的使用角度。
缺點(diǎn):測(cè)試覆蓋率較低幢炸,一般只能覆蓋到代碼量的不到40%泄隔;
針對(duì)黑盒的自動(dòng)化測(cè)試,復(fù)用率較低宛徊,維護(hù)成本較高佛嬉。
2.黑盒測(cè)試主要測(cè)試什么 - 是否有不正確或遺漏的功能?
- 在接口上闸天,輸入是否能正確的接受暖呕?能否輸出正確的結(jié)果?
- 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問錯(cuò)誤苞氮?
- 性能是否能夠滿足要求湾揽?
3.黑盒測(cè)試的主要設(shè)計(jì)方案
等價(jià)類劃分法,邊界值分析法笼吟,錯(cuò)誤推測(cè)法库物,因果圖法,正交試驗(yàn)分析法贷帮,狀態(tài)遷移圖法戚揭,流程分析法。 - 白盒測(cè)試(結(jié)構(gòu)化測(cè)試撵枢,透明盒測(cè)試)
主要的邏輯單位:語句民晒、條件、條件組合诲侮、分支镀虐、路徑。
1.白盒測(cè)試的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):迫使測(cè)試人員去仔細(xì)思考軟件的實(shí)現(xiàn)沟绪,理解原理刮便。
可以檢測(cè)代碼中的每條分支和路徑;揭示隱藏在代碼中的錯(cuò)誤绽慈;對(duì)代碼的測(cè)試比較徹底恨旱。
缺點(diǎn):昂貴(覆蓋程度高)辈毯;無法檢測(cè)代碼中遺漏的路徑和數(shù)據(jù)敏感性錯(cuò)誤;不能直接驗(yàn)證需求的正確性搜贤。
2.主要的測(cè)試方法
代碼檢測(cè)法谆沃,靜態(tài)結(jié)構(gòu)分析,靜態(tài)質(zhì)量度量法仪芒,邏輯覆蓋法唁影,基本路徑測(cè)試法(在程序控制流圖的基礎(chǔ)上)。 - 灰盒測(cè)試
定義:介于黑掂名、白盒測(cè)試之間的据沈,關(guān)注輸出對(duì)于輸入的正確性,同時(shí)也關(guān)注內(nèi)部表現(xiàn)饺蔑。 - 靜態(tài)測(cè)試
定義:無須執(zhí)行被測(cè)程序锌介,而是通過評(píng)審軟件文檔或代碼,度量程序靜態(tài)復(fù)雜度猾警,檢查軟件是否符合編程標(biāo)準(zhǔn)孔祸,借以發(fā)現(xiàn)編寫程序的不足之處,減少錯(cuò)誤出現(xiàn)的概率
方式:相審发皿,走查崔慧,會(huì)議 - 動(dòng)態(tài)測(cè)試
定義:動(dòng)態(tài)測(cè)試是指被運(yùn)行被測(cè)程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異雳窟,并分析運(yùn)行效率尊浪、正確性和健壯性等。 - 手工測(cè)試
由專門的測(cè)試人員從用戶視角來驗(yàn)證軟件是否滿足設(shè)計(jì)要求的行為封救。更適用針對(duì)深度的測(cè)試和強(qiáng)調(diào)主觀判斷的測(cè)試拇涤。(眾包測(cè)試,探索式測(cè)試) - 自動(dòng)化測(cè)試
適用單獨(dú)的測(cè)試工具軟件控制測(cè)試的自動(dòng)化執(zhí)行以及對(duì)預(yù)期和結(jié)果進(jìn)行自動(dòng)檢查誉结。(單元測(cè)試鹅士、接口測(cè)試、性能測(cè)試) - 手工測(cè)試VS自動(dòng)化測(cè)試
手工測(cè)試:容易發(fā)現(xiàn)缺陷惩坑,容易實(shí)施掉盅,創(chuàng)造性、靈活性以舒。
覆蓋量化難趾痘,重復(fù)測(cè)試效率低,不一致性蔓钟、可靠性低永票,人力資源依賴。
自動(dòng)化測(cè)試:高效率、速度快侣集;高復(fù)用性键俱;覆蓋率容易度量;準(zhǔn)確世分,可靠编振;不知疲勞;機(jī)械臭埋、發(fā)現(xiàn)缺陷率低踪央;一次性投入較大。
按測(cè)試模式來分類
瀑布模型斋泄、敏捷測(cè)試杯瞻、基于腳本的測(cè)試、基于風(fēng)險(xiǎn)的測(cè)試炫掐、探索式測(cè)試等
傳統(tǒng)的瀑布模型
項(xiàng)目計(jì)劃→需求分析→軟件設(shè)計(jì)→程序開發(fā)→軟件測(cè)試→集成維護(hù)
1.優(yōu)點(diǎn)強(qiáng)調(diào)需求、設(shè)計(jì)的作用睬涧;前一階段完成后募胃,只需關(guān)注后續(xù)階段。
為項(xiàng)目提供了按階段劃分的檢查點(diǎn)畦浓,里程碑清晰痹束;文檔規(guī)范。
2.缺點(diǎn):難以適應(yīng)需求的頻繁變化讶请;項(xiàng)目周期后端才能看到成果祷嘶;強(qiáng)制的里程碑、完成時(shí)間點(diǎn)夺溢;文檔動(dòng)作量大论巍。
-
V模型
V模型 -
W模型
X模型 -
X模型
image.png -
H模型
H模型