軟件測試技術論文(2)
軟件測試技術論文
軟件測試技術論文篇二
軟件測試技術進展研究
【摘 要】軟件測試技術是軟件開發(fā)與運用過程中必不可少的手段,其重要性不可替代。論文從軟件測試的發(fā)展歷程、分析模型和測試技術等方面著手,分析其中的技術原理和作用機制,為軟件測試研究提供參考性建議。
【關鍵詞】軟件測試 歷程 模型 黑盒 白盒
一、引言
信息技術的發(fā)展對各行各業(yè)都帶來了巨大的影響,推動了產業(yè)的進步,軟件作為其中重要的構成部分,起著至關重要的作用,軟件的創(chuàng)新與更新速度逐步加快,無論是類型還是規(guī)模都是空前的,因而要保證軟件的實用性與穩(wěn)定性等指標,軟件測試技術能夠有效減少軟件故障,彌補缺陷,使軟件不斷得到完善。軟件的安全與可靠性被當作軟件的命脈,其質量受到廣泛的重視,隨著軟件測試技術的成熟,自動化與半自動化的測試對于軟件測試方法、故障模型等內容形成了系統性的研究應用,推動軟件產業(yè)取得了長足的進步,軟件測試已經成為了一門系統化的產業(yè)鏈,對軟件技術的貢獻有目共睹,而該行業(yè)的從業(yè)人員逐漸增加,研究得到進一步拓展。筆者結合近年的工作經驗,將從軟件的發(fā)展背景、故障模型和測試技術等方面進行探討。
二、軟件測試技術的介紹
(一)軟件測試的發(fā)展
信息化進程推動了軟件技術的快速發(fā)展,但同樣軟件系統中的設計缺陷也會造成許多故障,并且可能性比較高,遠遠超過了硬件技術所引發(fā)的故障,鑒于軟件技術開發(fā)當中其質量要求,研究人員提出了軟件測試技術,來減少軟件運行中的故障缺陷,提高軟件的穩(wěn)定性與可靠性。早期的軟件測試技術的內容僅僅是局限在程序調試方面,但到了上世紀70年代,軟件測試被引入了軟件設計的生命周期中來,成為軟件技術當中不可或缺的一部分,影響軟件的實際應用。并隨著測試技術逐漸成熟,軟件測試已成為一門系統性的學科,形成了注入面向對象測試、模型過程測試、面向目標測試等多種分支,并且新的方法一直在探索當中,學科內的知識更新也非常迅速,推動者軟件測試技術的向前發(fā)展。
(二)軟件缺陷的危害
軟件設計當中細小的失誤都有可能造成災難性的危害,由于軟件技術已經融入了幾乎所有的行業(yè),特別是對社會影響重大的領域中,如醫(yī)療、軍事、航空等關鍵領域中,軟件的故障很容易導致操作失敗,如醫(yī)療當中儀器的誤操作對患者的生命健康產生危害,航天探測器語言成語的錯漏導致發(fā)射失敗、導彈試射錯誤程序導致飛行軌跡發(fā)生偏離等情況在以往都出現過,而且造成的損失是非常巨大的。而這些失誤往往只是源于微小的細節(jié)方面的缺陷,因而,提前對軟件進行測試,在運行當中今早發(fā)現錯誤,并針對性的修改,甚至有時必須推倒重來,對于保證軟件運行的安全可靠都是十分有必要的,也符合軟件發(fā)展的實際需要,更好的服務于人類的社會生活,推進社會的良好發(fā)展。
三、軟件故障
(一)軟件故障的分類
軟件故障的是不以人的意志為轉移的,但通過對其存在形式進行分類,提出針對性的測試改良方法能起到立竿見影的效果。軟件的分類有多種形式,如故障的性質分類、軟件開發(fā)過程錯誤、故障形成的原因等。軟件開發(fā)的過程錯誤主要包含需求分析錯誤、設計錯誤、編碼錯誤和測試錯誤等內容;故障性質主要包含功能性的分析和開發(fā)錯誤、數據錯誤、結構錯誤、系統結構錯誤、程序編譯錯誤等內容;故障原因主要包含程序語法、語義錯誤、文檔錯誤、函數錯誤和測試錯誤等內容。此外,還有根據軟件規(guī)模與質量的重要性,以經濟效益為評估方式的錯誤程度的分類方式,即將錯誤造成的損失分為具體的等級。軟件錯誤的分類具體要看實際應用的需要,側重其中心需求,對測試過程中的軟件完善有很強的指導性作用。
(二)軟件的故障模型
軟件的故障模型是軟件測試的基本形式,在模型當中,其與實際應用中的故障有很大的相似度,可以對故障很好的模擬作用。雖然由于故障的復雜與多樣性,難以取得一種統一的故障模型,但實際應用中的針對性的故障模型有多種,并且取得了良好的效果。目前的故障模型主要有單故障模型、系統崩潰的故障模型、覆蓋測試故障模型等幾種,其中覆蓋故障模型的應用非常廣泛,包括分支覆蓋、路徑覆蓋、語句覆蓋、應用覆蓋等形式,由于其復雜程度低、可操作性強,成為了基本的軟件測試方法。除此之外,故障模型的相互結合的測試方式能夠彌補各種測試的不足,其相互之間的融合與改進也是一種新的探索方向。
四、軟件測試技術
(一)白盒測試技術
白盒測試技術主要包含以下內容:
1.程序路徑分析
一個程序中的路徑數量的規(guī)模非常龐大,依靠路徑覆蓋來達到完全性測量,但實際操作性的可能非常渺茫,而且實踐表明其效果也不理想。
2.分域測試
分域測試是將程序中的空間進行劃分,將整體分成若干個測試單位,其中要注意在單位劃分時保證邊界不會出錯誤?;虮M量減少錯誤的發(fā)生,重要的措施往往通過測試點的選取。
3.程序插裝和覆蓋測試
軟件程序中有許多內容可以劃分,如分支、路徑、語句和數據等形式的劃分,白盒測試可以針對這些內容進行覆蓋。軟件中的編程主要有代碼和數據的集成,軟件成型之后,會有相應的功能。操作者輸入指令或數據時,軟件會有對應的相應,而輸入的數據所涵蓋的范圍可以稱作輸入域,通過程序插裝,當輸入大量的信息之后,對響應進行收集,信息收集的過程即是對軟件測試運行的監(jiān)控。
4.結構測試數據生成
軟件的結構測試包含多方面的內容,主要有面向路徑、面向目標和隨即測試幾種方法,在測試當中利用生成的數據,進行分析,發(fā)現軟件運行中可能出現的缺陷和不足。
(二)黑盒測試技術
軟件形成之后,根據其內部的定義會有映射關系,即包含了輸入與輸出之間的函數關系,但如果要分析軟件內部具體的結構,既耗費時間,也有操作的困難,對分析人員的專業(yè)水平要求很高,而黑盒測試技術針對這一情況,在測試中避免了對內部結構的詳細分析,而是直接反映輸入與輸出之間的關系來評估軟件的可靠性與穩(wěn)定性,并可以驗證數據的正確性,黑盒測試技術主要包含以下幾方面的內容: 1.組合測試
組合測試的實際應用非常廣泛,其優(yōu)點是利用很少的測試用例但能夠取得良好的效果,極大的減少了測試耗費的時間與精力,準確性也能得到保證。所謂組合測試,即是利用兩兩聯合的覆蓋表的生成算法,實現對數據參數的缺陷發(fā)掘,其理論是以軟件故障的實際分布為根據的,據統計,軟件故障中由兩個參數引起的占總數的絕大部分,達到了70%左右,單個參數和三個或三個參數以上引起的故障都明顯低于前者,因此,組合測試技術有非?,F實的實用價值。
2.形式規(guī)格說明的測試
軟件測試當中,要保證識別的精確性,避免語言、語義出現歧義性的認識,可以對軟件形式提供規(guī)范的語言符號,并且具有業(yè)內公認的性質,這樣易于機器對軟件的程序或內容進行統一的處理,減少誤判或模糊的現象,通過軟件工具的應用,提高機器的識別能力,進而達到對形式規(guī)格的各種推理或證明,分析軟件中各種可能的故障缺陷。
3.統計測試
軟件測試當中,不同的測試方法或輸入域所產生的結果會有很大的差異性,尤其是當軟件的復雜性高、功能齊全、規(guī)模大的時候,測試往往難以覆蓋到所有的運行可能,各種情況都有可能出現,其出現的概率也有差異,所以,利用統計方法,對運行結果進行記錄分析,以便在測試當中更能直觀的通過數據的分布來判斷其穩(wěn)定性與可靠性。
五、結束語
軟件技術是當今社會發(fā)展的重要推動力量,融入到了各行各業(yè),其所引起的效應也是不可估量的。但軟件的好壞,運行的可靠性、穩(wěn)定性與安全性等指標影響其效能的發(fā)揮,軟件測試技術是針對軟件形成過程中的故障研判、分析改進的重要手段,在軟件研發(fā)過程中扮演著至關重要的角色,我國在推動信息化、科技化的發(fā)展當中,對軟件技術的依賴愈發(fā)明顯,深入研究軟件測試技術,探索新的內容,對我國的產業(yè)結構的升級具有非常深遠的意義。
參考文獻:
[1]齊治昌,譚慶平,寧洪.軟件工程[M].北京:高等教育出版社,2001.
[2]Weyuker EJ.Axiomatizing software test data adequacy.IEEETrans.on Software Engineering, 1986,12(12):1128-1138
[3]趙亮,王建民,軟件測試準則的有效性度量研究[J].計算機研究與發(fā)展,2006,43(8):1457-1463
[4]虞翊,吳芳美.黑箱條件下的軟件測試充分性與揭錯能力分析[J].計算機工程,2001,27(6):74-76
[5]滿靖,閆健卓,王普,異構數據庫信息整合系統的測試技術研究[J]. 微計算機信息. 2006(06)
看了“軟件測試技術論文”的人還看:
1.測試技術論文