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