測試技術(shù)論文參考文獻(xiàn)
測試技術(shù)是測量產(chǎn)品質(zhì)量的一項重要技術(shù)。這是學(xué)習(xí)啦小編為大家整理的測試技術(shù)論文參考文獻(xiàn),僅供參考!
測試技術(shù)論文參考文獻(xiàn)篇一
淺析軟件測試技術(shù)現(xiàn)狀
摘 要:軟件測試被定義為是以評價一個程序或者系統(tǒng)屬性為目標(biāo)的任何一種活動,測試是對軟件質(zhì)量的度量。隨著測試工具盛行,Rick和Stefan在《系統(tǒng)的軟件測試》一書中對軟件測試做了進(jìn)一步詮釋:測試是為了度量和提高被測軟件的質(zhì)量,對測試軟件進(jìn)行工程設(shè)計、實施和維護(hù)的整個生命周期過程。本文就軟件測試的概念、必要性、測試方法和工具等方面作一簡單闡述。
關(guān)鍵詞:軟件測試;軟件測試技術(shù);自動化測試;測試工具
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A
The Status Quo of Software Testing Technology
LI Jing, GUO Xiao-lei
(Software Vocational and Technical College,Kaifeng University,Henan Kaifeng 475004)
Key words: software testing; software testing techniques;automated testin; testing tools
1 軟件測試概述與必要性
軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。問題在于應(yīng)該如何去避免錯誤的產(chǎn)生和消除已經(jīng)產(chǎn)生的錯誤,使程序中的錯誤密度達(dá)到盡可能低的程度。
隨著軟件規(guī)模的增大,軟件的復(fù)雜程度也越來越大,與其他系統(tǒng)的接口不斷增多應(yīng)用越來越廣泛,集成度越來越高,這使得沒有現(xiàn)代軟件開發(fā)經(jīng)驗的人很難理解它。為了盡可能地減少錯誤,軟件測試這一環(huán)節(jié)必須得到重視。
中國軟件外包市場巨大,國內(nèi)軟件外包服務(wù)多屬于為客戶提供技術(shù)和質(zhì)量服務(wù)的中間環(huán)節(jié)。以占中國軟件外包總量近85%的對日軟件外包來說,業(yè)務(wù)內(nèi)容基本都針對測試環(huán)節(jié)。這就要求我們加強(qiáng)對軟件測試的重視。
質(zhì)量不佳的軟件產(chǎn)品不僅會使開發(fā)商的維護(hù)費(fèi)用和用戶的使用成本大幅增加,還可能產(chǎn)生其他的責(zé)任風(fēng)險,在一些關(guān)鍵應(yīng)用,如民航訂票系統(tǒng)、銀行結(jié)算系統(tǒng)、證券交易系統(tǒng)等中使用質(zhì)量有問題的軟件,還可能造成災(zāi)難性的后果。這使得軟件測試環(huán)節(jié)顯得尤為重要。
2 軟件測試技術(shù)分析
2.1軟件測試的概念
軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一組測試數(shù)據(jù),并利用這些測試數(shù)據(jù)運(yùn)行程序,以發(fā)現(xiàn)程序錯誤的過程。根據(jù)測試數(shù)據(jù)設(shè)計方法,軟件測試可分為結(jié)構(gòu)測試和功能測試。在結(jié)構(gòu)測試過程中,測試者對程序的語句、分支和邏輯路徑進(jìn)行各種覆蓋測試,可以在不同點(diǎn)檢查程序的狀態(tài),以確定實際狀態(tài)與預(yù)期狀態(tài)是否一致。軟件測試的目的是發(fā)現(xiàn)錯誤,而不是確認(rèn)其正確性,而對已進(jìn)行的測試過程的程度進(jìn)行評估。
2.2軟件測試的目的
軟件測試的目的是為了保證軟件產(chǎn)品的最終質(zhì)量,在軟件開發(fā)的過程中,對軟件產(chǎn)品進(jìn)行質(zhì)量控制。一般來說軟件測試應(yīng)由獨(dú)立的產(chǎn)品評測中心負(fù)責(zé),嚴(yán)格按照軟件測試流程,制定測試計劃、測試方案、測試規(guī)范,實施測試,對測試記錄進(jìn)行分析,并根據(jù)回歸測試情況撰寫測試報告。測試是為了證明程序有錯,而不能保證程序沒有錯誤。
2.3軟件測試的方法和過程
軟件測試的種類可以分為人工測試和基于計算機(jī)的測試。而基于計算機(jī)的測試又可以分為白盒測試和黑盒測試。原則上講,軟件測試分為靜態(tài)測試和動態(tài)測試兩類。靜態(tài)測試包括代碼審查和靜態(tài)分析,動態(tài)測試包括白盒測試和黑盒測試。[2]
測試雖然是軟件生存周期的一個獨(dú)立階段,但測試工作卻滲透到從分析、設(shè)計直到編程的各個階段中,如測試計劃的編寫從分析和設(shè)計階段就開始了,而具體的測試工作隨編程工作的不斷深入也在進(jìn)行中。在實際工作中,測試環(huán)節(jié)可分為明顯的、同等重要的三個階段:即單元測試、集成測試(又稱構(gòu)件測試)和系統(tǒng)測試。
2.3.1單元測試
軟件單元定義了一個軟件很底層的塊,用PB開發(fā)的客戶機(jī)/服務(wù)器的軟件系統(tǒng)中,一個窗口、函數(shù)、菜單、報表或一個存儲過程都可以作為一個單元進(jìn)行測試。單元測試是測試的第一步。由開發(fā)者自己進(jìn)行測試最合適,一般采用白盒測試。
2.3.2集成測試
在將所有的單元經(jīng)過測試以后,接著進(jìn)行集成測試。集成測試也稱綜合測試,即將已分別通過測試的單元按要求組合起來再進(jìn)行的測試,以檢查這些單元之間的接口是否存在問題。要求參與的人熟悉單元的內(nèi)部細(xì)節(jié),又要求他們能夠從足夠高的層次上觀察整個系統(tǒng)。集成測試階段是以黑盒法為主,在自底向上集成的早期,白盒法測試占一定的比例,隨著集成測試的不斷深入,這種比例在測試過程中將越來越少,漸漸地,黑盒法測試占據(jù)主導(dǎo)地位。
2.3.3系統(tǒng)測試
系統(tǒng)測試是整個測試階段的最后一步,所有的開發(fā)和測試在這一點(diǎn)上集中表現(xiàn)為生成一個具有一定功能的軟件系統(tǒng)。該階段主要對系統(tǒng)的準(zhǔn)確性及完整性等方面進(jìn)行測試。主要進(jìn)行:功能確認(rèn)測試、運(yùn)行測試、強(qiáng)度測試、恢復(fù)測試、安全性測試等。系統(tǒng)測試的測試人員由測試組成員(或質(zhì)量保證人員)或測試組成員與用戶共同測試。在整個系統(tǒng)開發(fā)完成,即將交付用戶使用前進(jìn)行。在這一階段,完全采用黑盒法對整個系統(tǒng)進(jìn)行測試。
3 軟件測試方法與軟件測試工具
3.1軟件測試方法
軟件測試方法是軟件測試技術(shù)的一個重要的組成部分,引入自動化測試可以提高軟件質(zhì)量,節(jié)省經(jīng)費(fèi),縮短軟件產(chǎn)品的發(fā)布周期。軟件測試自動化就是通過測試工具或其他手段,按照測試工程師的預(yù)定計劃對軟件產(chǎn)品進(jìn)行自動的測試,它是軟件測試的一個重要組成部分,能夠完成許多手工無法完成或者難以實現(xiàn)的一些測試工作。[3]
3.2軟件測試工具
自動化測試工具可以減少測試工作量,提高測試工作效率。在實際應(yīng)用中,首先是能夠選擇一個合適的且滿足企業(yè)信息系統(tǒng)工程壞境的自動化測試工具,因為不同的測試工具,其面向的測試對象是不一樣的。按照測試工具的主要用途和應(yīng)用領(lǐng)域?qū)y試軟件做了一個整理歸納,將自動化測試工具分為以下幾類:
3.2.1捕獲錯誤用途
用于捕獲軟件錯誤或程序調(diào)試。常用的軟件:一個是開發(fā)人員自行編寫的測試工具;另一個是利用所使用的開發(fā)工具的調(diào)試功能或工具;最后就是購買專業(yè)的調(diào)試軟件。如:Compuware NuMega推出的一系列的調(diào)試軟件。
3.2.2一般用途
一般用途的測試工具在進(jìn)行測試時,可以適用大部分的軟件。如Sysinternals網(wǎng)站提供的一些免費(fèi)軟件。
3.2.3GUI自動化用途
這類軟件除了提供在窗口界面中使用外,也有不少是針對瀏覽器窗口開發(fā)的自動化測試工具。主要代表:Rational公司的Robot、Compuware的QARun等。
3.2.4專項用途
以專項用途為主的測試工具,就是某種專項測試的軟件。專用代碼測試工具:BoundsChecke、CodeReview、JCheck;白盒測試工具:Logiscope和PRQA、DevPartner、Rational Purify系列等;網(wǎng)絡(luò)測試工具:Network Associates提供的Network Sniffer。
3.2.5軟件產(chǎn)品功能、性能測試用途
IBM Rational系列包括多款測試產(chǎn)品,如功能測試工具IBM Rational Manual Tester、IBM Rational Functional Tester和IBM Rational Robot。如性能測試工具:手動測試工具IBM Rational Performance Tester和IBM Rational Robot。(Robot包括功能測試和性能測試)
3.2.6測試管理工具
一般而言,測試管理工具對測試需求、測試計劃、測試用例、測試實施進(jìn)行管理,并且測 試管理工具還包括對缺陷的跟蹤管理。測試管理工具能讓測試人員、開發(fā)人員或其他的IT人員 通過一個中央數(shù)據(jù)倉庫,在不同地方就能交互信息。主要代表:TestDirector MI的測試管理工具、TrackRecord、Bugzilla、QC(quick center)。
3.2.7測試輔助工具
這些工具本身并不執(zhí)行測試,例如它們可以生成測試數(shù)據(jù),為測試提供數(shù)據(jù)準(zhǔn)備。常用工具:SmartDraw、SDemo。
4 結(jié)束語
軟件測試是軟件工程的一個范疇。軟件測試是有計劃、有目的的工程性的活動。軟件測試是使用人工或者自動化的手段來運(yùn)行或測試某個系統(tǒng)的過程其目的在于檢驗是否滿足某種預(yù)期的結(jié)果。軟件測試目的是發(fā)現(xiàn)錯誤。一個好的測試用例是發(fā)現(xiàn)未發(fā)現(xiàn)的錯誤。一個經(jīng)過測試的軟件不能就說是完全正確的。軟件測試是保證軟件質(zhì)量的一個重要手段。因此,軟件測試應(yīng)該貫穿與軟件工程的始終。
參考文獻(xiàn):
[1]王水.軟件工程[M].鄭州:河南科學(xué)技術(shù)出版社,2008.
[2]趙瑞蓮.軟件測試[M].北京:高等教育出版社,2004.
[3]佟偉光.軟件測試技術(shù)[M].北京:人民郵電出版社,2005.
測試技術(shù)論文參考文獻(xiàn)篇二
軟件測試技術(shù)進(jìn)展研究
【摘 要】軟件測試技術(shù)是軟件開發(fā)與運(yùn)用過程中必不可少的手段,其重要性不可替代。論文從軟件測試的發(fā)展歷程、分析模型和測試技術(shù)等方面著手,分析其中的技術(shù)原理和作用機(jī)制,為軟件測試研究提供參考性建議。
【關(guān)鍵詞】軟件測試 歷程 模型 黑盒 白盒
一、引言
信息技術(shù)的發(fā)展對各行各業(yè)都帶來了巨大的影響,推動了產(chǎn)業(yè)的進(jìn)步,軟件作為其中重要的構(gòu)成部分,起著至關(guān)重要的作用,軟件的創(chuàng)新與更新速度逐步加快,無論是類型還是規(guī)模都是空前的,因而要保證軟件的實用性與穩(wěn)定性等指標(biāo),軟件測試技術(shù)能夠有效減少軟件故障,彌補(bǔ)缺陷,使軟件不斷得到完善。軟件的安全與可靠性被當(dāng)作軟件的命脈,其質(zhì)量受到廣泛的重視,隨著軟件測試技術(shù)的成熟,自動化與半自動化的測試對于軟件測試方法、故障模型等內(nèi)容形成了系統(tǒng)性的研究應(yīng)用,推動軟件產(chǎn)業(yè)取得了長足的進(jìn)步,軟件測試已經(jīng)成為了一門系統(tǒng)化的產(chǎn)業(yè)鏈,對軟件技術(shù)的貢獻(xiàn)有目共睹,而該行業(yè)的從業(yè)人員逐漸增加,研究得到進(jìn)一步拓展。筆者結(jié)合近年的工作經(jīng)驗,將從軟件的發(fā)展背景、故障模型和測試技術(shù)等方面進(jìn)行探討。
二、軟件測試技術(shù)的介紹
(一)軟件測試的發(fā)展
信息化進(jìn)程推動了軟件技術(shù)的快速發(fā)展,但同樣軟件系統(tǒng)中的設(shè)計缺陷也會造成許多故障,并且可能性比較高,遠(yuǎn)遠(yuǎn)超過了硬件技術(shù)所引發(fā)的故障,鑒于軟件技術(shù)開發(fā)當(dāng)中其質(zhì)量要求,研究人員提出了軟件測試技術(shù),來減少軟件運(yùn)行中的故障缺陷,提高軟件的穩(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)中細(xì)小的失誤都有可能造成災(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)過,而且造成的損失是非常巨大的。而這些失誤往往只是源于微小的細(xì)節(jié)方面的缺陷,因而,提前對軟件進(jìn)行測試,在運(yùn)行當(dāng)中今早發(fā)現(xiàn)錯誤,并針對性的修改,甚至有時必須推倒重來,對于保證軟件運(yùn)行的安全可靠都是十分有必要的,也符合軟件發(fā)展的實際需要,更好的服務(wù)于人類的社會生活,推進(jìn)社會的良好發(fā)展。
三、軟件故障
(一)軟件故障的分類
軟件故障的是不以人的意志為轉(zhuǎn)移的,但通過對其存在形式進(jì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)濟(jì)效益為評估方式的錯誤程度的分類方式,即將錯誤造成的損失分為具體的等級。軟件錯誤的分類具體要看實際應(yīng)用的需要,側(cè)重其中心需求,對測試過程中的軟件完善有很強(qiáng)的指導(dǎo)性作用。
(二)軟件的故障模型
軟件的故障模型是軟件測試的基本形式,在模型當(dāng)中,其與實際應(yīng)用中的故障有很大的相似度,可以對故障很好的模擬作用。雖然由于故障的復(fù)雜與多樣性,難以取得一種統(tǒng)一的故障模型,但實際應(yīng)用中的針對性的故障模型有多種,并且取得了良好的效果。目前的故障模型主要有單故障模型、系統(tǒng)崩潰的故障模型、覆蓋測試故障模型等幾種,其中覆蓋故障模型的應(yīng)用非常廣泛,包括分支覆蓋、路徑覆蓋、語句覆蓋、應(yīng)用覆蓋等形式,由于其復(fù)雜程度低、可操作性強(qiáng),成為了基本的軟件測試方法。除此之外,故障模型的相互結(jié)合的測試方式能夠彌補(bǔ)各種測試的不足,其相互之間的融合與改進(jìn)也是一種新的探索方向。
四、軟件測試技術(shù)
(一)白盒測試技術(shù)
白盒測試技術(shù)主要包含以下內(nèi)容:
1.程序路徑分析
一個程序中的路徑數(shù)量的規(guī)模非常龐大,依靠路徑覆蓋來達(dá)到完全性測量,但實際操作性的可能非常渺茫,而且實踐表明其效果也不理想。
2.分域測試
分域測試是將程序中的空間進(jìn)行劃分,將整體分成若干個測試單位,其中要注意在單位劃分時保證邊界不會出錯誤。或盡量減少錯誤的發(fā)生,重要的措施往往通過測試點(diǎn)的選取。
3.程序插裝和覆蓋測試
軟件程序中有許多內(nèi)容可以劃分,如分支、路徑、語句和數(shù)據(jù)等形式的劃分,白盒測試可以針對這些內(nèi)容進(jìn)行覆蓋。軟件中的編程主要有代碼和數(shù)據(jù)的集成,軟件成型之后,會有相應(yīng)的功能。操作者輸入指令或數(shù)據(jù)時,軟件會有對應(yīng)的相應(yīng),而輸入的數(shù)據(jù)所涵蓋的范圍可以稱作輸入域,通過程序插裝,當(dāng)輸入大量的信息之后,對響應(yīng)進(jìn)行收集,信息收集的過程即是對軟件測試運(yùn)行的監(jiān)控。
4.結(jié)構(gòu)測試數(shù)據(jù)生成
軟件的結(jié)構(gòu)測試包含多方面的內(nèi)容,主要有面向路徑、面向目標(biāo)和隨即測試幾種方法,在測試當(dāng)中利用生成的數(shù)據(jù),進(jìn)行分析,發(fā)現(xiàn)軟件運(yùn)行中可能出現(xiàn)的缺陷和不足。
(二)黑盒測試技術(shù)
軟件形成之后,根據(jù)其內(nèi)部的定義會有映射關(guān)系,即包含了輸入與輸出之間的函數(shù)關(guān)系,但如果要分析軟件內(nèi)部具體的結(jié)構(gòu),既耗費(fèi)時間,也有操作的困難,對分析人員的專業(yè)水平要求很高,而黑盒測試技術(shù)針對這一情況,在測試中避免了對內(nèi)部結(jié)構(gòu)的詳細(xì)分析,而是直接反映輸入與輸出之間的關(guān)系來評估軟件的可靠性與穩(wěn)定性,并可以驗證數(shù)據(jù)的正確性,黑盒測試技術(shù)主要包含以下幾方面的內(nèi)容: 1.組合測試
組合測試的實際應(yīng)用非常廣泛,其優(yōu)點(diǎn)是利用很少的測試用例但能夠取得良好的效果,極大的減少了測試耗費(fèi)的時間與精力,準(zhǔn)確性也能得到保證。所謂組合測試,即是利用兩兩聯(lián)合的覆蓋表的生成算法,實現(xiàn)對數(shù)據(jù)參數(shù)的缺陷發(fā)掘,其理論是以軟件故障的實際分布為根據(jù)的,據(jù)統(tǒng)計,軟件故障中由兩個參數(shù)引起的占總數(shù)的絕大部分,達(dá)到了70%左右,單個參數(shù)和三個或三個參數(shù)以上引起的故障都明顯低于前者,因此,組合測試技術(shù)有非?,F(xiàn)實的實用價值。
2.形式規(guī)格說明的測試
軟件測試當(dāng)中,要保證識別的精確性,避免語言、語義出現(xiàn)歧義性的認(rèn)識,可以對軟件形式提供規(guī)范的語言符號,并且具有業(yè)內(nèi)公認(rèn)的性質(zhì),這樣易于機(jī)器對軟件的程序或內(nèi)容進(jìn)行統(tǒng)一的處理,減少誤判或模糊的現(xiàn)象,通過軟件工具的應(yīng)用,提高機(jī)器的識別能力,進(jìn)而達(dá)到對形式規(guī)格的各種推理或證明,分析軟件中各種可能的故障缺陷。
3.統(tǒng)計測試
軟件測試當(dāng)中,不同的測試方法或輸入域所產(chǎn)生的結(jié)果會有很大的差異性,尤其是當(dāng)軟件的復(fù)雜性高、功能齊全、規(guī)模大的時候,測試往往難以覆蓋到所有的運(yùn)行可能,各種情況都有可能出現(xiàn),其出現(xiàn)的概率也有差異,所以,利用統(tǒng)計方法,對運(yùn)行結(jié)果進(jìn)行記錄分析,以便在測試當(dāng)中更能直觀的通過數(shù)據(jù)的分布來判斷其穩(wěn)定性與可靠性。
五、結(jié)束語
軟件技術(shù)是當(dāng)今社會發(fā)展的重要推動力量,融入到了各行各業(yè),其所引起的效應(yīng)也是不可估量的。但軟件的好壞,運(yùn)行的可靠性、穩(wěn)定性與安全性等指標(biāo)影響其效能的發(fā)揮,軟件測試技術(shù)是針對軟件形成過程中的故障研判、分析改進(jìn)的重要手段,在軟件研發(fā)過程中扮演著至關(guān)重要的角色,我國在推動信息化、科技化的發(fā)展當(dāng)中,對軟件技術(shù)的依賴愈發(fā)明顯,深入研究軟件測試技術(shù),探索新的內(nèi)容,對我國的產(chǎn)業(yè)結(jié)構(gòu)的升級具有非常深遠(yuǎn)的意義。
參考文獻(xiàn):
[1]齊治昌,譚慶平,寧洪.軟件工程[M].北京:高等教育出版社,2001.
[2]Weyuker EJ.Axiomatizing software test data adequacy.IEEETrans.on Software Engineering, 1986,12(12):1128-1138
[3]趙亮,王建民,軟件測試準(zhǔn)則的有效性度量研究[J].計算機(jī)研究與發(fā)展,2006,43(8):1457-1463
[4]虞翊,吳芳美.黑箱條件下的軟件測試充分性與揭錯能力分析[J].計算機(jī)工程,2001,27(6):74-76
[5]滿靖,閆健卓,王普,異構(gòu)數(shù)據(jù)庫信息整合系統(tǒng)的測試技術(shù)研究[J]. 微計算機(jī)信息. 2006(06)