軟件測試探討論文

時(shí)間:2022-01-23 11:01:00

導(dǎo)語:軟件測試探討論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

軟件測試探討論文

一、軟件測試的定義

軟件測試(Softwaretesting)是軟件生存期(Softwarelifecycle)中的一個(gè)重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說明和編碼進(jìn)行最終復(fù)審的活動(dòng)。1983年IEEE提出的軟件工程術(shù)語中給軟件測試下的定義是:"使用人工或自動(dòng)的手段來運(yùn)行或測定某個(gè)軟件系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別"。這個(gè)定義明確指出:軟件測試的目的是為了檢驗(yàn)軟件系統(tǒng)是否滿足需求。

從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯(cuò)誤和缺陷,所以軟件測試應(yīng)該是"為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程"?;蛘哒f,軟件測試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤或缺陷。

二、影響軟件測試的因素

影響測試效率的因素除了測試方法之外,主要因素還有人為因素、軟件類型、錯(cuò)誤類型、測試充分度等。下面對(duì)這些因素作一個(gè)簡要分析。

1.人為因素

軟件測試中的許多工作是由人來完成的,因此,人為因素是影響測試效率的一個(gè)重要方面。這樣的差異并非偶然,這是因?yàn)闇y試人員在應(yīng)用一個(gè)測試方法時(shí)具有很大的靈活性,從而使測試人員的經(jīng)驗(yàn)和學(xué)習(xí)能力可以有較大的發(fā)揮余地。所以只能采用越來越嚴(yán)格的測試方法和過程來有效地避免人為因素對(duì)測試效率的影響。

2.軟件類型

軟件類型也是影響測試效率的一個(gè)重要因素。即使是同一個(gè)測試者,測試不同類型的軟件的效率和發(fā)現(xiàn)軟件錯(cuò)誤的能力也是不盡相同的。測試什么類型的軟件的效率較高則因人而異,這往往與測試者的相關(guān)知識(shí)、經(jīng)驗(yàn)與專業(yè)訓(xùn)練有關(guān)。

3.測試充分度

測試充分度反映了一個(gè)測試是否得到了良好的執(zhí)行,它直接關(guān)系到測試的效率。1993年Frankl和Weiss發(fā)現(xiàn),只有當(dāng)充分度十分接近100%時(shí),才能使測試發(fā)現(xiàn)錯(cuò)誤的能力得到發(fā)揮。因此,在測試軟件時(shí),必須設(shè)法使充分度十分接近100%,否則將難以保證測試質(zhì)量。

三、加強(qiáng)對(duì)測試工作的組織和管理

隨著軟件開發(fā)規(guī)模的增大、復(fù)雜程度的增加,以尋找軟件中的錯(cuò)誤為目的的測試工作就顯得更加困難。然而,為了盡可能多地找出程序中的錯(cuò)誤,生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,加強(qiáng)對(duì)測試工作的組織和管理就顯得尤為重要。

從軟件的生存周期看,測試往往指對(duì)程序的測試,這樣做的優(yōu)點(diǎn)是被測對(duì)象明確,測試的可操作性相對(duì)較強(qiáng)。但是,由于測試的依據(jù)是規(guī)格說明書、設(shè)計(jì)文檔和使用說明書,如果設(shè)計(jì)有錯(cuò)誤,測試的質(zhì)量就難以保證。即使測試后發(fā)現(xiàn)是設(shè)計(jì)的錯(cuò)誤,這時(shí),修改的代價(jià)是相當(dāng)昂貴的。因此,較理想的做法應(yīng)該是對(duì)軟件的開發(fā)過程,按軟件工程各階段形成的結(jié)果,分別進(jìn)行嚴(yán)格的審查。

雖然測試是在實(shí)現(xiàn)且經(jīng)驗(yàn)證后進(jìn)行的,實(shí)際上,測試的準(zhǔn)備工作在分析和設(shè)計(jì)階段就開始了。

1.測試的過程及組織

當(dāng)設(shè)計(jì)工作完成以后,就應(yīng)該著手測試的準(zhǔn)備工作了,一般來講,由一位對(duì)整個(gè)系統(tǒng)設(shè)計(jì)熟悉的設(shè)計(jì)人員編寫測試大綱,明確測試的內(nèi)容和測試通過的準(zhǔn)則,設(shè)計(jì)完整合理的測試用例,以便系統(tǒng)實(shí)現(xiàn)后進(jìn)行全面測試。

在實(shí)現(xiàn)組將所開發(fā)的程序經(jīng)驗(yàn)證后,提交測試組,由測試負(fù)責(zé)人組織測試,測試一般可按下列方式組織:

(1)首先,測試人員要仔細(xì)閱讀有關(guān)資料,包括規(guī)格說明、設(shè)計(jì)文檔、使用說明書及在設(shè)計(jì)過程中形成的測試大綱、測試內(nèi)容及測試的通過準(zhǔn)則,全面熟悉系統(tǒng),編寫測試計(jì)劃,設(shè)計(jì)測試用例,作好測試前的準(zhǔn)備工作。

