四、軟件測試方法/技術(shù) 軟件測試分類(按測試方法區(qū)分): 以測試過程中程序執(zhí)行狀態(tài)為依據(jù)可分為:靜態(tài)測試(Static Testing,,ST)和動態(tài)測試(Dynamic Testing,,DT),(測試執(zhí)行階段采用的方法),; 以具體實(shí)現(xiàn)算法細(xì)節(jié)和系統(tǒng)內(nèi)部結(jié)構(gòu)的相關(guān)情況為根據(jù)可分:黑盒測試,、白盒測試和灰盒測試三類,(測試用例設(shè)計(jì)階段采用的方法),; 從程序執(zhí)行的方式來分類,,可分為:人工測試(Manual Testing,MT)和自動化測試(Automatic Testing,,AT),; 1.動態(tài)測試 動態(tài)測試需要在開發(fā)/測試環(huán)境或?qū)嶋H運(yùn)行環(huán)境中運(yùn)行軟件,并使用測試用例去查找軟件缺陷,; 動態(tài)測試包括功能確認(rèn)與接口測試,、覆蓋率分析、性能分析,、內(nèi)存分析等; 2.靜態(tài)測試 靜態(tài)測試不實(shí)際運(yùn)行軟件,,主要是對軟件的編程格式,、結(jié)構(gòu)等方面進(jìn)行評估; 靜態(tài)測試包括代碼檢查,、程序結(jié)構(gòu)分析,、代碼質(zhì)量度量等。它可以由人工進(jìn)行,,也可以借助軟件工具自動進(jìn)行,; 3.黑盒測試 (1)什么是黑盒測試: 把系統(tǒng)看成一個不透明的黑匣,在完全不考慮系統(tǒng)內(nèi)部結(jié)構(gòu)和處理過程的情況下驗(yàn)證系統(tǒng)是否達(dá)到用戶需求,; 不考慮系統(tǒng)或者組件的內(nèi)部細(xì)節(jié),,只關(guān)注在選擇的輸入和相應(yīng)的執(zhí)行條件下所產(chǎn)生的輸出結(jié)果; 又稱功能測試或數(shù)據(jù)驅(qū)動測試,,是針對軟件的功能需求/實(shí)現(xiàn)進(jìn)行測試,; 通過測試來檢測每個功能是否符合需求,不考慮程序內(nèi)部的邏輯結(jié)構(gòu),; (2)黑盒測試方法:等價類劃分,、邊界值、決策表、錯誤推測,、場景法等,; 4.白盒測試 (1)什么是白盒測試: 白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試; 必須知道軟件內(nèi)部工作過程,,通過測試來檢測軟件內(nèi)部是否按照需求,、設(shè)計(jì)正常運(yùn)行; 通過邏輯覆蓋,、路徑覆蓋等方式選擇測試用例,,可以用測試覆蓋率評價測試用例; (2)白盒測試的主要方法(對應(yīng)于程序的一些主要結(jié)構(gòu):語句,、分支,、邏輯路徑、變量): 語句覆蓋方法,; 分支覆蓋方法,; 邏輯覆蓋方法; 5.灰盒測試 (1)是介于白盒測試與黑盒測試之間的一種測試,,灰盒測試多用于集成測試階段,,不僅關(guān)注輸出、輸入的正確性,,同時也關(guān)注程序內(nèi)部的情況,。 灰盒測試不像白盒那樣詳細(xì)、完整,,但又比黑盒測試更關(guān)注程序的內(nèi)部邏輯,,常常是通過一些表征性的現(xiàn)象、事件,、標(biāo)志來判斷內(nèi)部的運(yùn)行狀態(tài),。 6.人工測試 (1)傳統(tǒng)的測試方法: 由測試人員手工編寫測試用例; 缺點(diǎn)在于測試工作量大,,重復(fù)多,,回歸測試難以實(shí)現(xiàn); (2)手工完成測試的全部過程無法保證測試的科學(xué)性與嚴(yán)密性,; 修改的缺陷越多,,回歸測試越困難; 沒有人能向決策層提供精確的數(shù)據(jù)以度量當(dāng)前的工作進(jìn)度及工作效率,; 反復(fù)測試帶來的倦怠情緒及其他人為因素使得測試標(biāo)準(zhǔn)前后不一,; 測試花費(fèi)的時間越長,測試的嚴(yán)格性也就越低,; 7.自動化測試 (1)利用軟件測試工具自動實(shí)現(xiàn)全部或部分測試工作:管理,、設(shè)計(jì),、執(zhí)行和報告; 自動測試節(jié)省大量的測試開銷,,并能夠完成一些手工測試無法實(shí)現(xiàn)的測試,; (2)適合自動化的測試操作: 測試用例的生成(包括測試輸入,標(biāo)準(zhǔn)輸出,,測試操作指令等),; 測試的執(zhí)行與控制(包括單機(jī)與網(wǎng)絡(luò)多機(jī)分布運(yùn)行;夜間及假日運(yùn)行),; 測試對象,、范圍、版本等的控制,; 測試結(jié)果與預(yù)期輸出的對比,; 不吻合的測試結(jié)果的分析、記錄,、分類,、和通報; 測試的統(tǒng)計(jì),,報表的產(chǎn)生,; (3)自動測試將測試人員從反復(fù)、煩雜的測試執(zhí)行中解放出來,,用更多的時間進(jìn)行測試設(shè)計(jì)和結(jié)果分析,; 軟件測試不可能完全自動化; 不能完成所有手工測試任務(wù),; 無創(chuàng)造性且靈活性差,,不能改進(jìn)測試的有效性; 過程中可能會遇到許多意想不到的問題,,特別是當(dāng)軟件不穩(wěn)定時; 測試腳本的維護(hù)高,; |
|
來自: 一束光線 > 《測試及驗(yàn)證》