共找到7條詞條名為軟體測試的結果 展開
- 實際輸出與預期輸出間的比較過程
- 機械工業出版社2002年出版圖書
- 周元哲主編書籍
- 韓利凱、高寅生、袁溪編著書籍
- 機械工業出版社2006年出版圖書
- 曹薇主編書籍
- 第2版
軟體測試
實際輸出與預期輸出間的比較過程
軟體測試(英語:Software Testing),描述一種用來促進鑒定軟體的正確性、完整性、安全性和質量的過程。換句話說,軟體測試是一種實際輸出與預期輸出之間的審核或者比較過程。
軟體測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程。
軟體測試是伴隨著軟體的產生而產生的。早期的軟體開發過程中軟體規模都很小、複雜程度低,軟體開發的過程混亂無序、相當隨意,測試的含義比較狹窄,開發人員將測試等同於“調試”,目的是糾正軟體中已經知道的故障,常常由開發人員自己完成這部分的工作。對測試的投入極少,測試介入也晚,常常是等到形成代碼,產品已經基本完成時才進行測試。到了上世紀80年代初期,軟體和IT行業進入了大發展,軟體趨向大型化、高複雜度,軟體的質量越來越重要。這個時候,一些軟體測試的基礎理論和實用技術開始形成,並且人們開始為軟體開發設計了各種流程和管理方法,軟體開發的方式也逐漸由混亂無序的開發過程過渡到結構化的開發過程,以結構化分析與設計、結構化評審、結構化程序設計以及結構化測試為特徵。人們還將“質量”的概念融入其中,軟體測試定義發生了改變,測試不單純是一個發現錯誤的過程,而且將測試作為軟體質量保證(SQA)的主要職能,包含軟體質量評價的內容,Bill Hetzel在《軟體測試完全指南》(Complete Guide of Software Testing)一書中指出:“測試是以評價一個程序或者系統屬性為目標的任何一種活動。測試是對軟體質量的度量。”這個定義至今仍被引用。軟體開發人員和測試人員開始坐在一起探討軟體工程和測試問題。
軟體測試已有了行業標準(IEEE/ANSI ),1983年IEEE提出的軟體工程術語中給軟體測試下的定義是:“使用人工或自動的手段來運行或測定某個軟體系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別”。這個定義明確指出:軟體測試的目的是為了檢驗軟體系統是否滿足需求。它再也不是一個一次性的,而且只是開發後期的活動,而是與整個開發流程融合成一體。軟體測試已成為一個專業,需要運用專門的方法和手段,需要專門人才和專家來承擔。
對計算機軟體進行測試前,首先需遵循軟體測試原則,即不完全原則的遵守。不完全原則即為若測試不完全、測試過程中涉及免疫性原則的部分較多,可對軟體測試起到一定幫助。因軟體測試因此類因素具有一定程度的免疫性,測試人員能夠完成的測試內容與其免疫性成正比,若想使軟體測試更為流暢、測試效果更為有效,首先需遵循此類原則,將此類原則貫穿整個開發流程,不斷進行測試,而並非一次性全程測試。
1、靜態測試方法
靜態測試方式指軟體代碼的靜態分析測驗,此類過程中應用數據較少,主要過程為通過軟體的靜態性測試(即人工推斷或計算機輔助測試)測試程序中運算方式、演演算法的正確性,進而完成測試過程,此類測試的優點在於能夠消耗較短時間、較少資源完成對軟體、軟體代碼的測試,能夠較為明顯地發現此類代碼中出現的錯誤。靜態測試方法適用範圍較大,尤其適用於較大型的軟體測試。
2、動態測試
計算機動態測試的主要目的為檢測軟體運行中出現的問題,較靜態測試方式相比,其被稱為動態的原因即為其測試方式主要依賴程序的運用,主要為檢測軟體中動態行為是否缺失、軟體運行效果是否良好。其最為明顯的特徵即為進行動態測試時軟體為運轉狀態,只有如此才能於使用過程中發現軟體缺陷,進而對此類缺陷進行修復。目前動態測試過程中可包括兩類因素,即被測試軟體與測試中所需數據,兩類因素決定動態測試正確展開、有效展開。
3、黑盒測試
黑盒測試,顧名思義即為將軟體測試環境模擬為不可見的“黑盒”。通過數據輸入觀察數據輸出,檢查軟體內部功能是否正常。測試展開時,數據輸入軟體中,等待數據輸出。數據輸出時若與預計數據一致,則證明該軟體通過測試,若數據與預計數據有出入,即便出入較小亦證明軟體程序內部出現問題,需儘快解決。
4、白盒測試
白盒測試相對於黑盒測試而言具有一定透明性,原理為根據軟體內部應用、源代碼等對產品內部工作過程進行調試。測試過程中常將其與軟體內部結構協同展開分析,最大優點即為其能夠有效解決軟體內部應用程序出現的問題,測試過程中常將其與黑盒測試方式結合,當測試軟體功能較多時,白盒測試法亦可對此類情況展開有效調試。其中,判定測試作為白盒測試法中最為主要的測試程序結構之一,此類程序結構作為對程序邏輯結構的整體實現,對於程序測試而言具有較為重要的作用。此類測試方式針對程序中各類型的代碼進行覆蓋式檢測,覆蓋範圍較廣,適用於多類型程序。實際檢測中,白盒測試法常與黑盒檢測法並用,以動態檢測方式中測試出的未知錯誤為例,首先使用黑盒檢測法,若程序輸入數據與輸出數據相同,則證明內部數據未出現問題,應從代碼方面進行分析,若出現問題則使用白盒測試法,針對軟體內部結構進行分析,直至檢測出問題所在,及時加以修改。
1、單元測試
單元測試即為將整個軟體分解為各個單元,隨後對單元進行測試。此類測試策略的優點在於所需分析數據較少,且針對性較強,程序開發者於開發過程中可通過操作經驗明確出現問題的大致區域,隨後針對此類問題對相關單元展開分析,進行問題排查。但需注意的是,某些程序中無具體單元驅動程序,即單個單元無法有效驅動,易出現問題,若針對此類軟體展開測試,需重點注意此類分解單元。
2、集成測試
集成測試與單元測試相反,原理為將部分需測試部分作為整體進行集成,隨後針對此類集成部分進行測試。測試要求為此類被測試集成題應具有一定的結構,且屬於非漸增方式集成。對於較大軟體而言,集成測試方式較單元測試方式而言較為繁瑣,目前多數大型軟體的測試皆採取漸增方式進行測試。漸增測試方式為集成測試方式的衍生,其能夠按照不同次序對軟體進行測試,日常測試中,常將兩類方式進行集成測試,隨後按照次序展開選擇。
軟體測試
所以軟體測試是由於軟體開發編程行業高度成熟后所形成的產物。從行業的整體成熟度來講,軟體開發行業的整體成熟度更高,人們對軟體開發的理解也更為全面深入。故此通常將軟體測試和軟體開發放在一起做比較。縱然二者都屬於產品研發但通常人們的關注點有所傾斜。所以經常用軟體開發設計工程師的要求來評價軟體測試工程師,僅看到軟體測試和軟體開發相比的弱勢卻看不到優勢。
從整體行業背景看,一方面,在中國的很多軟體企業存在著重開發、輕測試的現象,造成日後的軟體產品的質量問題頻出,亟待解決;另一方面市場上的軟體測試人員偏少,崗位缺口較大,不少企業以開發暫代測試,以作急用。目前軟體測試人才的缺口在30萬人以上。
從個人職業發展看,軟體測試人才更強調崗位的經驗積累。從業者在擁有幾年的測試經驗背景后,可以逐步轉向管理或者資深測試工程師,擔當測試經理或者部門主管,所以職業壽命更長。另外,由於國內軟體測試工程師人才奇缺,並且一般只有大中型企業才會單獨設立軟體測試部門,所以很有保障,待遇普遍較高。
綜合以上分析來看,軟體測試行業前景廣闊。