版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、關(guān)于軟件測試技術(shù)的探討摘要:隨著計算機技術(shù)的飛速發(fā)展,軟件測試技術(shù)已作為一項單獨的科目從軟件工程領(lǐng)域分離了出來。測試是為做出的軟件更好地滿足用戶需求而進(jìn)行的一致性測評,即測量最終結(jié)果是否與需求分析中的用戶需求相吻合或吻合程度。測試方法種類繁多, 最基本的有黑盒測試和白盒測試。測試的模塊化分析的作用也日益突出,對一個大的軟件可以分模塊,分單元測試。測試用例的設(shè)計技巧性也很強,比如選取最具代表性的用例,使測試文檔更加精簡。另外,隨著測試技術(shù)的不斷發(fā)展,也出現(xiàn)了許多優(yōu)秀的測試工具,比如:qac ,mccabe ,eunit 等,它們使我們對測試事半功倍。關(guān)鍵詞:軟件單元測試 測試用例 模塊化中圖分類
2、號:tp311.52 文獻(xiàn)標(biāo)識碼:a 文章編號:1007-9416(201202-0133-03當(dāng)前,對軟件工程領(lǐng)域的討論出現(xiàn)了很多優(yōu)秀文章。軟件工程也作為一門重要的學(xué)科得到了快速的發(fā)展。在這些文章中對軟件的設(shè)計和開發(fā)都做了比較深刻的探討。但是,軟件測試技術(shù)作為軟件工程中的一個非常重要的環(huán)節(jié)卻經(jīng)常得不到人們的深刻認(rèn)識。往往人們在有些方面還對軟件測試的環(huán)節(jié)和作用有著不同程度的錯誤認(rèn)識。1、軟件測試的地位測試在軟件開發(fā)的過程中到底應(yīng)該占據(jù)一個什么樣的位置?許多人對此問題理解的并不十分深刻。人們有時對此問題的理解在某種程度上甚至還存在著錯誤。有些人認(rèn)為軟件測試只是對做出的東西做一個功能的檢驗,此過程
3、只要在開發(fā)過程中做好調(diào)試工作,這一模塊完全可以避免。軟件測試是為了測量軟件與需求和總體框架是否吻合以及吻合程度。一個軟件做的到底合不合格,此產(chǎn)品是否可以發(fā)布,是否能夠滿足用戶的需要,是否能給用戶留下良好的形象,其中測試起著舉足輕重的作用。由此我們可以看出,軟件的測試絕不是在開發(fā)過程中可有可無的模塊,它占據(jù)著一個十分重要的地位。我們做測試是在軟件開發(fā)過程中與其它各模塊有機融合的測試,不是把其單獨拿出來看看它是什么,做了什么?而是看我們做這些功用在哪,做了這些為整個軟件開發(fā)帶來什么樣的益處。2、測試技術(shù)2.1 對測試認(rèn)識的常見誤區(qū)測試的目的是判斷軟件是否與預(yù)期目標(biāo)相符及相符的程度。當(dāng)然如果狹義的講
4、我們也可以說測試就是盡可能早的、盡可能多的發(fā)現(xiàn)現(xiàn)有文件中的錯誤,并將錯誤提交給相關(guān)人員,使問題盡早得到解決。但是過去有許多人對軟件測試并不是認(rèn)識的特別清楚,即使是現(xiàn)在也有一部分人對測試的理解和測試本質(zhì)意義仍有很大偏差。以下我們將介紹兩種對測試?yán)斫獾某R婂e誤。有些人將測試和調(diào)試在一定程度上混為一談,他們認(rèn)為如果在調(diào)試上多花些功夫,則測試是完全沒有必要的。這是一種極其錯誤的想法。此種錯誤的根源在于沒有對測試和調(diào)試的基本概念搞清楚。調(diào)試是指程序員在開發(fā)過程中對自己書寫的程序進(jìn)行正誤的判斷,看自己的代碼是否能夠按照架構(gòu)文檔描述正常工作。而測試的工作則是看得到的代碼或軟件是否按照需求文檔工作,這具體包括
5、:各個功能是否得到了有效的實現(xiàn),最終得到的軟件的整體性效果如何。軟件在一定的壓力條件下(比如:內(nèi)存相對不足)是否能正常工作,輸入錯誤信息得到什么樣的回饋,系統(tǒng)在長時間工作的條件下是否還能正常運行等等。對這些概念理解清楚了,自然就能夠正確區(qū)分測試和調(diào)試的差別。當(dāng)然測試和調(diào)試有一些內(nèi)容存在交匯點。有些人認(rèn)為測試是在軟件開發(fā)完成后進(jìn)行一次總體的檢查,其起始時間是在其它工作都基本結(jié)束的時候,再致力于軟件的測試工作。其實則不然,軟件的測試工作是應(yīng)該與需求分析同步起來,也就是說在做需求分析的過程中應(yīng)當(dāng)有測試人員介入,這樣使得測試人員對此系統(tǒng)具體要完成哪些工作做到心中有數(shù)。有一點大家一定注意,測試不只是看程
6、序員寫的程序是否能夠正常工作,更重要的是看其是否滿足用戶需求,以及在各種條件下的滿足程度。伴隨著需求分析文檔的誕生,測試人員的測試框架和測試文檔也應(yīng)當(dāng)相應(yīng)的得到實現(xiàn)。當(dāng)程序員完成部分工作,則測試人員就應(yīng)該根據(jù)測試文檔書寫測試程序?qū)Φ玫降默F(xiàn)有完成部分進(jìn)行測試。這樣一旦發(fā)現(xiàn)bug ,就及時提交給相關(guān)人員,通過這一過程,能使問題在最早的時間段內(nèi)得到解決,同時也使損失盡可能的降到最低。軟件的開發(fā)就是這樣相互疊加式的前進(jìn)過程。在我們了解了測試的常見錯誤后,下面讓我們對測試的分類進(jìn)行一下梳理。2.2 測試分類軟件的測試按照不同的分類方法可分成不同的類。按照測試人員的不同可分為:專業(yè)測試和用戶測試;按照軟件
7、總體性可分為:黑盒測試和白盒測試;按照開發(fā)的不同階段可分為:軟件開發(fā)過程中測試和產(chǎn)品測試及后段測試;按照軟件性能可分為:功能測試,極限測試,容錯測試,壓力測試和時間測試等等。在下面向大家介紹幾種重要的測試類別。軟件測試從整體角度可分為黑盒測試和白盒測試。黑盒測試顧名思義就是我們對程序代碼內(nèi)部機制不用管,我們關(guān)心的只是其功能。比如我們將其看成一個黑箱子,其內(nèi)部放些什么東西我們并不了解。我們向其做一定的輸入,看其輸出結(jié)果會是什么樣子。通過這種方法我們來確定此模塊的功用是否與要求相符,這叫做黑盒測試。相反,我們不僅要知道盒子的輸入輸出反應(yīng),還要知道其內(nèi)部實現(xiàn)機理,一旦在哪一塊出現(xiàn)錯誤,我們可以及時的
8、修正。通過這樣的方法進(jìn)行測試稱為白盒測試。比如我們對于以下代碼模塊進(jìn)行測試:void swap(int *a,int *b a += b;b = a-b;a = a-b;示例代碼2.1當(dāng)我們用黑盒測試的時候我們只看到盒子兩個入口,可以放兩個變量指針,所以我們就把變量&avalue,&bvalue傳進(jìn)去,而結(jié)果是交換了兩個內(nèi)存單元的數(shù)據(jù)。而白盒測試則不然,它要求我們明白盒子(即程序具體代碼)的內(nèi)在實現(xiàn)過程。比如我們發(fā)現(xiàn)使的是java語言,而不支持指針操作,所以我們作為測試員就可以把代碼修正,如下:public static void swap(int & a,int &a
9、mp;b a += b;b = a - b;a = a - b;示例代碼2.2這樣我們同樣實現(xiàn)了相同的功能。在軟件性能測試中最重要的就是功能測試,功能測試是看我們要測的模塊是否能夠完成要求的任務(wù),是否在正常情況下給其一個合適的輸入能得到期望的回應(yīng)。功能測試最重要,但在實現(xiàn)起來也最簡單。比如測試一個線程能否被正確建立我們可以用以下代碼:void test( thread t = thread.instance(;if(t= = null printfile(0;return; hresult hr = t.start(;if (hr != ok printfile(0;示例代碼2.3這樣我們就可
10、方便地進(jìn)行功能測試了,看其是否正常工作,如果不能正常工作,我們將會在輸出文件里得到0信息。極限測試是我們判斷軟件在給定邊界值的工作情況的,比如我們給定文檔說線程可以同時起動10個,則我們可以使用如下程序來實現(xiàn)此功能:void test( thread t = thread.instace(;int count = 0;if (t = =null printfile(0;return; bool b = true;while(b 保證線程不退出機制hresult h = t.start(;if (h != ok printfile(count;printfileappend(count >
11、= 10;b=false; count+;線程退出,釋放資源示例代碼2.4通過這樣的方法我們可以得到最多起動線程數(shù)和是否滿足了需求,如果滿足了用戶需求,則我們就會在輸出文件里得到兩個數(shù),第一個為線程啟動數(shù),第二個為true 。比如(20 true。容錯測試則是我們不像設(shè)計者預(yù)期的那樣給定的系統(tǒng)值,比如在示例代碼2.1的時候我們給其為兩變量(a,b或(pointa ,b )(a,pointb(pointa代表a 為一指針 看結(jié)果會怎么樣,通過這樣看當(dāng)給定錯誤代碼時系統(tǒng)界面是否友好,當(dāng)然我們更不希望當(dāng)接收錯誤信息時系統(tǒng)會崩潰掉。壓力測試指我們的系統(tǒng)在不像我們設(shè)想的理想環(huán)境下運行時,會有什么效果。比
12、如內(nèi)存不足,系統(tǒng)運行一定時間,硬件兼容性低,硬件配置相對較低等等。例如我們做示例代碼2.4的壓力測試:void test( 耗掉大部分內(nèi)存示例代碼2.4示例代碼2.5這時我們觀察看輸出文件是否還會得到第一個數(shù)大于10而第二個數(shù)為true 。時間測試也叫耐力測試,是看我們設(shè)計的系統(tǒng)是否能夠長時間運作接收各種服務(wù)而仍能正常工作的測試。2.3 測試過程在軟件開發(fā)過程中,當(dāng)進(jìn)入需求分析階段,測試工作也將啟動。測試根據(jù)開發(fā)的各個階段不斷前進(jìn)也將自己逐步推進(jìn)到新的層次。測試文檔的生成包括兩個階段。第一階段是在需求分析及總體框架設(shè)計時測試員生成自己的測試框架,此框架根據(jù)需求分析文檔得到相應(yīng)的需求測試文檔。當(dāng)
13、然在此階段不可能細(xì)化測試框架,因為我們還不知道我們的系統(tǒng)細(xì)節(jié)應(yīng)該是個什么樣子。所以到了詳細(xì)框架設(shè)計時,我們就應(yīng)該根據(jù)此框架設(shè)計我們的測試用例。在此階段我們得到一個整體的測試框架,我們不要求細(xì)化內(nèi)容,當(dāng)然也不可能在需求分析階段做到。我們按照需求分析文檔和整體框架設(shè)文檔設(shè)計測試框架。比如對于一個簡單的操作系統(tǒng)我們可以:1文件測試需求:網(wǎng)絡(luò)應(yīng)用,2進(jìn)程測試需求:客戶請求啟動相應(yīng)服務(wù),3線程測試需求:當(dāng)某一任務(wù)啟動后又有用戶請求,啟動一線程為其服務(wù),如此得到大致的測試方向,當(dāng)軟件開發(fā)進(jìn)發(fā)詳細(xì)框架設(shè)計時,我們就有可能根據(jù)相應(yīng)的文檔產(chǎn)生出我們的測試文檔了。我們進(jìn)入測試文檔書寫的時候,最重要的就是用例設(shè)計。
14、我們對用例的選擇,一方面要進(jìn)行全面性考慮,另一方面我們也要選擇那些有代碼性的用例來設(shè)計。即我們不僅要有數(shù)量,面面俱到,還要有質(zhì)量,每個用例都有一個特定的代表,而并非簡單的用例重復(fù)。例如:線程測試的一個用例(用例1)測試名稱線程測試測試類型功能測試預(yù)期結(jié)果輸出(n ,true )n>10測試目的在正常情況下線程的最大啟動數(shù)目應(yīng)該在10以上測試簡述1產(chǎn)生一個線程實例,看是否正確2注冊一個機制使啟動線程不退出3循環(huán)判斷最大啟動線程數(shù)4線程退出,釋放資源(如表1)通過以上的設(shè)計,我們就可以方便地進(jìn)行測試程序的編碼了。在此階段我們根據(jù)測試文檔書寫測試代碼。在書寫代碼時我們有幾點需要注意:第一,結(jié)果簡單。我們需要的最終結(jié)果是個易于看易于理解的結(jié)一致性測評,即測量最終結(jié)果是否與需求分析中的用戶需求相吻合 或吻合程度。軟件的測試絕不是在開發(fā)過程中可有可無的模塊,它 占據(jù)著一個十分重要的地位,在軟件開發(fā)過程中我們應(yīng)給予其足夠 的重視和正確的認(rèn)識。 參考文獻(xiàn) 1王家華.軟件工程m.東北:東北大學(xué)出版社,2001,1
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色出行解決方案民間擔(dān)保借款合同4篇
- 男方協(xié)議離婚書2025年度電子版制作與版權(quán)保護合同3篇
- 二零二五年度智能電網(wǎng)設(shè)備研發(fā)與銷售合同范本4篇
- 二零二五版內(nèi)資股協(xié)議轉(zhuǎn)讓知識產(chǎn)權(quán)保護合同4篇
- 二零二五年度爬架租賃與施工現(xiàn)場環(huán)境保護合同2篇
- 2025年度城市公園綠地日常養(yǎng)護維修服務(wù)合同規(guī)范3篇
- 二零二五年度名筑印象住宅電梯品牌代理銷售合同4篇
- 二零二五年內(nèi)蒙古文化旅游融合發(fā)展合同規(guī)范4篇
- 2025年度瓷磚鋪貼與新型建筑材料研發(fā)合同4篇
- 二零二五年度山莊生態(tài)旅游合作開發(fā)合同范本2篇
- 二零二五年度無人駕駛車輛測試合同免責(zé)協(xié)議書
- 2025年湖北華中科技大學(xué)招聘實驗技術(shù)人員52名歷年高頻重點提升(共500題)附帶答案詳解
- 高三日語一輪復(fù)習(xí)助詞「と」的用法課件
- 毛渣采購合同范例
- 無子女離婚協(xié)議書范文百度網(wǎng)盤
- 2023中華護理學(xué)會團體標(biāo)準(zhǔn)-注射相關(guān)感染預(yù)防與控制
- 五年級上冊小數(shù)遞等式計算200道及答案
- 2024年廣東高考政治真題考點分布匯 總- 高考政治一輪復(fù)習(xí)
- 燃?xì)夤艿滥甓葯z驗報告
- GB/T 44052-2024液壓傳動過濾器性能特性的標(biāo)識
- 國際市場營銷環(huán)境案例分析
評論
0/150
提交評論