系統(tǒng)測試概念學(xué)習(xí)
??? 系統(tǒng)測試的任務(wù)是把軟件放在實際的硬件和網(wǎng)絡(luò)環(huán)境中進(jìn)行測試,主要測試軟件的非功能需求和質(zhì)量屬性是否得到滿足。系統(tǒng)測試通常采用黑盒測試,強(qiáng)調(diào)的是功能而不是結(jié)構(gòu)。計算機(jī)軟件是基于計算機(jī)系統(tǒng)的一個重要組成部分,在系統(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)該由若干個不同測試組成,目的是充分運(yùn)行系統(tǒng),驗證系統(tǒng)各部件是否都能政黨工作并完成所賦予的任務(wù)。
?
下面簡單討論幾類系統(tǒng)測試。
?
1、恢復(fù)測試
?
恢復(fù)測試主要檢查系統(tǒng)的容錯能力。當(dāng)系統(tǒng)出錯時,能否在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)。恢復(fù)測試首先要采用各種辦法強(qiáng)迫系統(tǒng)失敗,然后驗證系統(tǒng)是否能盡快恢復(fù)。對于自動恢復(fù)需驗證重新初始化(reinitialization)、檢查點(diǎn)(checkpointing mechanisms)、數(shù)據(jù)恢復(fù)(data recovery)和重新啟動(restart)等機(jī)制的正確性;對于人工干預(yù)的恢復(fù)系統(tǒng),還需估測平均修復(fù)時間,確定其是否在可接受的范圍內(nèi)。
??? 簡單的說恢復(fù)測試是指通過各種手段讓軟件強(qiáng)制性得發(fā)生故障,然后來驗證恢復(fù)是否能正常的一種系統(tǒng)測試方式。
?
2、安全測試
?
安全測試檢查系統(tǒng)對非法侵入的防范能力。安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。例如:①想方設(shè)法截取或破譯口令;②專門定做軟件破壞系統(tǒng)的保護(hù)機(jī)制;③故意導(dǎo)致系統(tǒng)失敗,企圖趁恢復(fù)之機(jī)非法進(jìn)入;④試圖通過瀏覽非保密數(shù)據(jù),推導(dǎo)所需信息,等等。理論上講,只要有足夠的時間和資源,沒有不可進(jìn)入的系統(tǒng)。因此系統(tǒng)安全設(shè)計的準(zhǔn)則是,使非法侵入的代價超過被保護(hù)信息的價值。此時非法侵入者已無利可圖。
?
3、強(qiáng)度測試(壓力測試)
?
強(qiáng)度測試檢查程序?qū)Ξ惓G闆r的抵抗能力。強(qiáng)度測試總是迫使系統(tǒng)在異常的資源配置下運(yùn)行。例如:①當(dāng)中斷的正常頻率為每秒一至兩個時,運(yùn)行每秒產(chǎn)生十個中斷的測試用例;②定量地增長數(shù)據(jù)輸入率,檢查輸入子功能的反映能力;③運(yùn)行需要最大存儲空間(或其他資源)的測試用例;④運(yùn)行可能導(dǎo)致虛存操作系統(tǒng)崩潰或磁盤數(shù)據(jù)劇烈抖動的測試用例,等等。
??? 強(qiáng)度測試從本質(zhì)上來說,就是要知道“將系統(tǒng)折騰到什么程度而不會出錯”
?
?? 4、性能測試
?
對于那些實時和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一測試步驟都包含性能測試,但只有當(dāng)系統(tǒng)真正集成之后,在真實環(huán)境中才能全面、可靠地測試運(yùn)行性能系統(tǒng)性能測試是為了完成這一任務(wù)。性能測試有時與強(qiáng)度測試相結(jié)合,經(jīng)常需要其他軟硬件的配套支持。
?
?????????????????????????????????????????????????
?
系統(tǒng)驗收測試
?
?
??? 系統(tǒng)驗收測試是最終用戶使用真實數(shù)據(jù)一段時間后進(jìn)行的最終系統(tǒng)測試,它給最終用戶、管理人員和信息系統(tǒng)操作管理人員最后一次機(jī)會決定接收或者拒絕系統(tǒng)。系統(tǒng)驗收測試是一種詳細(xì)測試,涉及3個層面的驗收測試,分別是驗證測試、確認(rèn)測試和審計測試。
?
??? 1、驗收測試:在一個模擬環(huán)境下使用模擬數(shù)據(jù)運(yùn)行系統(tǒng),主要尋找錯誤和遺漏
??? 2、確認(rèn)測試:在一個實際環(huán)境中使用真實數(shù)據(jù)運(yùn)行系統(tǒng),可測試性能、峰值負(fù)載處理性能、方法和程序測試、備份和恢復(fù)測試等
??? 3、審計測試:證實系統(tǒng)沒有錯誤并準(zhǔn)備好了,可以正式運(yùn)行。
?
?????????????????????????????????????????????????
?
黑盒測試
??
??? 黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它是在已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試時,把程序看作一個不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)鋸而產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因-果圖、錯誤推測等,主要用于軟件確認(rèn)測試。
??? “黑盒”法著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),針對軟件界面和軟件功能進(jìn)行測試。“黑盒”法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程序中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進(jìn)行測試。
?
?
白盒測試
?
?
??? 白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。????
???
??? “白盒”法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。“白盒”法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯誤。第一:窮舉路徑測試絕不能查出程序違反了設(shè)計規(guī)范,即程序本身是個錯誤的程序;第二:窮舉路徑測試不可能查出程序中因遺漏路徑而出錯;第三:窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯誤。
?
?
?????????????????????????????????????????????????
?
?