(2)為了保證測試的質(zhì)量,將測試過程分成幾個(gè)階段,即:代碼審查、單元測試、集成測試和驗(yàn)收測試。

(3)代碼會(huì)審:代碼會(huì)審是由一組人通過閱讀、討論和爭議對(duì)程序進(jìn)行靜態(tài)分析的過程。會(huì)審小組由組長,2~3名程序設(shè)計(jì)和測試人員及程序員組成。會(huì)審小組在充分閱讀待審程序文本、控制流程圖及有關(guān)要求、規(guī)范等文件基礎(chǔ)上,召開代碼會(huì)審會(huì),程序員逐句講解程序的邏輯,并展開熱烈的討論甚至爭議,以揭示錯(cuò)誤的關(guān)鍵所在。實(shí)踐表明,程序員在講解過程中能發(fā)現(xiàn)許多自己原來沒有發(fā)現(xiàn)的錯(cuò)誤,而討論和爭議則進(jìn)一步促使了問題的暴露。例如,對(duì)某個(gè)局部性小問題修改方法的討論,可能發(fā)現(xiàn)與之有牽連的甚至能涉及到模塊的功說明、模塊間接口和系統(tǒng)總結(jié)構(gòu)的大問題,導(dǎo)致對(duì)需求定義的重定義、重設(shè)計(jì)驗(yàn)證,大大改善了軟件的質(zhì)量。

(4)單元測試:單元測試集中在檢查軟件設(shè)計(jì)的最小單位-模塊上,通過測試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯(cuò)誤。由于模塊規(guī)模小、功能單一、邏輯簡單,測試人員有可能通過模塊說明書和源程序,清楚地了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),采用結(jié)構(gòu)測試(白盒法)的用例,盡可能達(dá)到徹底測試,然后輔之以功能測試(黑盒法)的用例,使之對(duì)任何合理和不合理的輸入都能鑒別和響應(yīng)。高可靠性的模塊是組成可靠系統(tǒng)的堅(jiān)實(shí)基礎(chǔ)

(5)集成測試:集成測試是將模塊按照設(shè)計(jì)要求組裝起來同時(shí)進(jìn)行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如數(shù)據(jù)穿過接口時(shí)可能丟失;一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。

2.測試的人員組織

為了保證軟件的開發(fā)質(zhì)量,軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個(gè)過程。因此,對(duì)分析、設(shè)計(jì)和實(shí)現(xiàn)等各階段所得到的結(jié)果,包括需求規(guī)格說明、設(shè)計(jì)規(guī)格說明及源程序都應(yīng)進(jìn)行軟件測試?;诖耍瑴y試人員的組織也應(yīng)是分階段的。

(1)軟件的設(shè)計(jì)和實(shí)現(xiàn)都是基于需求分析規(guī)格說明進(jìn)行的。需求分析規(guī)格說明是否完整、正確、清晰是軟件開發(fā)成敗的關(guān)鍵。為了保證需求定義的質(zhì)量,應(yīng)對(duì)其進(jìn)行嚴(yán)格的審查。

(2)設(shè)計(jì)評(píng)審:軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換成軟件表示的過程。主要描繪出系統(tǒng)結(jié)構(gòu)、詳細(xì)的處理過程和數(shù)據(jù)庫模式。按照需求的規(guī)格說明對(duì)系統(tǒng)結(jié)構(gòu)的合理性、處理過程的正確性進(jìn)行評(píng)價(jià),同時(shí)利用關(guān)系數(shù)據(jù)庫的規(guī)范化理論對(duì)數(shù)據(jù)庫模式進(jìn)行審查。

(3)程序的測試:軟件測試。是整個(gè)軟件開發(fā)過程中交付用戶使用前的最后階段,是軟件質(zhì)量保證的關(guān)鍵。軟件測試在軟件生存周期中橫跨兩個(gè)階段:通常在編寫出每一個(gè)模塊之后,就對(duì)它進(jìn)行必要的測試(稱為單元測試)。編碼與單元測試屬于軟件生存周期中的同一階段。該階段的測試工作,由編程組內(nèi)部人員進(jìn)行交叉測試(避免編程人員測試自己的程序)。這一階段結(jié)束后,進(jìn)入軟件生存周期的測試階段,對(duì)軟件系統(tǒng)進(jìn)行各種綜合測試。測試工作由專門的測試組完成,測試組設(shè)組長一名,負(fù)責(zé)整個(gè)測試的計(jì)劃、組織工作。測試組的其他成員由具有一定的分析、設(shè)計(jì)和編程經(jīng)驗(yàn)的專業(yè)人員組成,人數(shù)根據(jù)具體情況可多可少,一般3~5人為宜。

【論文關(guān)鍵詞】:定義;因素;組織管理

【論文摘要】:現(xiàn)今軟件開發(fā)的規(guī)模越來越大,作為軟件開發(fā)的重要環(huán)節(jié),軟件測試越來越受到人們的重視,軟件測試的重要性更加突出。文章主要探討軟件測試中的影響因素和軟件測試質(zhì)量的提升與測試管理階段采用的方法和人員的組織的幾點(diǎn)認(rèn)識(shí)。