- 相關推薦
論軟件工程內軟件測試的必要性
軟件測試是軟件工程中必不可少的一項,它從軟件一開始開發就介入測試,下面小編我餓大家帶來了關于軟件工程內軟件測試的必要性的論文。
摘要:軟件工程內,軟件測試有著非常強的必要性,本文在淺談了對軟件測試認識的基礎上,對測試分類、測試對象進行了總結,最后探討了測試的目的及原則,希望能夠對軟件測試工作起到一定的指導組要。
關鍵詞:軟件工程;軟件測試;必要性
1. 引言
隨著計算機技術不斷地發展,計算機軟件在我們生活和工作方面所起到的作用越來越大。對于計算機來說,軟件可以看做其靈魂,一旦軟件出現失效的情況,必然會引起比較大的經濟損失,嚴重的時候還會對人的生命安全造成威脅,舉例來看,1996年的Ariane 5運載火箭的發射失敗就是因軟件故障導致的;诖,做好軟件測試的研究不僅有其學術意義,也有著比較強的實踐指導作用。
2. 關于軟件測試的認識
在軟件開發的每一個階段中,人員的參與都是離不開的部分,而人的工作以及人們之間的通信質量有很難做到完美無缺,這就導致了錯誤是不可避免的。另外,伴隨著計算機控制對象越來越復雜,且軟件的功能及規模也在不斷的提升,這也使得錯誤相對而言更容易發生,比如對于Windows NT操作系統來說,其代碼約為3200萬行?傮w來看,在軟件設計階段,人們所犯的錯位是引起軟件失效的主要原因,而軟件缺陷的根源則在于軟件的復雜性。
在確保軟件可靠性以及質量的過程中,軟件測試屬于最為主要的手段,以當前的軟件工程來看,多以結構化分析及設計作為核心,因此在開發階段,需求分析以及設計都是以工程管理以及技術評審作為質量的保障手段,而工程管理以及技術評審又存在著主觀上的缺陷,很容易遺漏錯誤使其延續至開發階段。
客觀來說,軟件測試在發掘軟件中隱藏缺陷的過程中的確有著很好的效果,以英國的SHOLIS項目來看,這一項目使用形式化方法對軟件規約進行描述及證明,而且利用程序正確性證明方法對前期的很多缺陷進行排除,但是通過軟件測試卻依舊發現了整個過程15.175%的缺陷。
此外,隨著人們對軟件測試重要性的認識越來越深,其所在軟件開發周期中所占的比例也越來越高,當前很多軟件開發機構已經將其40%的研制力量投放到了軟件測試中,而對一些比較重要的軟件來說,其測試的費用往往會高達其他階段費用的3至5倍,由此可見,不管從哪個角度出發,軟件測試都是非常重要的。
3. 軟件測試分類
當前的軟件測試技術主要可以分為動態測試以及靜態測試,其中,靜態測試主要是指在不執行程序代碼的情況下找到程序中有可能存在的缺陷或者對程序代碼進行評估的過程中,廣義上看,靜態測試還包括軟件需求分析以及技術評審。
至于動態測試,則是通過抽樣測試數據對程序進行運行以起到檢查程序中存在的缺陷。在動態測試的過程中,其核心內容主要包括測試用例、運行正與以及對于程序運行結果進行驗證這3部分內容,此外還包括一些數據管理、文檔編制、操作規程等輔助方面的工作。
4. 軟件測試的對象
在軟件測試的過程中,不單單進行一些比較簡單的程序測試,也就是說僅對程序能否運行進行測試是遠遠不夠的。具體來看,軟件測試要貫穿在軟件定義以及開發的整個過程中,因此軟件測試的對象包括需求分析、系統設計、程序編碼以及各階段說明文檔。此外,因軟件開發過程中各個階段之間有著非常金敏的銜接,因此如果前一階段出現問題必然會對下一階段段的工作造成影響,所以為了確保每一個階段的正確性,我們要做好確認及驗證工作。
具體來看,確認主要是對需求規格以及程序進行確認,這既含有靜態確認,又有動態確認,其中靜態確認大多數是由人工進行分析,而動態確認則是利用動態分析以及程序測試對程序執行的情況進行檢查。至于驗證,則主要是采取一定手段對程序執行情況進行檢查,進而證明軟件各階段中的完備性、正確性以及邏輯協調性。舉例來說,我們驗證的對象包括測試用戶需求和系統分析員報告是否想和、設計說明書和測試需求說明書是否匹配等。
5. 軟件測試目的及原則
5.1 軟件測試目的
測試目前因立場的不同又可以分為兩種,從客戶角度來看,總是會希望通過測試來發現軟件中的缺陷及隱蔽錯誤。而從軟件開發者角度來看的話,則是希望產品少出現錯誤,對軟件已經符合客戶需求進行驗證,在這種思路下,測試人員會使用一些導致程序失效概率小的測試模塊進行測試,并對容易導致錯誤暴露的測試用例進行回避,而且對于有可能出現副作用的語句也并不會去刻意的檢查;诖,在程序中,還存在很多預料不到的問題,而這類問題往往要在一些比較特殊的環境之下才能夠表現出來。從以上分析我們可以看出,在對軟件進行測試的過程中還是要更多的站在用戶角度對問題進行考慮。
5.2 軟件測試原則
(1)“盡早和不斷的進行軟件測試”,只有時刻牢記這一原則才能夠降低軟件開發中由于工作多樣化、人員配置復雜化所帶來的不利影響。具體實踐的時候,我們首先要端正態度,對各階段技術審核要認真進行,另外,我們
還要將軟件測試貫徹到每一個環節中,進而早對錯誤進行發現和預防。
(2)測試用例選擇的過程中要有輸入數據和以及和輸入數據相對應的預期輸出結果,具體來看,在我們進行軟件測試的過程中要選擇比較適合程序段的測試用例,這些用例可以對程序員所編制的程序是否存在錯誤進行分析,而給出預期的輸出結果則可以對程序段是否存在錯誤進行更為快捷的判斷。
(3)要避免程序員對自己的程序進行測試,在軟件測試的過程中,冷靜的情緒以及客觀的態度是不可避免的,而人又很難對自己的勞動成果進行否定,因此在程序員對自己程序進行檢查的過程中會從主觀上出現偏差,導致測試結果不準確、不客觀。
(4)設計測試用例的過程中要注意使用不合理輸入套件,所謂不合理輸入條件主要包括輸入異常或者會導致異變的條件。在軟件正常使用的過程中,不合理輸入是不可避免的,輕則會導致運算錯誤,嚴重的時候甚至會使軟件失效。
(5)對測試工作中的群集現象進行注意,針對測試過程中錯誤較多的程序段,要對其進行詳細認真的檢查,這是因為從經驗上看,程序段中殘存的錯誤于已發現的錯誤往往會成正比。
(6)對測試要認真執行,這是指我們要做好一個詳細的規劃,具體來說,規劃主要包括:軟件功能、輸入、輸出以及每一功能測試的進度安排等。
(7)對測試計劃、用例、出錯統計以及分析報告等進行妥善的保管,進而為日后的軟件維護提供更為便捷的服務。
總體來看,在我們的工作中如果能夠把握住以上原則必然能夠對提升測試工作的效果起到很強促進作用。
6. 結語
在軟件開發工程中,軟件測試屬于一個重要的環節,一旦缺乏了這一環節,所開發出的產品必然難以滿足用戶的要求。本文關于軟件測試必要性的分析還存在很多不足之處,也希望各位測試人員能夠對其進行補充及指正,進而共同促進這方面研究水平的提升。
參考文獻:
[1]李嬌.自動測試平臺Aegis的研究與實現[D].電子科技大學,2012.
[2]王犇.CGSP網格服務自動化測試技術研究與實現[D].西北工業大學,2012.
[3]韓振斌.基于網格系統的自動化測試系統的研究與實現[D].西北工業大學,2011.
[4]徐崇浪.集群系統自動化測試技術研究及其工具開發[D].西北工業大學,2010
【論軟件工程內軟件測試的必要性】相關文章:
系統測試軟件工程求職簡歷模板10-06
軟件工程的實習報告范文軟件工程實踐03-20
試析軟件工程領域內組合數學的應用路徑論文10-08
軟件測試簡歷10-06
軟件工程報告03-20
軟件測試實習報告11-25
軟件測試的實習報告05-19
軟件測試學習總結11-23
軟件測試就業方向10-05