本站小編為你精心準備了探微軟件測試在軟件工程的重要性參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
1關于軟件測試的認識
在軟件開發的每一個階段中,人員的參與都是離不開的部分,而人的工作以及人們之間的通信質量有很難做到完美無缺,這就導致了錯誤是不可避免的。另外,伴隨著計算機控制對象越來越復雜,且軟件的功能及規模也在不斷的提升,這也使得錯誤相對而言更容易發生,比如對于WindowsNT操作系統來說,其代碼約為3200萬行。總體來看,在軟件設計階段,人們所犯的錯位是引起軟件失效的主要原因,而軟件缺陷的根源則在于軟件的復雜性。在確保軟件可靠性以及質量的過程中,軟件測試屬于最為主要的手段,以當前的軟件工程來看,多以結構化分析及設計作為核心,因此在開發階段,需求分析以及設計都是以工程管理以及技術評審作為質量的保障手段,而工程管理以及技術評審又存在著主觀上的缺陷,很容易遺漏錯誤使其延續至開發階段。客觀來說,軟件測試在發掘軟件中隱藏缺陷的過程中的確有著很好的效果,以英國的SHOLIS項目來看,這一項目使用形式化方法對軟件規約進行描述及證明,而且利用程序正確性證明方法對前期的很多缺陷進行排除,但是通過軟件測試卻依舊發現了整個過程15.175%的缺陷。此外,隨著人們對軟件測試重要性的認識越來越深,其所在軟件開發周期中所占的比例也越來越高,當前很多軟件開發機構已經將其40%的研制力量投放到了軟件測試中,而對一些比較重要的軟件來說,其測試的費用往往會高達其他階段費用的3至5倍,由此可見,不管從哪個角度出發,軟件測試都是非常重要的。
2軟件測試分類
當前的軟件測試技術主要可以分為動態測試以及靜態測試,其中,靜態測試主要是指在不執行程序代碼的情況下找到程序中有可能存在的缺陷或者對程序代碼進行評估的過程中,廣義上看,靜態測試還包括軟件需求分析以及技術評審。至于動態測試,則是通過抽樣測試數據對程序進行運行以起到檢查程序中存在的缺陷。在動態測試的過程中,其核心內容主要包括測試用例、運行正與以及對于程序運行結果進行驗證這3部分內容,此外還包括一些數據管理、文檔編制、操作規程等輔助方面的工作。
3軟件測試的對象
在軟件測試的過程中,不單單進行一些比較簡單的程序測試,也就是說僅對程序能否運行進行測試是遠遠不夠的。具體來看,軟件測試要貫穿在軟件定義以及開發的整個過程中,因此軟件測試的對象包括需求分析、系統設計、程序編碼以及各階段說明文檔。此外,因軟件開發過程中各個階段之間有著非常金敏的銜接,因此如果前一階段出現問題必然會對下一階段段的工作造成影響,所以為了確保每一個階段的正確性,我們要做好確認及驗證工作。具體來看,確認主要是對需求規格以及程序進行確認,這既含有靜態確認,又有動態確認,其中靜態確認大多數是由人工進行分析,而動態確認則是利用動態分析以及程序測試對程序執行的情況進行檢查。至于驗證,則主要是采取一定手段對程序執行情況進行檢查,進而證明軟件各階段中的完備性、正確性以及邏輯協調性。舉例來說,我們驗證的對象包括測試用戶需求和系統分析員報告是否想和、設計說明書和測試需求說明書是否匹配等。
4軟件測試目的及原則
4.1軟件測試目的
測試目前因立場的不同又可以分為兩種,從客戶角度來看,總是會希望通過測試來發現軟件中的缺陷及隱蔽錯誤。而從軟件開發者角度來看的話,則是希望產品少出現錯誤,對軟件已經符合客戶需求進行驗證,在這種思路下,測試人員會使用一些導致程序失效概率小的測試模塊進行測試,并對容易導致錯誤暴露的測試用例進行回避,而且對于有可能出現副作用的語句也并不會去刻意的檢查。基于此,在程序中,還存在很多預料不到的問題,而這類問題往往要在一些比較特殊的環境之下才能夠表現出來。從以上分析我們可以看出,在對軟件進行測試的過程中還是要更多的站在用戶角度對問題進行考慮。
4.2軟件測試原則
(1)“盡早和不斷的進行軟件測試”,只有時刻牢記這一原則才能夠降低軟件開發中由于工作多樣化、人員配置復雜化所帶來的不利影響。具體實踐的時候,我們首先要端正態度,對各階段技術審核要認真進行,另外,我們還要將軟件測試貫徹到每一個環節中,進而早對錯誤進行發現和預防。
(2)測試用例選擇的過程中要有輸入數據和以及和輸入數據相對應的預期輸出結果,具體來看,在我們進行軟件測試的過程中要選擇比較適合程序段的測試用例,這些用例可以對程序員所編制的程序是否存在錯誤進行分析,而給出預期的輸出結果則可以對程序段是否存在錯誤進行更為快捷的判斷。
(3)要避免程序員對自己的程序進行測試,在軟件測試的過程中,冷靜的情緒以及客觀的態度是不可避免的,而人又很難對自己的勞動成果進行否定,因此在程序員對自己程序進行檢查的過程中會從主觀上出現偏差,導致測試結果不準確、不客觀。
(4)設計測試用例的過程中要注意使用不合理輸入套件,所謂不合理輸入條件主要包括輸入異常或者會導致異變的條件。在軟件正常使用的過程中,不合理輸入是不可避免的,輕則會導致運算錯誤,嚴重的時候甚至會使軟件失效。
(5)對測試工作中的群集現象進行注意,針對測試過程中錯誤較多的程序段,要對其進行詳細認真的檢查,這是因為從經驗上看,程序段中殘存的錯誤于已發現的錯誤往往會成正比。
(6)對測試要認真執行,這是指我們要做好一個詳細的規劃,具體來說,規劃主要包括:軟件功能、輸入、輸出以及每一功能測試的進度安排等。
(7)對測試計劃、用例、出錯統計以及分析報告等進行妥善的保管,進而為日后的軟件維護提供更為便捷的服務。總體來看,在我們的工作中如果能夠把握住以上原則必然能夠對提升測試工作的效果起到很強促進作用。
5結語
在軟件開發工程中,軟件測試屬于一個重要的環節,一旦缺乏了這一環節,所開發出的產品必然難以滿足用戶的要求。本文關于軟件測試必要性的分析還存在很多不足之處,也希望各位測試人員能夠對其進行補充及指正,進而共同促進這方面研究水平的提升。
作者:樓煒單位:同濟大學軟件學院