隨著軟件工程技術(shù)的發(fā)展,軟件設(shè)計(jì)規(guī)模的增大,軟件測(cè)試在軟件開發(fā)過程中的作用顯得尤為重要。目前,軟件測(cè)試技術(shù)的研究領(lǐng)域雖然取得了一些成果,但對(duì)具體的開發(fā)環(huán)境下開發(fā)的特定領(lǐng)域的軟件系統(tǒng)應(yīng)采用怎樣的測(cè)試方法對(duì)其進(jìn)行全面的、完整的測(cè)試,仍沒有具體的標(biāo)準(zhǔn)可以遵循。
網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的飛速發(fā)展,使管理信息系統(tǒng)(MIS)向客戶機(jī)/服務(wù)器(Client/Server或C/S)或B/C(Browser/Server)加SQL Server(或Sybase、Oracle)模式發(fā)展。開發(fā)工具也大多不再是面向過程的語(yǔ)言,而是使用諸如PB(Power Builder)的Script等具有面向?qū)ο筇卣鞯哪_本語(yǔ)言。開發(fā)環(huán)境的改變及應(yīng)用的日趨復(fù)雜使MIS的開發(fā)方法也正在從傳統(tǒng)的結(jié)構(gòu)化方法向面向?qū)ο蟮姆椒ㄞD(zhuǎn)變。因此,對(duì)基于PB等環(huán)境下的軟件測(cè)試技術(shù)及方法的研究,不僅具有方法論上的理論意義,而且具有使用價(jià)值。
1.PB軟件的特點(diǎn)
利用PB開發(fā)中大型的MIS應(yīng)用系統(tǒng),一般采用三層C/S的體系結(jié)構(gòu).在這種結(jié)構(gòu)下,系統(tǒng)可分為兩部分,即后臺(tái)數(shù)據(jù)庫(kù)部分和前臺(tái)應(yīng)用程序部分,后臺(tái)采用非面向?qū)ο蟮年P(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)RDBMS(如SQL Server等)實(shí)現(xiàn)對(duì)應(yīng)用數(shù)據(jù)的組織,安全性、完整性維護(hù),以及存取控制;前臺(tái)應(yīng)用程序部分利用PB提供的可視化編程技術(shù)實(shí)現(xiàn)用戶的各種需求。其特點(diǎn)表現(xiàn)在,利用PB提供的窗口、菜單及數(shù)據(jù)窗口等對(duì)象很方便地實(shí)現(xiàn)友好的用戶界面,系統(tǒng)的各種功能以窗口對(duì)象為主線,利用PB 提供的Script語(yǔ)言,通過對(duì)窗口的各控件的事件描述來實(shí)現(xiàn)。與傳統(tǒng)的面向過程的語(yǔ)言相比較,PB支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,其用戶界面的元素都是對(duì)象,所以都有屬性、事件和方法,具有繼承、封裝和重用等面向?qū)ο蟮奶匦浴?/P>
2.測(cè)試目標(biāo)
無論傳統(tǒng)的系統(tǒng),還是基于PB的C/S系統(tǒng),測(cè)試的目標(biāo)都是確保所開發(fā)軟件的功能符合用戶的要求。具體表現(xiàn)在以下幾個(gè)方面:
(1)確保系統(tǒng)達(dá)到需求功能的說明;
(2)確保系統(tǒng)滿足性能需求;
(3)強(qiáng)度測(cè)試確認(rèn)程序能夠處理要求的負(fù)載;
(4)確保系統(tǒng)在要求的硬件和軟件平臺(tái)上工作正常。
3.測(cè)試方法
原則上講,可以將軟件測(cè)試方法分為兩大類,即靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試是對(duì)被測(cè)程序進(jìn)行特性分析的一些方法的總稱,這種方法的主要特性是不利用計(jì)算機(jī)運(yùn)行被測(cè)試的程序,而是采用其他手段達(dá)到檢測(cè)的目的。動(dòng)態(tài)測(cè)試是實(shí)際運(yùn)行被測(cè)程序,輸入相應(yīng)的測(cè)試用例,判定執(zhí)行結(jié)果是否符合要求,從而檢驗(yàn)程序的正確性、可靠性和有效性。動(dòng)態(tài)測(cè)試的兩種主要的方法是黑盒測(cè)試和白盒測(cè)試。
4.測(cè)試過程
測(cè)試雖然是軟件生存周期的一個(gè)獨(dú)立階段,但測(cè)試工作卻滲透到從分析、設(shè)計(jì)直到編程的各個(gè)階段中,如測(cè)試計(jì)劃的編寫從分析和設(shè)計(jì)階段就開始了,而具體的測(cè)試工作隨編程工作的不斷深入也在進(jìn)行中。在實(shí)際工作中,測(cè)試環(huán)節(jié)可分為明顯的、同等重要的三個(gè)階段:即單元測(cè)試、集成測(cè)試(又稱構(gòu)件測(cè)試)和系統(tǒng)測(cè)試。測(cè)試工作中的第四個(gè)階段是驗(yàn)收測(cè)試階段,驗(yàn)收測(cè)試無論在規(guī)模上或性質(zhì)上都和系統(tǒng)測(cè)試很相似,它們的根本區(qū)別在于:前者是內(nèi)部的,而后者則是受“客戶”控制的。
(1)單元測(cè)試
軟件單元定義了一個(gè)軟件很底層的塊,用PB開發(fā)的客戶機(jī)/服務(wù)器的軟件系統(tǒng)中,一個(gè)窗口、函數(shù)、菜單、報(bào)表或一個(gè)存儲(chǔ)過程都可以作為一個(gè)單元進(jìn)行測(cè)試。單元測(cè)試是測(cè)試的第一步。
1)人員安排:對(duì)于一個(gè)完整的軟件單元,沒有人比它的開發(fā)者更熟悉它,因此,開發(fā)者自己對(duì)其進(jìn)行測(cè)試是最合適的。
2)單元測(cè)試計(jì)劃:測(cè)試計(jì)劃必須在單元測(cè)試之前被設(shè)計(jì)和記錄好。大量的文檔說明必須足夠詳細(xì),以備當(dāng)單元開發(fā)者調(diào)離、提升或其他原因離開其崗位時(shí),其他人員也能對(duì)相應(yīng)的單元進(jìn)行測(cè)試。此外,在集成測(cè)試和系統(tǒng)測(cè)試階段,清晰、詳細(xì)、易于理解的單元測(cè)試文檔對(duì)于測(cè)試者也將發(fā)揮巨大作用。
單元測(cè)試的測(cè)試計(jì)劃由單元的開發(fā)者(也是該單元的測(cè)試者)編制,但在測(cè)試計(jì)劃執(zhí)行前必須進(jìn)行審查。這些審查由開發(fā)者以外的人進(jìn)行,第一遍審查由開發(fā)者的直接上司去做,其目的在于找出測(cè)試計(jì)劃中的錯(cuò)誤、缺點(diǎn)和疏漏之處。第二遍審查由測(cè)試該單元所屬系統(tǒng)的測(cè)試人員進(jìn)行,其目的在于確認(rèn)測(cè)試計(jì)劃符合公布的標(biāo)準(zhǔn)。如果測(cè)試計(jì)劃在任何方面有問題,都將被立即退回到開發(fā)者手中。
3)進(jìn)行單元測(cè)試的時(shí)間:在客戶機(jī)/服務(wù)器的開發(fā)過程中,單元測(cè)試是測(cè)試的第一步。經(jīng)驗(yàn)表明,單元測(cè)試執(zhí)行得越快,它的結(jié)果就越有價(jià)值,在開發(fā)周期中錯(cuò)誤發(fā)現(xiàn)得越早,糾正它們所花的代價(jià)就越小。一般來講,單元編碼完成后,就對(duì)其進(jìn)行單元測(cè)試。另外,單元測(cè)試可以并行進(jìn)行。對(duì)于彼此獨(dú)立的單元,進(jìn)行并行測(cè)試可以加速測(cè)試的進(jìn)程。
4)單元測(cè)試階段的測(cè)試類型:在單元測(cè)試階段一般采用白盒測(cè)試法。深入到代碼層去充分地測(cè)試它們是必要的。在這一階段,必須進(jìn)行的測(cè)試有:路徑測(cè)試、聲明測(cè)試、循環(huán)測(cè)試、邊值測(cè)試、接口測(cè)試、數(shù)據(jù)確認(rèn)、事務(wù)測(cè)試等。
5)單元測(cè)試的特殊考慮:在PB環(huán)境下,開發(fā)的軟件是以窗口為主線將軟件的功能聯(lián)系起來,軟件系統(tǒng)表現(xiàn)為各種各樣的窗口,因此,對(duì)窗口中各控件的各事件的描述的測(cè)試是這類軟件測(cè)試的中心。
a.控件的測(cè)試:一個(gè)空間可以看成是由相關(guān)聯(lián)的一組事件的描述組成的,完成一個(gè)相對(duì)獨(dú)立的功能。對(duì)每一個(gè)事件的Script分別進(jìn)行測(cè)試就完成了對(duì)一個(gè)控件的測(cè)試。與傳統(tǒng)的軟件相比,PB開發(fā)的軟件風(fēng)格表現(xiàn)在各事件獨(dú)立存在,因此對(duì)它的測(cè)試相對(duì)容易。一般來講,先按設(shè)計(jì)的規(guī)格說明對(duì)其代碼進(jìn)行審核;然后,用白盒法對(duì)其進(jìn)行測(cè)試,可以達(dá)到較好的效果。
b.窗口的測(cè)試:宏觀上看,很像是集成測(cè)試。其實(shí),所謂單元測(cè)試和集成測(cè)試也都是相對(duì)而言的,在有些情況下不易分得很清楚。在單元測(cè)試階段,對(duì)窗口的測(cè)試主要是測(cè)試窗口上各控件是否能按設(shè)計(jì)要求正常工作。在軟件開發(fā)過程中,制定了一系列的標(biāo)準(zhǔn)文件,包括設(shè)計(jì)文檔標(biāo)準(zhǔn),界面標(biāo)準(zhǔn),測(cè)試大綱等。對(duì)窗口和控件的測(cè)試過程中,界面標(biāo)準(zhǔn)和測(cè)試大綱是測(cè)試的依據(jù)。
(2)集成測(cè)試
在將所有的單元經(jīng)過測(cè)試以后,接著進(jìn)行集成測(cè)試。集成測(cè)試也稱綜合測(cè)試,即將已分別通過測(cè)試的單元按要求組合起來再進(jìn)行的測(cè)試,以檢查這些單元之間的接口是否存在問題。
1)人員安排:綜合測(cè)試既要求參與的人熟悉單元的內(nèi)部細(xì)節(jié),又要求他們能夠從足夠高的層次上觀察整個(gè)系統(tǒng)。一般由有經(jīng)驗(yàn)的測(cè)試人員和主要的軟件開發(fā)者來完成集成測(cè)試的計(jì)劃。
2)測(cè)試計(jì)劃:集成測(cè)試計(jì)劃由系統(tǒng)設(shè)計(jì)人員在設(shè)計(jì)階段制定,它是和設(shè)計(jì)規(guī)格說明同時(shí)完成的。在這份計(jì)劃里主要包含的內(nèi)容有:測(cè)試的描述和范圍、測(cè)試環(huán)境、時(shí)間表、集成次序、測(cè)試用例、測(cè)試的預(yù)期結(jié)果、測(cè)試的實(shí)際結(jié)果等。
3)測(cè)試內(nèi)容:在經(jīng)過了單元測(cè)試后,需要將所有單元集成到一起,組成一個(gè)完整的軟件系統(tǒng)。需重點(diǎn)測(cè)試:各單元的接口是否吻合、代碼是否符合規(guī)定的標(biāo)準(zhǔn)、界面標(biāo)準(zhǔn)是否同一等。
4)集成策略:在PB環(huán)境下開發(fā)的軟件系統(tǒng)進(jìn)行測(cè)試按自底向上集成的方式比較自然。這種方法是將底層的單元分組集成測(cè)試,然后再逐步向上將軟件集成起來,直到最后所有的單元都在一個(gè)組中。測(cè)試可按下列步驟進(jìn)行:
a.將最底層的窗口分組,原則是將那些與上層某個(gè)窗口相關(guān)聯(lián)的窗口為一組。
b.對(duì)每一組分別進(jìn)行測(cè)試,各組測(cè)試可并行展開,這樣可以加快測(cè)試的進(jìn)程。
c.沿軟件的結(jié)構(gòu),逐級(jí)向上集成,直到所有的單元都組合到一起,這樣就完成了集成測(cè)試的任務(wù)。
5)測(cè)試方法:集成測(cè)試階段是以黑盒法為主,在自底向上集成的早期,白盒法測(cè)試占一定的比例,隨著集成測(cè)試的不斷深入,這種比例在測(cè)試過程中將越來越少,漸漸地,黑盒法測(cè)試占據(jù)主導(dǎo)地位。
(3)系統(tǒng)測(cè)試
從技術(shù)角度看,系統(tǒng)測(cè)試是整個(gè)測(cè)試階段的最后一步,所有的開發(fā)和測(cè)試在這一點(diǎn)上集中表現(xiàn)為生成一個(gè)具有一定功能的軟件系統(tǒng)。該階段主要對(duì)系統(tǒng)的準(zhǔn)確性及完整性等方面進(jìn)行測(cè)試。主要進(jìn)行:功能確認(rèn)測(cè)試、運(yùn)行測(cè)試、強(qiáng)度測(cè)試、恢復(fù)測(cè)試、安全性測(cè)試等。系統(tǒng)測(cè)試的測(cè)試人員由測(cè)試組成員(或質(zhì)量保證人員)或測(cè)試組成員與用戶共同測(cè)試。在整個(gè)系統(tǒng)開發(fā)完成,即將交付用戶使用前進(jìn)行。在這一階段,完全采用黑盒法對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試。
相關(guān)推薦:計(jì)算機(jī)軟件評(píng)測(cè)師備考:軟件測(cè)試的基本方法