查看匯總:2014年計(jì)算機(jī)三級(jí)《信息管理》考試要點(diǎn)匯總
三級(jí)信息管理技術(shù)分章節(jié)考試要點(diǎn):軟件工程(軟件測試之測試的基本概念)
軟件測試
在軟件開發(fā)的一列活動(dòng)中,為了保證軟件的可靠性,人們研究并使用了很多方法進(jìn)行分析、設(shè)計(jì)及編碼實(shí)現(xiàn)。但是由于軟件產(chǎn)品本身無形態(tài),它是復(fù)雜的、知識(shí)高度密集的邏輯產(chǎn)品,其中不可能沒有錯(cuò)誤。物理產(chǎn)品在出廠前都要進(jìn)行嚴(yán)格的檢驗(yàn),軟件產(chǎn)品也不例外。軟件開發(fā)總伴隨著軟件質(zhì)量保證的活動(dòng),而軟件測試是主要活動(dòng)之一。軟件測試代表了需求分析、設(shè)計(jì)、編碼的最終復(fù)審。
測試是一項(xiàng)很艱苦的工作,其工作量約占軟件開發(fā)總工作量的40%以上,特別對(duì)一些關(guān)系到人的生命安全的軟件,共測試成本可能相當(dāng)于開發(fā)階段總成本的3~5倍。
(一)測試的基本概念
1.測試的目的
軟件測試的目的是盡可能多地發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序)中的錯(cuò)誤和缺陷。
明確測試的目的是一件非常重要的事,因?yàn)樵诂F(xiàn)實(shí)世界中對(duì)測試工作存在著許多模糊或者錯(cuò)誤的看法,這些看法嚴(yán)重影響著測試工作的順利進(jìn)行。
有人認(rèn)為測試是為了證明程序是正確的,也就是說程序不再有錯(cuò)誤,事實(shí)證明這是不現(xiàn)實(shí)的。因?yàn)橐ㄟ^測試來發(fā)現(xiàn)程序中的所有錯(cuò)誤就要窮舉所有可能的輸入數(shù)據(jù),檢查它們是否產(chǎn)生正確的結(jié)果。例如,一個(gè)需要3個(gè)16位字長的整型輸入數(shù)據(jù)的程序,輸入數(shù)據(jù)的所有組合情況大約有3×10 14 種,若每組數(shù)據(jù)的測試時(shí)間為1ms,那么即使一年365天,每天24小時(shí)地測試,也大約需要1萬年的時(shí)間。
2.測試用例
要進(jìn)行測試,除了要有測試數(shù)據(jù)(或稱輸入數(shù)據(jù))外,還應(yīng)同時(shí)給出該組測試數(shù)據(jù)應(yīng)該得以怎樣的輸出結(jié)果,我們稱它為預(yù)期結(jié)果。在測試時(shí)將實(shí)際的輸出結(jié)果與預(yù)期結(jié)果比較,若不同則表示發(fā)現(xiàn)了錯(cuò)誤,因此測試用例是由測試數(shù)據(jù)和預(yù)期結(jié)果構(gòu)成的。
為了發(fā)現(xiàn)程序中的錯(cuò)誤,應(yīng)竭力設(shè)計(jì)能暴露錯(cuò)誤的測試用例。一個(gè)好的測試用例是極有可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試用例。一次成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。
3.測試的原則
基于上述測試目的,我們可以考慮以下有關(guān)測試的原則:
(1)確定預(yù)期輸出結(jié)果是測試用例必不可少的一部分。如果只有測試數(shù)據(jù)而無預(yù)期結(jié)果,那么就不易判斷測試結(jié)果是否正確。
(2)程序員應(yīng)避免測試自己的程序,程序設(shè)計(jì)機(jī)構(gòu)不應(yīng)測試自己的程序。這是因?yàn)槌绦蛑械腻e(cuò)誤往往是由于程序員對(duì)問題說明的誤解,由他來測試自己的程序就不易找出因這種誤解而產(chǎn)生的錯(cuò)誤。此外,開發(fā)程序是一項(xiàng)建設(shè)性的工作,而測試則是一項(xiàng)破壞性的工作(證明程序有錯(cuò)),這對(duì)開發(fā)人員或機(jī)構(gòu)來說在心理上是難以容忍的。為了證明自己的程序沒有錯(cuò)誤或錯(cuò)誤很少,他們往往不去選擇容易發(fā)現(xiàn)錯(cuò)誤的測試用例,而選擇容易通過的測試用例。當(dāng)然,這并不意味著程序員都不能測試自己的程序,如單元測試通常就是由程序員自己測試的。
(3)徹底檢查每個(gè)測試結(jié)果。如果不仔細(xì)檢查測試結(jié)果,有些已經(jīng)測試出來的錯(cuò)誤也可能被遺漏掉。
(4)對(duì)非法的非預(yù)期的輸入數(shù)據(jù)也要像合法的和預(yù)期的輸入數(shù)據(jù)一樣編寫測試用例。
(5)檢查程序是否做了應(yīng)做的事是成功的一半,另一半是看程序是否做了不該做的事。
(6)除了真正沒有用的程序外,一定不要扔掉測試用例。因?yàn)樵诟恼e(cuò)誤或程序維護(hù)后還要進(jìn)行重新測試。
(7)在規(guī)劃測試時(shí)不要設(shè)想程序中不會(huì)查出錯(cuò)誤。
(8)程序模塊經(jīng)測試后,殘存的錯(cuò)誤數(shù)目往往與已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成比例。實(shí)踐證明,程序中的大量錯(cuò)誤僅與少量的程序模塊有關(guān),因此當(dāng)A模塊找出的錯(cuò)誤比B模塊多得多時(shí),很可能A模塊殘存的錯(cuò)誤仍比B模塊殘存的錯(cuò)誤多多。
4.白盒測試和黑盒測試
測試的關(guān)鍵是測試用例的設(shè)計(jì),其方法可分成兩類:白盒測試和黑盒測試。
白盒測試是把程序看成裝在一只透明的白盒子里,測試者完全了解程序結(jié)構(gòu)和處理過程。它根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例,檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作。黑盒測試是把程序看成一只黑盒子,測試者完全不了解(或不考慮)程序的結(jié)構(gòu)和處理過程。它根據(jù)規(guī)格說明書規(guī)定的功能來設(shè)計(jì)測試用例,檢查程序的功能是否符合規(guī)格說明的要求。
相關(guān)推薦:
計(jì)算機(jī)等級(jí)考試合格標(biāo)準(zhǔn)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |