摘要:本文主要對(duì)軟件測(cè)試的目的、用例以及測(cè)試方法進(jìn)行了分析,并探討了計(jì)算機(jī)軟件深度開發(fā)應(yīng)用,希望給我們的工作起到一定指導(dǎo)作用。
關(guān)鍵詞:計(jì)算機(jī)軟件;軟件測(cè)試;軟件開發(fā);應(yīng)用軟件
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 20-0000-02
1 軟件測(cè)試概述
1.1 軟件測(cè)試的目的。G.J.Myers在1979年發(fā)表的《軟件測(cè)試之藝術(shù)》中對(duì)軟件測(cè)試進(jìn)行了定義,這也是后來人們所認(rèn)同并遵守的一個(gè)理念:程序測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,換句話說軟件測(cè)試的主要作用在于發(fā)現(xiàn)出存在于程序之中的錯(cuò)誤,而不是對(duì)軟件無錯(cuò)誤進(jìn)行證明。因此,發(fā)現(xiàn)至今沒有被發(fā)現(xiàn)的錯(cuò)誤將是軟件測(cè)試成功的最重要標(biāo)準(zhǔn)之一。但是bug是隨著時(shí)間和條件的不同而出現(xiàn)的,這就使得在真正意義上我們是無法證明程序絕對(duì)正確的。
1.2 軟件測(cè)試用例。在對(duì)軟件進(jìn)行測(cè)試的過程中,軟件測(cè)試用例是核心,也是我們軟件測(cè)試成功的基礎(chǔ),因此,對(duì)于測(cè)試用例的設(shè)計(jì)屬于整個(gè)測(cè)試工作中最有挑戰(zhàn)性的工作之一。一般來說,它包含了測(cè)試輸入數(shù)據(jù)、對(duì)步驟進(jìn)行執(zhí)行以及與之對(duì)應(yīng)的預(yù)期輸出這三部分。在軟件測(cè)試中,軟件測(cè)試用例的作用主要體現(xiàn)在:對(duì)測(cè)試的實(shí)施進(jìn)行指導(dǎo);對(duì)測(cè)試數(shù)據(jù)的規(guī)劃進(jìn)行準(zhǔn)備;幫助完成測(cè)試腳本/設(shè)計(jì)規(guī)格說明書的編寫;對(duì)測(cè)試結(jié)果度量基準(zhǔn)進(jìn)行評(píng)估;分析缺陷的標(biāo)準(zhǔn)。
1.3 軟件測(cè)試的方法。軟件測(cè)試中,我們使用的方法有很多種,而通過不同的較多對(duì)這些方法進(jìn)行劃分也將得到不同的結(jié)果,比如;動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試、人工測(cè)試及自動(dòng)化測(cè)試、白盒測(cè)試及黑盒測(cè)試等。限于篇幅,我們僅以白盒測(cè)試及黑盒測(cè)試為例進(jìn)行分析。
(1)黑盒測(cè)試。黑盒測(cè)試也被我們稱之為功能測(cè)試,其主要是利用測(cè)試來對(duì)每一功能是否能夠被正常使用進(jìn)行檢測(cè)。在測(cè)試的過程中,我們將測(cè)試當(dāng)做一個(gè)不可以打開的黑盒,完全不考慮其內(nèi)部的特性及內(nèi)部結(jié)構(gòu),只是在程序的接口測(cè)試。
黑盒測(cè)試方法是根據(jù)用戶角度,從輸入和輸出的關(guān)系來進(jìn)行測(cè)試的,因此,如果外部特性本身就存在問題或者規(guī)格說明書的規(guī)定存在著不足,使用黑盒測(cè)試方法是不能夠發(fā)現(xiàn)這些問題的。具體來說,黑盒測(cè)試法主要測(cè)試的錯(cuò)誤有:功能遺漏或者不正確;界面存在的錯(cuò)誤;性能存在的錯(cuò)誤;數(shù)據(jù)庫訪問出錯(cuò);初始化及終止錯(cuò)誤等。
此外黑盒測(cè)試中只有利用窮舉法把所有有可能的輸入都當(dāng)做測(cè)試情況才可能將程序中所有的錯(cuò)誤查出。因此,我們不僅僅要對(duì)合法的輸入進(jìn)行測(cè)試,還要對(duì)不合法的輸入進(jìn)行測(cè)試,基于此,所謂的完全測(cè)試是不可能實(shí)現(xiàn)的,實(shí)際的工作中我們多使用針對(duì)性測(cè)試,這主要是通過測(cè)試案例的制訂來指導(dǎo)測(cè)試的實(shí)施,進(jìn)而確保有組織、按步驟、有計(jì)劃的進(jìn)行軟件測(cè)試。
在黑盒測(cè)試中,我們要做到能夠加以量化,只有這樣才能對(duì)軟件質(zhì)量進(jìn)行保障,上文中提到的測(cè)試用例就是軟件測(cè)試行為量化的一個(gè)方法。一般在黑盒測(cè)試中,測(cè)試用例設(shè)計(jì)的方法主要有:邊界值分析法、等價(jià)類劃分法、因果圖法、錯(cuò)誤推測(cè)法、正交試驗(yàn)設(shè)計(jì)法、判定表驅(qū)動(dòng)法、功能圖法等。
(2)白盒測(cè)試。白盒測(cè)試也被稱之為邏輯驅(qū)動(dòng)測(cè)試或者結(jié)構(gòu)測(cè)試,相對(duì)于黑盒測(cè)試,它屬于根據(jù)程序內(nèi)部結(jié)構(gòu)對(duì)程序進(jìn)行測(cè)試,經(jīng)過白盒測(cè)試,我們一般檢測(cè)的內(nèi)容是程序內(nèi)部的動(dòng)作是否符合設(shè)計(jì)規(guī)格說明書的規(guī)定,也就是檢測(cè)程序每一條通路工作的過程中是否按照預(yù)期的方式進(jìn)行。這種方式是把被測(cè)的程序當(dāng)作被打開的盒子,而我們則是依據(jù)其內(nèi)部結(jié)構(gòu)進(jìn)行測(cè)試用例的選擇,然后測(cè)試程序全部的邏輯路徑,并通過不同的點(diǎn)對(duì)程序狀態(tài)進(jìn)行檢查,判斷其是否和預(yù)期狀態(tài)一致。
2 計(jì)算機(jī)軟件深度開發(fā)應(yīng)用
在上個(gè)世紀(jì)50年代到60年代,我們主要是通過手工方式進(jìn)行大型系統(tǒng)軟件的開發(fā),這種方式不僅容易出錯(cuò),而且生產(chǎn)效率也比較低,很難滿足我們的需求,導(dǎo)致了“軟件危機(jī)”。針對(duì)這一情況,北大西洋公約組織于1968年提出了軟件工程的概念。
軟件工程大體上經(jīng)歷了程序設(shè)計(jì)、軟件、軟件工程這三個(gè)時(shí)代,其中軟件工程學(xué)的主要作用在于通過當(dāng)代的科學(xué)理論及技術(shù)對(duì)軟件開進(jìn)行指導(dǎo),進(jìn)而實(shí)現(xiàn)以較少投資實(shí)現(xiàn)較高軟件質(zhì)量的目的。它既屬于邊緣學(xué)科,又屬于綜合性學(xué)科,在軟件工程學(xué)中包含了計(jì)算機(jī)科學(xué)、人體工程學(xué)、管理學(xué)、系統(tǒng)工程學(xué)、經(jīng)濟(jì)學(xué)以及心理學(xué)等。
2.1 軟件開發(fā)中的三個(gè)階段。通過軟件工程這種方式對(duì)軟件進(jìn)行生產(chǎn),其過程和建筑工程以及機(jī)械工程有很大的相似性,好比一個(gè)建筑工程自開始到最后往往會(huì)經(jīng)歷設(shè)計(jì)、施工以及驗(yàn)收這三個(gè)階段,而軟件產(chǎn)品的生產(chǎn)中也存在著三個(gè)階段:定義、開發(fā)以及維護(hù)。
當(dāng)然,在建筑工程及軟件的開發(fā)階段也存在著一些不同,比如,建筑工程的設(shè)計(jì)藍(lán)圖一旦形成之后,在其后續(xù)的流程中將不會(huì)有回溯問題,而在軟件開發(fā)工程中,每一個(gè)步驟都有可能經(jīng)歷一次或多次的修改及適應(yīng)回溯問題。再如,在軟件的交付以后,依然面臨著運(yùn)行維護(hù)的問題,這一點(diǎn)和建筑工程也有所不同。
2.2 應(yīng)用軟件開發(fā)方法。針對(duì)一些較大的應(yīng)用軟件,比如大型仿真訓(xùn)練軟件、計(jì)算機(jī)輔助設(shè)計(jì)軟件等,是很難一人完成的,需要多人的共同配合。因此,為了確保應(yīng)用軟件的質(zhì)量,我們應(yīng)依據(jù)軟件工程的原則及思路,采用合理的方法和依據(jù),組織軟件人員一致的、協(xié)調(diào)的完成這一工作。當(dāng)前的軟件開發(fā)方法主要可以分為:生命周期法、原型化法以及自動(dòng)形式的系統(tǒng)開發(fā)法。
(1)生命周期法。軟件生命周期法主要是從時(shí)間的角度對(duì)軟件定義、開發(fā)以及維護(hù)過程中的問題進(jìn)行分解,使其成為幾個(gè)小的階段,在每個(gè)階段開始及結(jié)束的時(shí)候都有非常嚴(yán)格的標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)是指在階段結(jié)束的時(shí)候要交出質(zhì)量比較高的文檔。
在軟件定義過程中,我們主要是確定軟件開發(fā)總目標(biāo)、工程可行性以及開發(fā)過程中應(yīng)使用的策略及必須實(shí)現(xiàn)功能等。軟件的定義又可以分為穩(wěn)定定義、可行性研究以及需求的分析。
軟件開發(fā)則是由總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼以及測(cè)試這幾個(gè)部分。其中前二者所欲系統(tǒng)設(shè)計(jì)階段,后兩個(gè)階段則屬于系統(tǒng)實(shí)現(xiàn)階段。
至于系統(tǒng)的維護(hù),則主要是保證軟件能夠長久的滿足用戶需求。
(2)原型化方法。但在實(shí)際的工作中,用戶所提出的軟件目標(biāo)往往是概括性的,無法對(duì)輸入、處理以及輸出需求進(jìn)行詳細(xì)的描述,而我們工作人員也往往在這個(gè)階段都還沒有確定系統(tǒng)適用性、處理算法效果等,這種情況下,我們只有一邊干一邊對(duì)其進(jìn)行認(rèn)識(shí),而原型化方法正是由這一思路提出的方法。
原型有三種形態(tài):紙上原型、工作原型以及現(xiàn)有原型。其中紙上原型主要是利用紙張及墨水的模型對(duì)軟件一些特征進(jìn)行解釋;至于工作原型則是在計(jì)算機(jī)上執(zhí)行軟件的一部分功能,幫助開發(fā)中及用戶理解即將被開發(fā)的程序;而現(xiàn)有模型則是通過現(xiàn)成的,可運(yùn)行的程序完成所需的功能,不過其中一部分是在新開發(fā)的基礎(chǔ)上進(jìn)行改善。
在利用原型法進(jìn)行開發(fā)的過程中,主要可以分為可行性研究階段、對(duì)系統(tǒng)基本要求進(jìn)行確定的階段、建造原始系統(tǒng)的階段、開發(fā)人員及用戶的評(píng)審階段、開發(fā)人員的修改階段。
(3)自動(dòng)形式的系統(tǒng)開發(fā)方法。這種方法具有一個(gè)很明顯的特點(diǎn)就是使用了4GT,即第四代技術(shù),包含的比較多的軟件開發(fā)工具,使用這種方法時(shí),軟件的開發(fā)者進(jìn)需要對(duì)所要實(shí)現(xiàn)的內(nèi)容進(jìn)行詳細(xì)說明即可,而不需要探索如何去實(shí)現(xiàn),4GT軟件工具將會(huì)依據(jù)系統(tǒng)的要求對(duì)規(guī)范進(jìn)行確定,進(jìn)而進(jìn)行分析、自動(dòng)設(shè)計(jì)及自動(dòng)編碼。限于篇幅這里不再對(duì)其詳細(xì)分析。
3 結(jié)語
軟件測(cè)試及軟件開發(fā)是非常復(fù)雜的工作,涉及的內(nèi)容和環(huán)節(jié)比較多,本文限于篇幅,僅對(duì)最重要的一些問題進(jìn)行較為表面的探討。因此,我們要想真正的做好這一工作,還需要加強(qiáng)自身的學(xué)習(xí)和探索。
參考文獻(xiàn)
[1]楊小龍.基于軟件質(zhì)量的測(cè)試方法與分析[J].質(zhì)量探索,2009,5.
[2]陳會(huì)霞,周利華.關(guān)于軟件測(cè)試的淺議[J].中國測(cè)試技術(shù),2010,4.