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