軟件評(píng)測(cè)基礎(chǔ)知識(shí)
軟件測(cè)試基本概念
軟件質(zhì)量與軟件測(cè)試:軟件測(cè)試是軟件質(zhì)量保證工作的一個(gè)重要環(huán)節(jié)。軟件測(cè)試和軟件質(zhì)量保證是軟件質(zhì)量工程的兩個(gè)不同層面的工作。軟件測(cè)試只是軟件質(zhì)量保證工作中的一個(gè)重要環(huán)節(jié)。質(zhì)量保證(QA)的工作是通過(guò)預(yù)防、檢查與改進(jìn)來(lái)保證軟件的質(zhì)量,它所關(guān)注的是軟件質(zhì)量的檢查和測(cè)量。軟件測(cè)試所關(guān)心的不是過(guò)程的活動(dòng),而是對(duì)過(guò)程的產(chǎn)物以及開(kāi)發(fā)出的軟件進(jìn)行剖析。
軟件測(cè)試定義:軟件測(cè)試就是在軟件投入運(yùn)行前對(duì)軟件需求分析、軟件設(shè)計(jì)規(guī)格說(shuō)明和軟件編碼進(jìn)行的查錯(cuò)(包括代碼執(zhí)行活動(dòng)與人工活動(dòng))。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序的錯(cuò)誤。是在軟件投入運(yùn)行前,對(duì)軟件需求分析、軟件設(shè)計(jì)規(guī)格說(shuō)明和軟件編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。
軟件測(cè)試目的:(1)測(cè)試是一個(gè)為了尋找錯(cuò)誤而運(yùn)行程序的過(guò)程;(2)一個(gè)好的測(cè)試用例是指很可能找到迄今為止未發(fā)現(xiàn)的錯(cuò)誤的用例;(3)一個(gè)成功的測(cè)試是指揭示了迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。
軟件測(cè)試的目標(biāo)是能夠以耗費(fèi)最少時(shí)間與最小工作量找出軟件系統(tǒng)中潛在的各種錯(cuò)誤與缺陷。
測(cè)試只能證明程序中錯(cuò)誤的存在,但不能證明程序中沒(méi)有錯(cuò)誤。
軟件測(cè)試原則:(1)盡早地并不斷地進(jìn)行軟件測(cè)試;(2)程序員或程序設(shè)計(jì)機(jī)構(gòu)應(yīng)避免測(cè)試自己設(shè)計(jì)的程序;(3)測(cè)試前應(yīng)當(dāng)設(shè)定合理的測(cè)試用例;(4)測(cè)試用例的設(shè)計(jì)不僅要有合法的輸入數(shù)據(jù),還要有非法的輸入數(shù)據(jù);(5)在對(duì)程序修改之后要進(jìn)行回歸測(cè)試;(6)充分注意測(cè)試中的群集現(xiàn)象;(7)妥善保留測(cè)試計(jì)劃、全部測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,并把它們作為軟件的組成部分之一,為軟件的維護(hù)提供方便;(8)應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查;(9)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。
軟件測(cè)試對(duì)象:軟件的測(cè)試不僅僅是程序的測(cè)試,軟件的測(cè)試應(yīng)貫穿于整個(gè)軟件生命同期中。在軟件定義階段產(chǎn)生的可行性報(bào)告、項(xiàng)目實(shí)施計(jì)劃、軟件需求說(shuō)明書(shū)或系統(tǒng)功能說(shuō)明書(shū),在軟件開(kāi)發(fā)階段產(chǎn)生的概要測(cè)試說(shuō)明書(shū)、詳細(xì)設(shè)計(jì)說(shuō)明書(shū),以及源程序等都是軟件測(cè)試的對(duì)象。
軟件測(cè)試過(guò)程模型:V模型、W模型、H模型。
軟件測(cè)試模型的使用:在實(shí)際軟件測(cè)試的實(shí)施過(guò)程中,應(yīng)靈活地運(yùn)用各種模型的優(yōu)點(diǎn),通?梢栽赪模型的框架下,運(yùn)用H模型的思想進(jìn)行獨(dú)立的測(cè)試。當(dāng)有變更發(fā)生時(shí),按X模型和前置模型的思想進(jìn)行處理。同時(shí),將測(cè)試和開(kāi)發(fā)緊密結(jié)合,尋找恰當(dāng)?shù)木途w點(diǎn)開(kāi)始測(cè)試,并反復(fù)進(jìn)行迭代測(cè)試,以達(dá)到按期完成預(yù)定的目標(biāo)。
軟件問(wèn)題分類(lèi):軟件錯(cuò)誤、軟件缺陷、軟件故障、軟件失效。
軟件測(cè)試類(lèi)型:
按開(kāi)發(fā)階段分:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試(有效性測(cè)試)、系統(tǒng)測(cè)試
確認(rèn)測(cè)試、驗(yàn)收測(cè)試
按測(cè)試實(shí)施組織分:開(kāi)發(fā)方測(cè)試(驗(yàn)證測(cè)試或alpha測(cè)試)、用戶測(cè)試(beta)、第三方測(cè)試(獨(dú)立測(cè)試)
按測(cè)試方式分:動(dòng)態(tài)測(cè)試、靜態(tài)測(cè)試
按測(cè)試技術(shù)分:白盒測(cè)試、黑盒測(cè)試、灰盒測(cè)試
軟件測(cè)試過(guò)程:用黑盒法設(shè)計(jì)基本的測(cè)試方案,再利用白盒法補(bǔ)充一些必要的測(cè)試方案?梢杂靡韵虏呗越Y(jié)合各種方法:
(1)在任何情況下都應(yīng)該使用邊界值分析的方法;
(2)必要時(shí)用等價(jià)劃分法補(bǔ)充測(cè)試方案;
(3)必要時(shí)用錯(cuò)誤推測(cè)法補(bǔ)充測(cè)試方案;
(4)如果在程序的功能說(shuō)明中含有輸入條件的組合,最好在一開(kāi)始就用因果圖法,然后再按以上(1)、(2)、(3)步進(jìn)行。
(5)對(duì)照程序邏輯,檢查已設(shè)計(jì)出的設(shè)計(jì)方案?梢愿鶕(jù)對(duì)程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),如果現(xiàn)有測(cè)試方案的邏輯覆蓋程度沒(méi)有達(dá)到要求的覆蓋標(biāo)準(zhǔn),則應(yīng)再補(bǔ)充一些測(cè)試方案。
單元測(cè)試主要是對(duì)模塊的5個(gè)基本特性進(jìn)行測(cè)試和評(píng)價(jià):(1)模塊接口;(2)局部數(shù)據(jù)結(jié)構(gòu);(3)重要的執(zhí)行路徑;(4)錯(cuò)誤處理;(5)邊界測(cè)試。
在集成測(cè)試時(shí),要考慮的問(wèn)題有:數(shù)據(jù)經(jīng)過(guò)接口是否會(huì)丟失;一個(gè)模塊對(duì)另一模塊是否造成不應(yīng)有的影響;幾個(gè)子功能組合起來(lái)能否實(shí)現(xiàn)主功能;誤差不斷積累是否達(dá)到不可接受的程度;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題。
確認(rèn)測(cè)試又稱為有效性測(cè)試、合格測(cè)試或驗(yàn)收測(cè)試。確認(rèn)測(cè)試主要由使用用戶參加測(cè)試,檢驗(yàn)軟件規(guī)格說(shuō)明的技術(shù)標(biāo)準(zhǔn)的符合程度,是保證軟件質(zhì)量的最后關(guān)鍵環(huán)節(jié)。
系統(tǒng)測(cè)試是將通過(guò)確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試實(shí)質(zhì)上是由一系列不同測(cè)試組成的,其主要目的是充分運(yùn)行系統(tǒng),驗(yàn)證系統(tǒng)各個(gè)部件是否都能正常工作并完成所分配的功能。
系統(tǒng)測(cè)試包括:恢復(fù)測(cè)試、安全性測(cè)試、強(qiáng)度測(cè)試、性能測(cè)試等。
驗(yàn)收測(cè)試是以用戶為主,軟件開(kāi)發(fā)人員和質(zhì)量保證人員也應(yīng)參加的測(cè)試。由用戶參加設(shè)計(jì)測(cè)試用例。使用用戶界面輸入測(cè)試數(shù)據(jù),并分析測(cè)試的輸出結(jié)果。驗(yàn)收測(cè)試往往知系統(tǒng)測(cè)試完成后,項(xiàng)目最終交付前進(jìn)行。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |