版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.阜陽師范學(xué)院本科畢業(yè)設(shè)計題目:班級管理系統(tǒng)的測試學(xué) 號:姓 名:年 級:系 別:專 業(yè):完成日期:指導(dǎo)老師:班級管理系統(tǒng)的測試:學(xué)號:指導(dǎo)教師:摘要在軟件生命周期的各個階段,都有可能會產(chǎn)生差錯。雖然在每個階段結(jié)束之前都有嚴格的復(fù)審,以期望能盡早的發(fā)現(xiàn)錯誤,但是經(jīng)驗表明審查并不能發(fā)現(xiàn)所有差錯。如果在軟件投入生產(chǎn)性運行之前,沒有發(fā)現(xiàn)大部分錯誤,則這些錯誤遲早會在運行過程中暴露出來,甚至造成嚴重的后果,等到那時去改這些錯誤的代價會很高。測試的目的就是在軟件投入生產(chǎn)性運行之前,盡可能地發(fā)現(xiàn)軟件中的錯誤,測試是對軟件規(guī)格說明、設(shè)計和編碼的最后復(fù)審,所以軟件測試貫穿在整個軟件開發(fā)期的全過程。要對軟件進行
2、測試首先要明白軟件要實現(xiàn)的功能,否則無法對軟件進行測試。本文在分析軟件測試的方法、目的、流程圖等基本概念的基礎(chǔ)上,重點介紹了對自己開發(fā)的班級管理系統(tǒng)的測試。關(guān)鍵詞:安裝測試、功能測試、性能測試、單元測試1. 軟件測試的概念1.1軟件測試的定義軟件測試(Software testing)是軟件生存期(Software life cycle)中的一個重要階段,是軟件質(zhì)量保證的關(guān)鍵步驟。通俗地講,軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼進行最終復(fù)審的活動。1983年IEEE提出的軟件工程術(shù)語中給軟件測試下的定義是:“使用人工或自動的手段來運行或測定某個軟件系統(tǒng)的過程,其目的在
3、于檢驗它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實際結(jié)果之間的差別”。這個定義明確指出:軟件測試的目的是為了檢驗軟件系統(tǒng)是否滿足需求。從用戶的角度來看,普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,所以軟件測試應(yīng)該是“為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程”?;蛘哒f,軟件測試應(yīng)該根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤或缺陷。1.2軟件測試的目的、原則、基本要求1.2.1測試的目的1.檢驗開發(fā)出來的軟件是否符合用戶的需求。2.盡可能多地發(fā)現(xiàn)程序中的錯誤和缺陷。1.2.2基本要求(測試人員)1.了解軟件的總
4、體設(shè)計思路和詳細設(shè)計過程2.對整套軟件的數(shù)據(jù)流程要十分清晰1.2.3測試用例由測試數(shù)據(jù)和相應(yīng)的預(yù)期結(jié)果構(gòu)成。在測試之前,一定要設(shè)計好測試數(shù)據(jù)和相應(yīng)的預(yù)期結(jié)果,這是測試用例的基本原則和進行有效測試的最好途徑之一1.2.4測試原則1. 根據(jù)測試數(shù)據(jù)來確定預(yù)期的輸出結(jié)果。2. 徹底檢查每個測試結(jié)果(正確的、錯誤的),并對測試結(jié)果進行認真和仔細的分析。3. 對非法的和非預(yù)期的輸入數(shù)據(jù)也要像合法的和預(yù)期的輸入數(shù)據(jù)一樣編寫測試用例。4. 以挑剔的眼光來看待每個程序模塊,不要設(shè)想程序中不會出現(xiàn)錯誤。程序做了它不該做的事情,即使是正確的,我們也應(yīng)該把它視為錯誤。5. 程序模塊經(jīng)測試后,殘存的錯誤數(shù)目一般與已發(fā)
5、現(xiàn)的錯誤數(shù)目成正比例。也就是說,一個模塊中發(fā)現(xiàn)的錯誤越多,那么它可能殘存的錯誤數(shù)目也就越多,對這樣的程序模塊,一定要進行嚴格和更徹底的測試。6. 要保存測試用例。2. 軟件測試的方法21 軟件測試的基本方法軟件測試的方法和技術(shù)是多種多樣的。對于軟件測試技術(shù),可以從不同的角度加以分類:從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試。從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。2.1.1黑盒測試 黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程序看作一個不能打開的黑盒子,在完全不考慮
6、程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測等,主要用于軟件確認測試。 “黑盒” 法著眼于程序外部結(jié)構(gòu)、不考慮內(nèi)部邏輯結(jié)構(gòu)、針對軟件界面和軟件功能進行測試?!昂诤小?法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。2.1.2 白盒測試
7、白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證?!鞍缀小狈ㄈ媪私獬绦騼?nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進行測試。“白盒”法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤的程序。第二,窮
8、舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。2.1.3 ALAC(Act-like-a-customer)測試軟件有好多錯誤圖ALAC測試客戶通常會遇到錯誤只占很小比例改進測試的有效性,使測試針對哪些客戶最容易遇到的錯誤圖(1)ALAC測試是一種基于客戶使用產(chǎn)品的知識開發(fā)出來的測試方法。ALAC測試是基于復(fù)雜的軟件產(chǎn)品有許多錯誤的原則。最大的受益者是用戶,缺陷查找和改正將針對哪些客戶最容易遇到的錯誤。2.2 單元測試的基本方法單元測試的對象是軟件設(shè)計的最小單位模塊。單元測試的依據(jù)是詳細設(shè)計描述,單元測試應(yīng)對模塊內(nèi)所有重要的控制路徑設(shè)計測試用例
9、,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤。單元測試多采用白盒測試技術(shù),系統(tǒng)內(nèi)多個模塊可以并行地進行測試。2.2.1單元測試任務(wù)單元測試任務(wù)包括:1 模塊接口測試;2 模塊局部數(shù)據(jù)結(jié)構(gòu)測試;3 模塊邊界條件測試;4 模塊中所有獨立執(zhí)行通路測試;5 模塊的各條錯誤處理通路測試。模塊接口測試是單元測試的基礎(chǔ)。只有在數(shù)據(jù)能正確流入、流出模塊的前提下,其他測試才有意義。測試接口正確與否應(yīng)該考慮下列因素:1.輸入的實際參數(shù)與形式參數(shù)的個數(shù)是否相同和屬性是否匹配;2.輸入的實際參數(shù)與形式參數(shù)的量綱是否一致;3.調(diào)用其他模塊時所給實際參數(shù)的個數(shù)是否與被調(diào)模塊的形參個數(shù)相同;4.調(diào)用其他模塊時所給實際參數(shù)的屬性是否與被調(diào)模塊的
10、形參的屬性是否匹配;5.調(diào)用其他模塊時所給實際參數(shù)的量綱是否與被調(diào)模塊的形參量綱一致;6.調(diào)用預(yù)定義函數(shù)時所用參數(shù)的個數(shù)、屬性和次序是否正確;7.是否存在與當(dāng)前入口點無關(guān)的參數(shù)引用;8.是否修改了只讀型參數(shù);9.對全程變量的定義各模塊是否一致;10.是否把某些約束作為參數(shù)傳遞。如果模塊內(nèi)包括外部輸入輸出,還應(yīng)該考慮下列因素:1.文件屬性是否正確;2. OPEN/CLOSE語句是否正確;3.格式說明與輸入輸出語句是否匹配;4.緩沖區(qū)大小與記錄長度是否匹配;5.文件使用前是否已經(jīng)打開;6.是否處理了文件尾;7.是否處理了輸入/輸出錯誤;8.輸出信息中是否有文字性錯誤; 檢查局部數(shù)據(jù)結(jié)構(gòu)是為了保證臨
11、時存儲在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確。局部數(shù)據(jù)結(jié)構(gòu)往往是錯誤的根源,應(yīng)仔細設(shè)計測試用例,力求發(fā)現(xiàn)下面幾類錯誤:1.不合適或不相容的類型說明;2.變量無初值;3.變量初始化或缺省值有錯;4.不正確的變量名(拼錯或不正確地截斷);5.出現(xiàn)上溢、下溢和地址異常。除了局部數(shù)據(jù)結(jié)構(gòu)外,如果可能,單元測試時還應(yīng)該查清全局數(shù)據(jù)對模塊的影響。在模塊中應(yīng)對每一條獨立執(zhí)行路徑進行測試,單元測試的基本任務(wù)是保證模塊中每條語句至少執(zhí)行一次。此時設(shè)計測試用例是為了發(fā)現(xiàn)因錯誤計算、不正確的比較和不適當(dāng)?shù)目刂屏髟斐傻腻e誤。此時基本路徑測試和循環(huán)測試是最常用且最有效的測試技術(shù)。計算中常見的錯誤包括:1.誤解或用錯了
12、算符優(yōu)先級;2.混合類型運算;3.變量初值錯;4.精度不夠;5.表達式符號錯。比較判斷與控制流常常緊密相關(guān),測試用例還應(yīng)致力于發(fā)現(xiàn)下列錯誤:1.不同數(shù)據(jù)類型的對象之間進行比較;2.錯誤地使用邏輯運算符或優(yōu)先級;3.因計算機表示的局限性,期望理論上相等而實際上不相等的兩個量相等;4.比較運算或變量出錯;5.循環(huán)終止條件或不可能出現(xiàn);6.迭代發(fā)散時不能退出;7.錯誤地修改了循環(huán)變量。 一個好的設(shè)計應(yīng)能預(yù)見各種出錯條件,并預(yù)設(shè)各種出錯處理通路,出錯處理通路同樣需要認真測試,測試應(yīng)著重檢查下列問題:1.輸出的出錯信息難以理解;2.記錄的錯誤與實際遇到的錯誤不相符;3.在程序自定義的出錯處理段運行之前,
13、系統(tǒng)已介入;4.異常處理不當(dāng);5.錯誤陳述中未能提供足夠的定位出錯信息。邊界條件測試是單元測試中最后,也是最重要的一項任務(wù)。眾所周知,軟件經(jīng)常在邊界上失效,采用邊界值分析技術(shù),針對邊界值及其左、右設(shè)計測試用例,很有可能發(fā)現(xiàn)新的錯誤。2.2.2單元測試過程一般認為單元測試應(yīng)緊接在編碼之后,當(dāng)源程序編制完成并通過復(fù)審和編譯檢查,便可開始單元測試。測試用例的設(shè)計應(yīng)與復(fù)審工作相結(jié)合,根據(jù)設(shè)計信息選取測試數(shù)據(jù),將增大發(fā)現(xiàn)上述各類錯誤的可能性。在確定測試用例的同時,應(yīng)給出期望結(jié)果。應(yīng)為測試模塊開發(fā)一個驅(qū)動模塊(driver)和(或)若干個樁模塊(stub),下圖顯示了一般單元測試的環(huán)境。驅(qū)動模塊在大多數(shù)場
14、合稱為“主程序”,它接收測試數(shù)據(jù)并將這些數(shù)據(jù)傳遞到被測試模塊,被測試模塊被調(diào)用后,“主程序”打印“進入-退出”消息。驅(qū)動模塊和樁模塊是測試使用的軟件,而不是軟件產(chǎn)品的組成部分,但它需要一定的開發(fā)費用。若驅(qū)動和樁模塊比較簡單,實際開銷相對低些。遺憾的是,僅用簡單的驅(qū)動模塊和樁模塊不能完成某些模塊的測試任務(wù),這些模塊的單元測試只能采用下面討論的綜合測試方法。提高模塊的內(nèi)聚度可簡化單元測試,如果每個模塊只能完成一個,所需測試用例數(shù)目將顯著減少,模塊中的錯誤也更容易發(fā)現(xiàn)。圖(2)2.3 綜合測試的基本方法時常有這樣的情況發(fā)生,每個模塊都能單獨工作,但這些模塊集成在一起之后卻不能正常工作。主要原因是,模
15、塊相互調(diào)用時接口會引入許多新問題。例如,數(shù)據(jù)經(jīng)過接口可能丟失;一個模塊對另一模塊可能造成不應(yīng)有的影響;幾個子功能組合起來不能實現(xiàn)主功能;誤差不斷積累達到不可接受的程度;全局數(shù)據(jù)結(jié)構(gòu)出現(xiàn)錯誤,等等。綜合測試是組裝軟件的系統(tǒng)測試技術(shù),按設(shè)計要求把通過單元測試的各個模塊組裝在一起之后,進行綜合測試以便發(fā)現(xiàn)與接口有關(guān)的各種錯誤。某設(shè)計人員習(xí)慣于把所有模塊按設(shè)計要求一次全部組裝起來,然后進行整體測試,這稱為非增量式集成。這種方法容易出現(xiàn)混亂。因為測試時可能發(fā)現(xiàn)一大堆錯誤,為每個錯誤定位和糾正非常困難,并且在改正一個錯誤的同時又可能引入新的錯誤,新舊錯誤混雜,更難斷定出錯的原因和位置。與之相反的是增量式集
16、成方法,程序一段一段地擴展,測試的范圍一步一步地增大,錯誤易于定位和糾正,界面的測試亦可做到完全徹底。下面討論兩種增量式集成方法。2.3.1自頂向下集成自頂向下集成是構(gòu)造程序結(jié)構(gòu)的一種增量式方式,它從主控模塊開始,按照軟件的控制層次結(jié)構(gòu),以深度優(yōu)先或廣度優(yōu)先的策略,逐步把各個模塊集成在一起。深度優(yōu)先策略首先是把主控制路徑上的模塊集成在一起,至于選擇哪一條路徑作為主控制路徑,這多少帶有隨意性,一般根據(jù)問題的特性確定。以圖(3)為例,若選擇了最左一條路徑,首先將模塊M1,M2,M5和M8集成在一起,再將M6集成起來,然后考慮中間和右邊的路徑。廣度優(yōu)先策略則不然,它沿著控制層次結(jié)構(gòu)水平地向下移動。仍
17、然以下圖為例,它首先把M2、M3和M4與主控模塊集成在一起,再將M5和M6 和其他模塊集成起來。自頂向下綜合測試的具體步驟為:1.以主控模塊作為測試驅(qū)動模塊,把對主控模塊進行單元測試時引入的所有樁模塊用實際 模塊替代;2.依據(jù)所選的集成策略(深度優(yōu)先或廣度優(yōu)先),每次只替代一個樁模塊;3.每集成一個模塊立即測試一遍;4.只有每組測試完成后,才著手替換下一個樁模塊;5.為避免引入新錯誤,須不斷地進行回歸測試(即全部或部分地重復(fù)已做過的測試)。圖(3)從第二步開始,循環(huán)執(zhí)行上述步驟,直至整個程序結(jié)構(gòu)構(gòu)造完畢。上圖(3)中,實線表示已部分完成的結(jié)構(gòu),若采用深度優(yōu)先策略,下一步將用模塊M7替換樁模塊S
18、7,當(dāng)然M7本身可能又帶有樁模塊,隨后將被對應(yīng)的實際模塊一一替代。自頂向下集成的優(yōu)點在于能盡早地對程序的主要控制和決策機制進行檢驗,因此較早地發(fā)現(xiàn)錯誤。缺點是在測試較高層次模塊時,低層處理采用樁模塊替代,不能反映真實情況,重要數(shù)據(jù)不能及時回送到上層模塊,因此測試并不充分。解決這個問題有幾種辦法,第一種是把某些測試推遲到用真實模塊替代樁模塊之后進行,第二種是開發(fā)能模擬真實模塊的樁模塊;第三種是自底向上集成模塊。第一種方法又回退為非增量式的集成方法,使錯誤難于定位和糾正,并且失去了在組裝模塊時進行一些特定測試的可能性;第二種方法無疑要大大增加開銷;第三種方法比較切實可行,下面專門討論。2.3.2自
19、底向上集成自底向上測試是從“原子”模塊(即軟件結(jié)構(gòu)最低層的模塊)開始組裝測試,因測試到較高層模塊時,所需的下層模塊功能均已具備,所以不再需要樁模塊。自底向上綜合測試的步驟分為:1.把低層模塊組織成實現(xiàn)某個子功能的模塊群(cluster);2.開發(fā)一個測試驅(qū)動模塊,控制測試數(shù)據(jù)的輸入和測試結(jié)果的輸出;3.對每個模塊群進行測試;4.刪除測試使用的驅(qū)動模塊,用較高層模塊把模塊群組織成為完成更大功能的新模塊群。從第一步開始循環(huán)執(zhí)行上述各步驟,直至整個程序構(gòu)造完畢。圖(4)說明了上述過程。首先“原子”模塊被分為三個模塊群,每個模塊群引入一個驅(qū)動模塊進行測試。因模塊群1、模塊群2中的模塊均隸屬于模塊Ma,
20、因此在驅(qū)動模塊D1、D2去掉后,模塊群1與模塊群2直接與Ma接口,這時可對Ma、D3被去掉后,M3與模塊群3直接接口,可對Mb進行集成測試,最后Ma、Mb和 Mc全部集成在一起進行測試。自底向上集成方法不用樁模塊,測試用例的設(shè)計亦相對簡單,但缺點是程序最后一個模塊加入時才具有整體形象。它與自頂向綜合測試方法優(yōu)缺點正好相反。因此,在測試軟件系統(tǒng)時,應(yīng)根據(jù)軟件的特點和工程的進度,選用適當(dāng)?shù)臏y試策略,有時混和使用兩種策略更為有效,上層模塊用自頂向下的方法,下層模塊用自底向上的方法。此外,在綜合測試中尤其要注意關(guān)鍵模塊,所謂關(guān)鍵模塊一般都具有下述一或多個特征:對應(yīng)幾條需求;具有高層控制功能;復(fù)雜、易出
21、錯;有特殊的性能要求。關(guān)鍵模塊應(yīng)盡早測試,并反復(fù)進行回歸測試。圖(4)2.4 確認測試的基本方法通過綜合測試之后,軟件已完全組裝起來,接口方面的錯誤也已排除,軟件測試的最后一步確認測試即可開始。確認測試應(yīng)檢查軟件能否按合同要求進行工作,即是否滿足軟件需求說明書中的確認標準。2.4.1確認測試標準實現(xiàn)軟件確認要通過一系列黑盒測試。確認測試同樣需要制訂測試計劃和過程,測試計劃應(yīng)規(guī)定測試的種類和測試進度,測試過程則定義一些特殊的測試用例,目的在說明軟件與需求是否一致。無論計劃還是過程,都應(yīng)該著重考慮軟件是否滿足合同規(guī)定的所有功能和性能,文檔資料是否完整、準確人機界面和其他方面(例如,可移植性、兼容性
22、、錯誤恢復(fù)能力和可維護性等)是否令用戶滿意。確認測試的結(jié)果有兩種可能,一種是功能和性能指標滿足軟件需求說明的要求,用戶可以接受;另一種是軟件不滿足軟件需求說明的要求,用戶無法接受。項目進行到這個階段才發(fā)現(xiàn)嚴重錯誤和偏差一般很難在預(yù)定的工期內(nèi)改正,因此必須與用戶協(xié)商,尋求一個妥善解決問題的方法。2.4.2配置復(fù)審確認測試的另一個重要環(huán)節(jié)是配置復(fù)審。復(fù)審的目的在于保證軟件配置齊全、分類有序,并且包括軟件維護所必須的細節(jié)。2.4.3 、測試事實上,軟件開發(fā)人員不可能完全預(yù)見用戶實際使用程序的情況。例如,用戶可能錯誤的理解命令,或提供一些奇怪的數(shù)據(jù)組合,亦可能對設(shè)計者自認明了的輸出信息迷惑不解,等等。
23、因此,軟件是否滿足用戶要求,應(yīng)由用戶進行一系列“驗收測試”。驗收測試既可以是非正式的測試,也可以有計劃、有系統(tǒng)的測試。有時,驗收測試長達數(shù)周甚至數(shù)月,不斷暴露錯誤,導(dǎo)致開發(fā)延期。一個軟件產(chǎn)品,可能擁有眾多用戶,不可能由每個用戶驗收,此時多采用稱為、測試的過程,以期望發(fā)現(xiàn)那些似乎只有最終用戶才能發(fā)現(xiàn)的問題。測試是指軟件開發(fā)組織內(nèi)部人員模擬各類用戶行對即將面市軟件產(chǎn)品(稱為版本)進行測試,試圖發(fā)現(xiàn)錯誤并修正。測試的關(guān)鍵在于盡可能逼真地模擬實際運行環(huán)境和用戶對軟件產(chǎn)品的操作并盡最大努力涵蓋所有可能的用戶操作方式。經(jīng)過測試調(diào)整的軟件產(chǎn)品稱為版本。緊隨其后的測試是指軟件開發(fā)組織各方面的典型用戶在日常工作
24、中實際使用版本,并要求用戶報告異常情況、提出批評意見。然后軟件開發(fā)公司再對版本進行改錯和完善。2.5 系統(tǒng)測試的基本方法計算機軟件是基于計算機系統(tǒng)的一個重要組成部分,軟件開發(fā)完畢后應(yīng)與系統(tǒng)中其它成分集成在一起,此時需要進行一系列系統(tǒng)集成和確認測試。對這些測試的詳細討論已超出軟件工程的范圍,這些測試也不可能僅由軟件開發(fā)人員完成。在系統(tǒng)測試之前,軟件工程師應(yīng)完成下列工作:(1)為測試軟件系統(tǒng)的輸入信息設(shè)計出錯處理通路;(2)設(shè)計測試用例,模擬錯誤數(shù)據(jù)和軟件界面可能發(fā)生的錯誤,記錄測試結(jié)果,為系統(tǒng)測試提供經(jīng)驗和幫助;(3)參與系統(tǒng)測試的規(guī)劃和設(shè)計,保證軟件測試的合理性。系統(tǒng)測試應(yīng)該由若干個不同測試組
25、成,目的是充分運行系統(tǒng),驗證系統(tǒng)各部件是否都能夠正常工作并完成所賦予的任務(wù)。下面簡單討論幾類系統(tǒng)測試。2.5.1 恢復(fù)測試恢復(fù)測試主要檢查系統(tǒng)的容錯能力。當(dāng)系統(tǒng)出錯時,能否在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)?;謴?fù)測試首先要采用各種辦法強迫系統(tǒng)失敗,然后驗證系統(tǒng)是否能盡快恢復(fù)。對于自動恢復(fù)需驗證重新初始化(reinitialization)、檢查點(checkpointing mechanisms)、數(shù)據(jù)恢復(fù)(data recovery)和重新啟動 (restart)等機制的正確性;對于人工干預(yù)的恢復(fù)系統(tǒng),還需估測平均修復(fù)時間,確定其是否在可接受的范圍內(nèi)。2.5.2 安全測試安全測試檢查系統(tǒng)
26、對非法侵入的防范能力。安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。2.5.3 強度測試強度測試檢查程序?qū)Ξ惓G闆r的抵抗能力。強度測試總是迫使系統(tǒng)在異常的資源配置下運行。 2.5.4 性能測試對于那些實時和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一個測試步驟都包含性能測試,但只有當(dāng)系統(tǒng)真正集成之后,在真實環(huán)境中才能全面、可靠地測試運行性能系統(tǒng)性能測試是為了完成這一任務(wù)。性能測試有時與強度測試相結(jié)合,經(jīng)常需要其他軟硬件的配套支持。3. 軟件測試的誤區(qū)隨著軟件規(guī)模的不斷擴大,軟件設(shè)計的復(fù)雜程度不斷提高,軟件開發(fā)中出現(xiàn)錯誤或缺陷的機會越來越
27、多。同時,市場對軟件質(zhì)量重要性的認識逐漸增強。所以,軟件測試在軟件項目實施過程中的重要性日益突出。但是現(xiàn)實情況是與軟件編程比較,軟件測試的地位和作用,還沒有真正受到重視,對于很多人(甚至是軟件項目組的技術(shù)人員)還存在對軟件測試的認識誤區(qū),這進一步影響了軟件測試活動的開展和真正提高軟件測試質(zhì)量。3.1 誤區(qū)之一:軟件開發(fā)完成后進行軟件測試人們一般認為,軟件項目要經(jīng)過以下幾個階段:需求分析,概要設(shè)計,詳細設(shè)計,軟件編碼,軟件測試,軟件發(fā)布。因此,認為軟件測試只是軟件編碼后的一個過程。這是不了解軟件測試周期的錯誤認識。軟件測試是一個系列過程活動,包括軟件測試需求分析,測試計劃設(shè)計,測試用例設(shè)計,執(zhí)行
28、測試。因此,軟件測試貫穿于軟件項目的整個生命過程。在軟件項目的每一個階段都要進行不同目的和內(nèi)容的測試活動,以保證各個階段的正確性。軟件測試的對象不僅僅是軟件代碼,還包括軟件需求文檔和設(shè)計文檔。軟件開發(fā)與軟件測試應(yīng)該是交互進行的,例如,單元編碼需要單元測試,模塊組合階段需要集成測試。如果等到軟件編碼結(jié)束后才進行測試,那么測試的時間將會很短,測試的覆蓋面將很不全面,測試的效果也將大打折扣。更嚴重的是如果此時發(fā)現(xiàn)了軟件需求階段或概要設(shè)計階段的錯誤,如果要修復(fù)該類錯誤,將會耗費大量的時間和人力。3.2 誤區(qū)之二:軟件發(fā)布后如果發(fā)現(xiàn)質(zhì)量問題,那是軟件測試人員的錯這種認識容易打擊軟件測試人員的積極性。軟件
29、中的錯誤可能來自軟件項目中的各個過程,軟件測試只能確認軟件存在錯誤,不能保證軟件沒有錯誤,因為從根本上講,軟件測試不可能發(fā)現(xiàn)全部的錯誤。從軟件開發(fā)的角度看,軟件的高質(zhì)量不是軟件測試人員測出來的,是靠軟件生命周期的各個過程中設(shè)計出來的。出現(xiàn)軟件錯誤,不能簡單地歸結(jié)為某一個人的責(zé)任,有些錯誤的產(chǎn)生可能不是技術(shù)原因,可能來自于混亂的項目管理。應(yīng)該分析軟件項目的各個過程,從過程改進方面尋找產(chǎn)生錯誤的原因和改進的措施。3.3 誤區(qū)之三:軟件測試要求不高,隨便找個人都行很多人都認為軟件測試就是安裝和運行程序,點點鼠標,按按鍵盤的工作。這是由于不了解軟件測試的具體技術(shù)和方法造成的。隨之軟件工程學(xué)的發(fā)展和軟件
30、項目管理經(jīng)驗的提高,軟件測試已經(jīng)形成了一個獨立的技術(shù)學(xué)科,演變成一個具有巨大市場需求的行業(yè)。軟件測試技術(shù)不斷更新和完善,新工具,新流程,新測試設(shè)計方法都在不斷更新,需要掌握和學(xué)習(xí)很多測試知識。所以,具有編程經(jīng)驗的程序員不一定是一名優(yōu)秀的測試工程師。軟件測試包括測試技術(shù)和管理兩個方面,完全掌握這兩個方面的內(nèi)容,需要很多測試實踐經(jīng)驗和不斷學(xué)習(xí)精神。3.4 誤區(qū)之四:軟件測試是測試人員的事情,與程序員無關(guān)開發(fā)和測試是相輔相成的過程,需要軟件測試人員、程序員和系統(tǒng)分析師等保持密切的聯(lián)系,需要更多的交流和協(xié)調(diào),以便提高測試效率。另外,對于單元測試主要應(yīng)該由程序員完成,必要時測試人員可以幫助設(shè)
31、計測試用例。對于測試中發(fā)現(xiàn)的軟件錯誤,很多需要程序員通過修改編碼才能修復(fù)。程序員可以通過有目的的分析軟件錯誤的類型、數(shù)量,找出產(chǎn)生錯誤的位置和原因,以便在今后的編程中避免同樣的錯誤,積累編程經(jīng)驗,提高編程能力.3.5 誤區(qū)之五:項目進度吃緊時少做些測試,時間富裕時多做測試這是不重視軟件測試的表現(xiàn),也是軟件項目過程管理混亂的表現(xiàn),必然會降低軟件測試的質(zhì)量。一個軟件項目的順利實現(xiàn)需要有合理的項目進度計劃,其中包括合理的測試計劃,對項目實施過程中的任何問題,都要有風(fēng)險分析和相應(yīng)的對策,不要因為開發(fā)進度的延期而簡單的縮短測試時間、人力和資源。因為縮短測試時間帶來的測試不完整,對項目質(zhì)量的下降引起的潛在
32、風(fēng)險,往往造成更大的浪費??朔@種現(xiàn)象的最好辦法是加強軟件過程的計劃和控制,包括軟件測試計劃、測試設(shè)計、測試執(zhí)行、測試度量和測試控制.4. 軟件測試的流程圖隨著軟件規(guī)模的不斷擴大,軟件設(shè)計的復(fù)雜程度也不斷提高,軟件開發(fā)過程中出現(xiàn)錯誤或缺陷的機會越來越多。因此,軟件測試在軟件項目實施過程中的重要性日益突出,而軟件測試是一種繁瑣的工作僅僅借助于人工測試是遠遠不夠的,還必須依靠軟件流程圖,才能更好的軟件測試活動的開展和真正提高軟件測試質(zhì)量。設(shè)計&編碼階段測試工作流程上一階段需求相關(guān)文檔概要設(shè)計評 審詳細設(shè)計單元測試方案編 碼單元測試測試抽檢單元測試報告進入下一階段集成測試方案自動測試方案抽象
33、出驗證標準以模塊為單位,不斷循環(huán)5. 軟件測試的實施和軟件測試報告5.1單元測試1)單元是軟件系統(tǒng)的組成部分,它具有以下特點: 它是由程序員負責(zé)完成工作。 有一份詳細的說明書,它包括:輸入定義,輸出定義,數(shù)據(jù)庫定義,接口說明。 它是一個可識別的和可見的程序組成部分,并容易結(jié)合程序。 能單獨編譯、匯編、測試。 它是程序的必要部分。2)私有單元與公開單元從概念上可將單元分為私有單元與公開單元兩類。私有單元是非正式的、變化的、模糊的、不完整的、混亂的、獨立的、不協(xié)調(diào)的。公開單元是正式的、固定的、具體的、完整的、條理的、聯(lián)系的、協(xié)調(diào)的。單元是私有的即未經(jīng)過嚴格測試,尚未交付的使用單元。單元是公開的即已
34、經(jīng)嚴格測試及確認,可以與別的單元結(jié)合或調(diào)用的單元。單元測試的目的和效果是將私有單元轉(zhuǎn)化公有單元,且使用最少的費用和最有效的方法完成從私有到公有的轉(zhuǎn)化。3)單元測試的目標單元測試的目標是證明程序有錯誤,而不是證明程序沒有錯誤。測試可以由程序員自己進行,也可以由進行獨立測試,即由非程序員進行測試。但獨立測試對單元級測試會有一定困難,還要制定具體的目標和方法。如在目標制定時,還可分為主要目標,次要目標和輔助目標以及程序員和他們的保證部門共同實施對單元的測試。主要目標:是否實現(xiàn)說明書的要求,文檔是否完整而有意義,測試計劃的遵守是否嚴格,錯誤是否完全改正了。次要目標:設(shè)計風(fēng)格是否保持統(tǒng)一。輔助目標:如錯
35、誤類型統(tǒng)計,方法有效性,它們會為管理員提供信息。4)單元測試組織單元測試是程序或軟件測試的基層工作,因為單元是整個程序的基礎(chǔ)組成,其質(zhì)量直接影響程序的更大成份甚至全局。在單元測試時應(yīng)首先提供下列文檔并按步進行: 提供正式說明書。 制定單元測試計劃和文件。 先測試可測試代碼。 程序員先測試私有單元再進行正式單元測試。 驗收和條件驗收(進度和質(zhì)量間的沖突)。單元測試后可進行程序元素測試,即對由單元組成的各種程序進行測試。5)單元測試環(huán)境單元測試是在一定環(huán)境下進行的,這些環(huán)境可以是真實的也可以是模擬的。 真實環(huán)境。真實環(huán)境是單元程序?qū)嶋H使用的,這只有在極少數(shù)的環(huán)境情況下能提供,如單元程序?qū)儆谝活惽度?/p>
36、性模塊。 模擬環(huán)境。模擬環(huán)境是單元測試常用的,模擬環(huán)境可以在程序開發(fā)的早期進行,并利用工具對單元程序進行測試和排錯,工具本身也是一種模擬環(huán)境。但全部采用模擬方法對單元進行測試,存在的缺點是某些真實的難以實現(xiàn),從而失去真實性,可采用的方法進行回歸測試,從而發(fā)現(xiàn)單元測試模擬方法可能出現(xiàn)的不準確,甚至錯誤之處。6)單元測試的方法 靜態(tài)測試。采用人工閱讀、分析、檢驗程序源代碼的方式,來發(fā)現(xiàn)程序的錯誤,它依據(jù)提供單元測試對象的文檔,從功能和結(jié)構(gòu)兩方面來對程序進行檢查,并且著重于程序結(jié)構(gòu)的檢查。在靜態(tài)文檔是重要的依據(jù),但在檢查程序的同時也是對文檔實行檢查的過程,在繼續(xù)對程序的檢查中又會發(fā)現(xiàn)文檔中存在的問題
37、和不確切,甚至錯誤之處。 動態(tài)測試采用機器運行實例方式來發(fā)現(xiàn)程序的錯誤。它依據(jù)提供單元測試對象的文檔,從功能和結(jié)構(gòu)兩方面來對程序進行檢查,并著重于程序功能檢查。還可盡量利用輔助測試工具,進行語法檢查、報表生成、數(shù)據(jù)結(jié)構(gòu)、算法正確性等的檢查。通常采用靜態(tài)測試和動態(tài)測試相互結(jié)合、互相補充對單元測試是必要的,特別不要輕視靜態(tài)測試,它有利于提高人們的程序設(shè)計水平和嚴謹?shù)墓ぷ鞯膽B(tài)度。 復(fù)審。復(fù)審是保證測試質(zhì)量的重要手段,由程序員參加的復(fù)審小組對文檔、測試過程和結(jié)果應(yīng)進行按計劃的檢查并驗證其正確性,因此應(yīng)事先制定復(fù)審計劃,規(guī)定審查內(nèi)容和方式。復(fù)審的方式和級別亦可以根據(jù)情況和需要有所區(qū)別5.2 集成測試集成
38、測試又稱整體測試或結(jié)合測試,是軟件測試的中的一個重要環(huán)節(jié)。 集成測試的任務(wù)集成測試是已完成程序元素級測試的條件下證實程序元素間的一致性。集成是指取出一組程序元素,把它們集成為一個更大的自身無矛盾的元素。而整體測試就是要檢驗結(jié)合的過程中的錯誤,證實程序元素的一致性。整體測試不同于對一般元素的測試,是對正在結(jié)合元素測試,即對結(jié)合過程的測試。 集成測試的條件集成測試前提是:(1) 全部被結(jié)合的子元素已經(jīng)過測試,子元素自身一致的和正確的。(2) 研究子元素間直接或間接的一致性。(3) 測試和排錯交替進行,獲得一個互相一致的子元素結(jié)合。(4) 對新元素進行測試。(5) 重復(fù)上述過程,直到完成整個系統(tǒng)的測
39、試和結(jié)合。 集成測試技巧集成測試將對結(jié)合元素間的調(diào)用關(guān)系、數(shù)據(jù)依賴和元素接口進行測試,它可以應(yīng)用下述技術(shù):(1) 調(diào)用圖/樹的準備。包括每個元素和每個更低元素所做的各次調(diào)用,并且用圖型表示出來,以便于了解元素間的調(diào)用關(guān)系。(2) 數(shù)據(jù)依賴圖的準備。全部數(shù)據(jù)分析是整體測試的一部分,它利用數(shù)據(jù)字典,確定數(shù)據(jù)依賴關(guān)系。為了測試全程數(shù)據(jù),可利用所謂數(shù)據(jù)依賴圖,它描繪出程序元素所引用各種數(shù)據(jù),并擴大到該元素的下層元素的影響數(shù)據(jù),以說明程序元素與數(shù)據(jù)元素之間的依從關(guān)系。(3) 加工依賴圖。研究加工對數(shù)據(jù)對象的改變,加工依賴圖包括了各種加工對所有元素的操作關(guān)系。(4) 接口和接口標準。接口控制文檔記錄了元素
40、之間的接口信息,它應(yīng)遵守嚴格的接口標準。接口標準規(guī)定:數(shù)據(jù)項的傳送方式、數(shù)據(jù)對象按類型的調(diào)用順序規(guī)定、元素格式規(guī)定以及其它規(guī)定。 集成測試的內(nèi)容(1) 程序元素中的數(shù)據(jù)項的相容性,它包括了數(shù)據(jù)項的表示范圍的相容性、類型的相容性、表示方式的一致性、重要數(shù)據(jù)量的范圍或個數(shù)的相容性、數(shù)據(jù)對象順序的正確性、傳遞方法的正確性、參數(shù)使用合理性等。(2) 對調(diào)用圖的使用中,應(yīng)準確記錄相關(guān)信息,以檢驗對調(diào)用圖的路徑覆蓋情況。(3) 在盡量避免設(shè)計多入口和多出口的程序元素的同時,應(yīng)對此類元素進行認真測試,檢查多入口元素的每個入口點,并驗證選取入口的正確和路徑覆蓋。多出口有時是有必要的,但是也應(yīng)在整體測試中對其進
41、行測試。 集成測試策落集成測試可以采用如下:(1) 自頂向下。自頂向下集成測試是從程序頂部開始,把頂部元素作為單元進行測試,它所調(diào)用的子程序可設(shè)成虛元素,即一種簡單的替代元素,當(dāng)測試完成后,再以真實元素加入,并重新進行對加入后的整個元素的測試;重復(fù)上述過程,直到全部測試完成加入元素及其整體為止。(2) 自底向上。自底向上的集成測試是從程序結(jié)構(gòu)的底層開始,把被集成的元素逐層進行合并測試,直到頂層元素。(3) 隨機測試。隨機測試是對系統(tǒng)進行整體測試的一種方法,但不是唯一的辦法,它是在事先未做周密分析和計劃的條件下,運行和執(zhí)行某一類程序,或利用現(xiàn)成的隨手可得的程序加載到系統(tǒng)并執(zhí)行,從而進行隨機測試,
42、以求發(fā)現(xiàn)程序的某些錯誤,這種測試是正式測試前的先導(dǎo)性測試,當(dāng)發(fā)現(xiàn)某些錯誤并排除后再進行正式的測試。隨機測試有利于確定整體程序的框架,如測試程序是否能完成輸入、存儲、控制和輸出的基本功能。5.3 系統(tǒng)測試系統(tǒng)測試是軟件測試中的最后的、最完整的測試,它是在元素級測試和整體的基礎(chǔ)上進行的,它是從全局來考慮軟件系統(tǒng)的功能和性能要求。(1) 系統(tǒng)測試的任務(wù)。(2) 完成系統(tǒng)的功能驗證。它由軟件人員和質(zhì)量保證人員共同研究進行。(3) 完成系統(tǒng)的驗收測試。它由用戶或用戶代表在正式制定驗收測試計劃的情況下進行。(4) 系統(tǒng)測試計劃。測試計劃的制定是執(zhí)行功能測試和驗收測試的基本保證,它們必須有正式的測試文檔,沒
43、有正式的文檔就不會有正式的測試。測試文檔應(yīng)該是有規(guī)范的且內(nèi)容豐富的資料,一般包含三大部分:A 部分:綜述部分,包括:詞匯集,各種說明書,測試設(shè)計標準和約定,測試運行次序、方法、圖表等。B 部分:測試數(shù)據(jù)庫和代碼部分,包括測試數(shù)據(jù)庫文檔和交叉引用索引,測試數(shù)據(jù)庫生成程序,驅(qū)動程序和裝配生成程序,測試配置說明書,測試硬件和軟件工具,驗證硬、軟件,支持性工具等。測試計劃應(yīng)自頂向下設(shè)計,并且文檔化。 C 部分:實際測試說明書,包括:測試結(jié)構(gòu)與范圍組成,典型測試集組成,預(yù)測試的設(shè)計和記錄,測試計劃和生產(chǎn)率。系統(tǒng)測試實施系統(tǒng)測試的實施一般按下述步驟進行:(1) 功能測試。通過大量的精心的測試實例對系統(tǒng)的功
44、能做全面系統(tǒng)的測試。(2) 性能測試。用特定的測試實例驗證系統(tǒng)的性能要求。(3) 背景測試。用實際負載代替無負載的情況的測試,即真實運行環(huán)境的測試。(4) 配置測試。提供全部邏輯式物理設(shè)備,在指令的設(shè)備組合情況下,實現(xiàn)全部功能的測試。(5) 繁忙測試。系統(tǒng)全部資源處于高度繁忙情況下的一種“破壞”性測試,以驗證系統(tǒng)的可靠性。(6) 恢復(fù)測試。測試系統(tǒng)對故障恢復(fù)能力,測試故障后整體和控制的可恢復(fù)性。(7) 安全性測試。測試系統(tǒng)對錯誤的操作或非法的用戶的惡意破壞的安全保證的可靠程度。其中功能測試、性能測試和繁忙測試對于所有系統(tǒng)都是必要的,其它的測試同樣也是需要的,但根據(jù)系統(tǒng)的不同要求,可能會更有側(cè)重
45、。系統(tǒng)測試包括功能測試和驗收測試兩種測試,其中功能測試是一種按測試計劃和測試文檔嚴格進行的過程,而驗收測試則是一種具有合同執(zhí)行和法律意義的活動。為順利進行系統(tǒng)測試通常需要在測試文檔的指導(dǎo)下,先進行必要的測試,并在測試前組織測試人和見證人班子,測試的指揮人和見證人是測試的關(guān)鍵人員。軟件測試是軟件開發(fā)的重要組成環(huán)節(jié),沒有測試就沒有合格和高質(zhì)量的軟件,而軟件測試的投入,包括人員和資金投入是巨大的,而且具有很高的組織管理和技術(shù)難度,如何組織測試人員隊伍和如何設(shè)計和積累測試實例等,但又是必須進行和完成的重要工作。5.4 測試報告測試報告是測試階段工作的總結(jié),測試報告的內(nèi)容主要包括:·引言。介紹
46、測試的目的、范圍、測試角度和標準、測試結(jié)果概要。·測試計劃和配置。包括系統(tǒng)配置、運行配置、測試標準和評價等。·接口測試。描述對系統(tǒng)接口的測試和結(jié)果。·功能測試。描述對系統(tǒng)各種功能的測試和結(jié)果。·開發(fā)測試。包括正常數(shù)據(jù)和過載數(shù)據(jù)的測試,以及在錯誤數(shù)據(jù)下的測試和結(jié)果。·交付使用的準備。包括交付使用的軟件目錄,留待解決的問題,質(zhì)量的檢驗結(jié)果,對測試結(jié)果進行歸納,給出系統(tǒng)可接受的程度。·附錄。包括參考文獻、異常狀況小結(jié)、測試數(shù)據(jù)等。6. 班級管理系統(tǒng)的測試我們對軟件進行測試首先明白軟件要實現(xiàn)的功能,按照軟件測試文檔進行否則無法對軟件進行測試。
47、班級管理系統(tǒng)實現(xiàn)功能:1)學(xué)生信息管理,包括:學(xué)生信息的錄入、修改、刪除。學(xué)生信息的查詢:學(xué)號、。2)學(xué)生成績管理,包括: 學(xué)生成績的查詢、添加、修改、刪除。計算班級每門課的最低分、最高分、平均分、每個學(xué)生的總分。 計算班級每門課的優(yōu)秀率和優(yōu)秀人數(shù)(>90)、良好率和良好人數(shù)(>75)、不及格率和不及格人數(shù)。3) 課程管理,包括:課程表的查詢課程的添加、刪除、修改現(xiàn)以班級管理系統(tǒng)的成績評定為例進行測試。6.1 應(yīng)用程序測試界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對軟件的第一印象。而且設(shè)計良好的界面能夠引導(dǎo)用戶自己完成相應(yīng)的操作,起到向?qū)缘淖饔?。同時界面如同人的面孔,具
48、有吸引用戶的直接優(yōu)勢。設(shè)計合理的界面能給用戶帶來輕松愉悅的感受和成功的感覺,相反由于界面設(shè)計的失敗,讓用戶有挫敗感,再實用強大的功能都可能在用戶的畏懼與諸東流。班級管理系統(tǒng)的登錄界面和主界面就是很友好的界面,如下所示:6.1.1 易用性測試按鈕名稱易懂,用詞準確,放棄模楞兩可的字眼,要與同一界面上的其它按鈕易于區(qū)分,能望文知意。理想的情況是用戶不用查閱幫助就能知道該界面的功能并進行相關(guān)的正確操作。如班級管理系統(tǒng)的模塊成績評定是一個非常易用如上所示:用戶輸入學(xué)號單擊“統(tǒng)計”可以查詢自己的各科成績和總分,當(dāng)選種單選框“科目”的一門課和在“等級”單選框可以計算優(yōu)秀人數(shù)和優(yōu)秀率、平均分、最低分、最高分
49、等。6.1.2 規(guī)范性測試通常界面設(shè)計都按Windows界面的規(guī)范來設(shè)計,即包含“菜單條、工具欄、工具箱、狀態(tài)欄、滾動條、右鍵快捷菜單”的標準格式,可以說:界面遵循規(guī)范化的程度越高,則易用性相應(yīng)的就越好。小型軟件一般不提供工具箱。班級管理系統(tǒng)主界面如上所示,僅提供菜單、命令工具箱。6.1.3合理性測試屏幕對角線相交的位置是用戶直視的地方,正上方四分之一處為易吸引用戶注意力的位置,在放置窗體時要注意利用這兩個位置。1)父窗體或主窗體的中心位置應(yīng)該在對角線焦點附近,即采取屏幕居中。2)子窗體位置應(yīng)該在主窗體的左上角或正中。3)多個子窗體彈出時應(yīng)該依次向右下方偏移,以顯示出窗體標題為宜。4)重要的命
50、令按鈕與使用較頻繁的按鈕放在界面上較注目的位置。5)與正在進行的操作無關(guān)的按鈕應(yīng)加以屏蔽。6)對可能造成數(shù)據(jù)無法恢復(fù)的操作提供了確認信息,給用戶放棄選擇的機會。并且將按鈕的缺省焦點置在“取消”按鈕上。7)非法的輸入或操作有足夠的提示說明,例如,當(dāng)用戶輸入學(xué)號在數(shù)據(jù)庫不存在時,則系統(tǒng)有提示。例如,當(dāng)用戶查詢自己的各科成績時系統(tǒng)通過查詢數(shù)據(jù)庫有如下提示,同時用戶單擊確定請輸入學(xué)號文本框清空:8)對運行過程中出現(xiàn)問題而引起錯誤的地方要有提示,讓用戶明白錯誤出處,避免形成無限期的等待。9)提示、警告、或錯誤說明清楚、明了、恰當(dāng)。10)對于文本框(TextBox)一般需要根據(jù)其對應(yīng)的數(shù)據(jù)庫字段的類型以及
51、長度來限制用戶允許輸入的字符和長度,測試時注意了輸入框中的數(shù)值的最大數(shù)和最小數(shù),以及默認值、空白值或空格時的情況。11)對于單選組內(nèi)有且只有一個單選鈕可選;如果單選組內(nèi)無單選鈕可選,這種情況是否允許存在。12)復(fù)選框組內(nèi)允許多個復(fù)選框(包括全部可選)可選;如果復(fù)選框組內(nèi)無復(fù)選框可選,這種情況允許存在;文本框及某些控件拒絕輸入和選擇時顯示區(qū)域變灰或按既定規(guī)約處理。13)系統(tǒng)的提示框樣式應(yīng)統(tǒng)一,即使用標準的Windows提示框,其中包括標題、圖標、提示語和功能按鈕。圖標使用要規(guī)范,要根據(jù)提示信息的性質(zhì)選擇不同的圖標,而且除非嚴重的錯誤,一般不使用“X”圖標,以免使用戶產(chǎn)生畏懼心理。14)窗體顯示后
52、,缺省的焦點設(shè)在最合理的控件上,方便用戶操作。15)輸入型控件一般不允許只輸入空格或可存入輸入值兩端的空格。6.1.4美觀與協(xié)調(diào)性界面大小應(yīng)該適合美學(xué)觀點,感覺協(xié)調(diào)舒適,能在有效的范圍內(nèi)吸引用戶的注意力。1)長寬接近黃金點比例(寬高比為4:3),切忌長寬比例失調(diào)。2)布局合理,不宜過于密集,也不能過于空曠,合理的利用空間。3)按鈕大小基本相近,忌用太長的名稱,免得占用過多的界面位置,與界面的大小和空間要協(xié)調(diào)。4)避免空曠的界面上放置很大的按鈕。5)放置完控件后界面沒有很大的空缺位置。6)字體的大小與界面的大小比例協(xié)調(diào), 通常使用的字體中宋體9-12較為美觀,很少使用超過12號的字體。建議使用宋
53、體9號字。7)前景與背景色搭配合理協(xié)調(diào),反差不太大,少用深色,如大紅、大綠等。常用色使用Windows界面色調(diào)。8)如果使用其他顏色,主色要柔和,具有親和力與磁力,堅決杜絕刺目的顏色。班級管理系統(tǒng)的載入界面顏色采用了這一原則使用戶感覺樸素大方具有磁性。如下所示:6.2 功能測試在測試前,首先要根據(jù)需求分析報告全面了解用戶需求并透徹理解。測試時要注意以下幾點:A、測試時要分清主次,即先測試主要功能,后測試次要功能。要選找出系統(tǒng)的功能主干,讓數(shù)據(jù)依次流經(jīng)功能主干,測試功能實現(xiàn)的是否正確。B、功能主干用正常正確后,我們還要考慮測試其異常處理功能。C、功能主干測試正確后,再進行分支功能的測試。E、要對
54、程序的功能進行方便性測試,將不夠滿意的地方,都應(yīng)當(dāng)成系統(tǒng)缺陷向項目負責(zé)人或系統(tǒng)開發(fā)者指出。F、檢查系統(tǒng)需求和設(shè)計說明書中要求的功能是否在系統(tǒng)中都被實現(xiàn)、性能是否達到指標。G、數(shù)據(jù)之間的邏輯關(guān)系是否正確。班級管理系統(tǒng)的功能測試是本系統(tǒng)的重點測試,對于班級管理系統(tǒng)的“成績評定”可以完成計算班級每門課的最低分、最高分、平均分、每個學(xué)生的總分。計算班級每門課的優(yōu)秀率和優(yōu)秀人數(shù)(>90)、良好率和良好人數(shù)(>75)、不及格率和不及格人數(shù)。當(dāng)使用黑盒測試測試系統(tǒng)時,系統(tǒng)應(yīng)完成上述功能,對于邊界值測試時系統(tǒng)也有一定的提示(測試用例學(xué)號為空)如下所示:當(dāng)用戶選中科目和等級的單選框時,單擊確定查詢按
55、扭能完成所要求的操作(測試用例學(xué)號為20024420、心理學(xué)這門課的良好率和良好人數(shù)和這門課的最高分、最低分)。當(dāng)用戶選中該系統(tǒng)“科目”框架中的計算機文化基礎(chǔ)和“等級”框架中的、良好、人數(shù)、平均分時,單擊“查詢”時所完成的操作與實際期望一致。如下所示:同時完成對學(xué)生記錄的添加、修改、刪除;成績的修改、刪除等功能?,F(xiàn)以班級管理系統(tǒng)學(xué)生的刪除為例進行測試如下,當(dāng)用戶單擊“是(Y)”則刪除當(dāng)前記錄;單擊“否(N)”則取消刪除。6.3 環(huán)境測試配置測試環(huán)境是測試實施的一個重要階段,測試環(huán)境適合與否會嚴重影響測試結(jié)果的真實性和正確性。測試環(huán)境包括硬件環(huán)境和軟件環(huán)境。其中軟件環(huán)境指被測軟件運行時的操作系統(tǒng)
56、、數(shù)據(jù)庫及其他應(yīng)用軟件構(gòu)成的環(huán)境。在實際測試中,軟件環(huán)境又可分為主測試環(huán)境和輔助測試環(huán)境。主測試環(huán)境是測試軟件功能、安全可靠性、性能、易用性等大多數(shù)指標的主要環(huán)境。一般來說,配置主測試環(huán)境可遵循下列原則:1.符合軟件運行的最低要求。測試環(huán)境首先要保證能支撐軟件正常運行。2.選用比較普及的操作系統(tǒng)和軟件平臺。本系統(tǒng)能在Win98、Win2000、2000Server、Windows XP系統(tǒng)下運行。3.營造相對簡單、獨立的測試環(huán)境。除了操作系統(tǒng),測試機上只安裝軟件運行和測試必需的軟件,以避免不相關(guān)的軟件影響測試實施。4.無毒的環(huán)境。利用有效的正版殺毒軟件檢測軟件環(huán)境,保證測試環(huán)境中沒有病毒。并檢
57、測軟件與時下流行的兩種殺毒軟件有沒有充突。輔助測試環(huán)境常常用來滿足不同的測試需求或特殊測試項目:兼容性測試:在滿足軟件運行要求的范圍內(nèi),可選擇一些典型的操作系統(tǒng)和常用應(yīng)用軟件對其安裝卸載和主要功能進行驗證。 6.4 壓力測試壓力測試用來檢查程序?qū)Ξ惓G闆r的抵抗能力。當(dāng)容量的信息不確定的時候,確定分配了足夠的磁盤空間,通訊的容量足夠,測試系統(tǒng)過載的情況。同時壓力測試總是迫使系統(tǒng)在異常的資源配置下運行。班級管理系統(tǒng)是一個非常小的系統(tǒng),所以壓力測試是在一般的電腦是無法進行檢測到。6.5 恢復(fù)測試恢復(fù)測試主要檢查系統(tǒng)的容錯能力。當(dāng)系統(tǒng)出錯時,能在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)。恢復(fù)測試采用各種辦法強迫系統(tǒng)失敗,然后驗證系統(tǒng)能盡快恢復(fù)。對于自動恢復(fù)需驗證重新初始化、檢查點、數(shù)據(jù)恢復(fù)和重新啟動等機制的正確性;對于人工干預(yù)的恢復(fù)系統(tǒng),還需估測平均修復(fù)時間,確定其是否在可接受的范圍內(nèi)。該系統(tǒng)出現(xiàn)錯誤時,停止系統(tǒng)的運行可以恢復(fù)系統(tǒng)誤差的狀態(tài)。6.6 性能測試性能測試主要是對響應(yīng)時間、事務(wù)處理速率、數(shù)據(jù)顯示速度、計算速度、數(shù)據(jù)庫查詢響應(yīng)時間、掃描時間、掃描識別率等和其他與時間相關(guān)的需求進行評測和評估。性能評測的目標是核實性能需求是否都已滿足。實施和執(zhí)行性能評測的目的是將測試對象的性能行為當(dāng)作條件的一種函數(shù)來進行評測和微
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度環(huán)保型建筑施工現(xiàn)場環(huán)境治理合同樣本3篇
- 2024版二手房買賣合同違約責(zé)任補充協(xié)議范本(含合同終止)3篇
- 2024年度博物館室內(nèi)照明燈具保護與安裝合同3篇
- 2024年標準化離婚冷靜期合同樣本版
- 2024年度許可合同:藥品生產(chǎn)許可協(xié)議3篇
- 2024版吊車維修保養(yǎng)及備件銷售合同2篇
- 2024年度家電產(chǎn)品存貨質(zhì)押擔(dān)保合同3篇
- 2024年冷庫安裝合同模板2篇
- 2024年光伏電站涂料施工與光伏效率合同3篇
- 2024版住宅銷售居間代理與客戶關(guān)系管理合同3篇
- 建筑工程鋼結(jié)構(gòu)焊接變形的控制措施
- 文化傳媒公司招聘筆試題
- 零售業(yè)收銀員操作培訓(xùn)
- 信息安全職業(yè)生涯規(guī)劃
- 新能源技術(shù)的前沿研究與應(yīng)用探索
- 裝配式結(jié)構(gòu)監(jiān)理細則
- 工作無紙化總結(jié)匯報
- 初中美術(shù)八年級上冊服裝設(shè)計(全國一等獎)
- 導(dǎo)醫(yī)接待與患者情緒管理
- 2024年醫(yī)院口腔科護理帶教計劃
- 二年級科學(xué)上冊跨學(xué)科項目化學(xué)習(xí)案例做一個小鳥餐廳
評論
0/150
提交評論