測試技術(shù)論文
軟件測試技術(shù)是軟件工程范疇的一項重要工作,與軟件質(zhì)量密切相關(guān)。這是學(xué)習(xí)啦小編為大家整理的測試技術(shù)論文,僅供參考!
測試技術(shù)論文篇一
軟件測試技術(shù)綜述
【關(guān)鍵詞】軟件測試技術(shù) 軟件工程 軟件質(zhì)量
眾所周知,由于通用計算機或芯片在各種系統(tǒng)中的廣泛使用,在工程中系統(tǒng)實現(xiàn)各種功能都離不開軟件來實現(xiàn)應(yīng)用功能,因而軟件重要性越來越顯突出,隨著軟件工程的發(fā)展,目前軟件的規(guī)模也逐漸越來越大,軟件的質(zhì)量已成為決定各種工程或武器系統(tǒng)的質(zhì)量乃至成敗的最重要因素之一。因此有必要更加重視軟件的質(zhì)量問題。而軟件測試作為軟件工程的一項重要組成部分也越來越受到重視。
1 對軟件測試的定義
在這里我們只討論狹義上的軟件測試。軟件測試是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明和編碼實現(xiàn)的最終審查。通常對軟件測試的定義有兩種描述:
定義1:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
定義2:軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計的一批測試用例,并利用這些測試用例運行程序以及發(fā)現(xiàn)錯誤的過程,即執(zhí)行測試步驟。
2 軟件測試流程和策略
2.1 軟件測試流程
軟件測試的流程可以細分為四個階段:單元測試,集成測試,確認測試(有效性測A試)和系統(tǒng)測試。單元測試針對軟件設(shè)計的最小單元A程序模塊,進行正確性檢驗的測試工作。它的目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。集成測試在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成為系統(tǒng)進行測試。確認測試(有效性測試)驗證軟件的功能、性能和其它特性是否與用戶的要求一致。系統(tǒng)測試將測試的軟件作為整個計算機系統(tǒng)的一個元素與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行組裝測試和確認測試。
2.2 軟件測試的策略和技術(shù)
軟件測試的策略就是測試將按照什么樣的思路和方式進行。如采用什么技術(shù),什么步驟等。而軟件測試技術(shù)可以按照以下幾種方式來進行分類:
(1)黑盒(功能性)測試和白盒(結(jié)構(gòu)性)測試。
(2)靜態(tài)測試和動態(tài)測試。
(3)傳統(tǒng)測試方法和面向?qū)ο鬁y試的方法。
(4)特定環(huán)境及應(yīng)用的測試。
2.2.1 黑盒測試和白盒測試
(1)黑盒測試。黑盒測試又稱功能性測試、數(shù)據(jù)驅(qū)動測試、基于規(guī)格說明的測試。它 在已知軟件所應(yīng)具有的功能的基礎(chǔ)上,檢查程序功能能否按需求規(guī)格說明書的規(guī)定正常使用,功能是否有遺漏,性能等特性要求是否滿足。在進行黑盒測試時只需參照規(guī)格說明檢查軟件,不要求考察代碼,從用戶視角來對軟件進行測試。黑盒測試的目的在于檢測軟件功能是否正確和完整,檢測是否有人機交互和數(shù)據(jù)訪問錯誤,檢測軟件行為和性能是否滿足需求以及檢測軟件初始化和終止過程是否有錯誤。
黑盒測試要遵循以下的步驟:首先需要先根據(jù)規(guī)格說明書來生成測試用例,然后執(zhí)行測試并分析覆蓋標(biāo)準,最后再根據(jù)所得結(jié)果來作出結(jié)論。
(2)白盒測試。白盒測試又被成為結(jié)構(gòu)性測試、邏輯驅(qū)動測試、基于程序的測試。它的與黑盒測試的區(qū)別在于我們在進行白盒測試的時候會將程序的執(zhí)行表現(xiàn)與編碼意圖作比較,并且關(guān)心軟件內(nèi)部設(shè)計和程序?qū)崿F(xiàn),而主要測試依據(jù)是代碼和設(shè)計文檔,這就能夠支持嚴格定義、數(shù)學(xué)分析和精確度量,從而更加準確的來評價一個軟件。
2.2.2 靜態(tài)測試和動態(tài)測試
(1)靜態(tài)測試。靜態(tài)測試廣義上包括了人工代碼檢查,軟件度量,程序結(jié)構(gòu)分析(自動審查)和自動編程規(guī)則檢查這些內(nèi)容。
(2)動態(tài)測試。動態(tài)測試包括覆蓋測試分析和運行時的錯誤檢測。
2.2.3 路徑測試
路徑測試是指根據(jù)路徑設(shè)計測試用例的一種技術(shù),經(jīng)常用于狀態(tài)轉(zhuǎn)換測試中?;韭窂綔y試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。
2.2.4數(shù)據(jù)流測試
前面的測試針對程序的控制流路徑,檢查程序在各種條件值、各種決策下是否有錯。數(shù)據(jù)流測試主要測試程序中的數(shù)值流(覆蓋值傳遞路徑),檢測變量定義與使用的情況。它比較容易發(fā)現(xiàn)下列類型的錯誤:變量被定義,但是從來沒有使用;所使用的變量沒有被定義;變量在使用之前被定義兩次;其它定義不當(dāng)或使用不當(dāng)?shù)那闆r。
2.2.5 面向?qū)ο筌浖y試
面向?qū)ο蠹夹g(shù)開發(fā)出的程序更需要測試且對其進行測試將更復(fù)雜。面向?qū)ο筌浖c傳統(tǒng)的軟件存在不同的軟件結(jié)構(gòu),不同的開發(fā)方法且每個開發(fā)階段都有不同以往的要求和結(jié)果,針對面向?qū)ο筌浖男绿攸c,應(yīng)有一種新的測試模型
3 結(jié)論
軟件測試是一項非常重要的工作。有些觀點認為測試是極簡單的工作,誰都能進行軟件測試,還認為軟件測試技術(shù)要求不高,比編程容易多了,測試就是把數(shù)據(jù)輸進程序,看結(jié)果對不對,甚至認為測試是就體力活而已。這些觀點其實都是不正確的。軟件測試是一項非常需要智慧,耐心,協(xié)調(diào)以及溝通能力的一項工作,它包涵的內(nèi)容不光有深層次的技術(shù)性問題,也有管理方面的問題。如何才能做好軟件測試,光有技術(shù)上的水平仍然是不夠的,還必須要有好的團隊合作和細致的工作能力和態(tài)度。
軟件測試雖然能夠發(fā)現(xiàn)軟件中的問題,但是它并不能證明軟件中已經(jīng)不存在其它的問題了,因此要提高軟件的質(zhì)量,光靠軟件測試也還是不夠的,還需要全面的履行和落實軟件的質(zhì)量控制,這樣才能最大限度的減少軟件問題所引起的損失。
參考文獻
[1]徐世波.張健關(guān)于軟件質(zhì)量保證模型的研究[J].數(shù)字技術(shù)與應(yīng)用,2010(09).
[2]張瑤.白曉穎.張任偉.陸?zhàn)┮环N基于模型的測試充分性評估方法[J].計算機科學(xué),2013(02).
[3]徐冰霖.李戰(zhàn)懷基于數(shù)據(jù)操作的航天測控軟件測試復(fù)用模型[J].飛行器測控學(xué)報,2012(02).
作者單位
南京市玄武中等專業(yè)學(xué)校 江蘇省南京市 210042
測試技術(shù)論文篇二
軟件測試技術(shù)研究
摘 要:軟件測試是軟件工程范疇的一項重要工作,與軟件質(zhì)量密切相關(guān)。本文就軟件測試的概念、分類和方法等幾個方面進行了論述。
關(guān)鍵詞:軟件測試;黑盒測試;白盒測試
中圖分類號:TP311.52
軟件測試是軟件生產(chǎn)過程中的一個重要環(huán)節(jié),是伴隨著軟件的產(chǎn)生而發(fā)展的,它并不是不能正常運行的軟件的專利,而是為了發(fā)現(xiàn)所有軟件缺陷而執(zhí)行程序的過程。軟件測試貫穿于軟件開發(fā)的到投入使用的各個過程中,不同階段的測試手段各不相同,測試成為軟件產(chǎn)品質(zhì)量控制和管理的重要手段之一。大量資料表明,軟件測試的工作量占軟件開發(fā)總工作量的40%以上,測試成本也占總成本的30%―50%。
1 軟件測試的目標(biāo)和重要性
1.1 軟件測試的定義
看待軟件測試的角度不同,軟件測試的定義也各不相同。總的說來,軟件測試就是利用測試工具按照預(yù)先設(shè)定好的方案和流程對產(chǎn)品進行功能和性能測試,甚至根據(jù)需要重新編寫測試代碼,對測試過程中可能出現(xiàn)的問題進行分析和評估。它是幫助識別開發(fā)完成的計算機軟件的正確度、完全度和質(zhì)量的軟件過程,是保證軟件質(zhì)量的重要內(nèi)容。
1.2 軟件測試的目標(biāo)
軟件測試的正確定義是“為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程”。而測試的目的決定了如何去組織測試。測試的目標(biāo)是什么?G.Myers曾給出了關(guān)于測試的一些規(guī)則,這些規(guī)則可以看作是軟件測試的目標(biāo):
(1)軟件測試并不是為了驗證軟件的正確性,而是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。(2)好的測試方案是盡可能發(fā)現(xiàn)目前尚未發(fā)現(xiàn)的錯誤的測試方案。(3)成功有效的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。從以上規(guī)則可以看出,測試是以查找錯誤為中心,和人們通常想象的“測試是為了驗證程序的正確功能”,“成功的測試是沒有發(fā)現(xiàn)錯誤的測試”等是完全相反的。所以,近年來,正確軟件測試目標(biāo)如下:(1)軟件測試并不僅僅是為了查找出軟件的錯誤,而是要通過進一步分析錯誤產(chǎn)生的原因和錯誤的發(fā)展趨勢,發(fā)現(xiàn)一些可以通過測試避免的開發(fā)風(fēng)險;(2)通過測試能夠幫助測試人員設(shè)計出適合該軟件更加有效的測試方法,進一步提高測試效率,縮短測試實踐,降低測試費用;(3)結(jié)果完全正確的測試也是有價值的,是軟件質(zhì)量的一種評價,但并不是測試正確就說明該軟件沒有錯誤,隨著使用的深入,功能的擴充等會逐步暴露出更多的問題,實踐證明,完全沒有錯誤的軟件世間難求。
1.3 軟件測試主要包括
(1)正確性和精確性測試:如果軟件的運行結(jié)果不正確和不精確,那么會給用戶帶來很大的麻煩,甚至造成不可估量的損失,因此是保證軟件質(zhì)量的最重要因素。(2)容錯性測試:容錯性測試是在認可錯誤的情況下進行的測試,是檢查軟件在異常條件運行,是否具有防護性和能否自我恢復(fù)。容錯性測試能確保系統(tǒng)不發(fā)生無法意料的事故,從而提高軟件的安全性和可靠性。(3)性能與效率測試:用戶都希望軟件的運行速度更高一些,并且占用的資源更少些,性能與效率測試主要是優(yōu)化軟件的算法,數(shù)據(jù)結(jié)構(gòu)和代碼組織來提高軟件的性能和效率。(4)易用性測試:易用性測試是測試軟件的易用程度,就像一個常用扳手工具,拿到就能明白怎么去使用,因此易用性測試沒有一個量化的指標(biāo),主觀性較強。在平時使用中,當(dāng)用戶不能正確使用軟件中的某個功能時,大多數(shù)人首先會通過各種方式學(xué)習(xí)、請教,或者向產(chǎn)品支持部門打電話,還有一部分用戶會查閱用戶手冊。通常認為,用戶不通過翻閱用戶手冊就能使用的軟件易用性較好。(5)文檔測試:文檔測試主要檢查文檔的正確性、完備性和可理解性。
1.4 軟件測試的基本原則
(1)盡早并不斷地進行軟件測試;(2)程序員或程序設(shè)計機構(gòu)避免測試自己的軟件;(3)測試前應(yīng)當(dāng)設(shè)置合理的測試用例,測試用例的設(shè)計不僅要有合法的測試數(shù)據(jù),也要有非法的測試數(shù)據(jù);(4)對程序修改之后要進行回歸測試;(5)妥善保留測試計劃、嚴格按照計劃測試,排除測試的隨意性,全部測試用例、出錯統(tǒng)計和最終分析報告,并對每一個測試結(jié)果做全面檢查。
1.5 軟件測試的地位
軟件的開發(fā)過程包括需求分析、設(shè)計、實現(xiàn)和測試四個階段。軟件測試在軟件生命周期中占重要地位,是軟件交付用戶使用前保證軟件質(zhì)量的重要手段。在系統(tǒng)發(fā)布之前,從客戶的需求出發(fā),盡早發(fā)現(xiàn)問題,修改的成本越低,破壞性也越小。一旦系統(tǒng)投產(chǎn)后發(fā)現(xiàn)問題,其危害性被成倍放大,甚至?xí)o雙方造成不可估量的損失。
2 軟件測試方法
按照不同的分類方法,軟件測試可以分為多種類型。
2.1 從是否需要執(zhí)行被測試軟件的角度分類
靜態(tài)測試:是指不需要實際運行軟件,主要對軟件的編程格式、程序邏輯結(jié)構(gòu)等方面進行測試。靜態(tài)測試是通過對源程序進行語法檢查,靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量等方面找出缺陷和可疑之處,例如變量定義和生命周期檢查、模塊接口的正確性、是否允許遞歸、程序邏輯和結(jié)構(gòu)審查等。
動態(tài)測試:通常的上機運行軟件而進行的測試,這種方法是使程序有控制地運行,并從多種角度觀察程序的行為,以發(fā)現(xiàn)其中的錯誤。在軟件維護階段,當(dāng)修改軟件后,除了對修改部分的軟件進行常規(guī)的測試外,還應(yīng)對軟件的其他部分進行回歸測試,所謂回歸測試是指全部或部分地重復(fù)已做過的測試,它主要檢查軟件的修改是否在軟件的未修改部分引入了新的錯誤。
2.2 從是否針對軟件結(jié)構(gòu)與算法的角度分為
白盒測試,主要是對軟件的邏輯結(jié)構(gòu)進行的測試。白盒測試要求測試人員對程序內(nèi)部邏輯結(jié)構(gòu)及有關(guān)信息來設(shè)計和選擇測試用例,對程序的邏輯路徑進行測試,不需測試軟件產(chǎn)品的功能。測試過程是基于覆蓋全部代碼、分支、路徑和條件。白盒測試是指在知道產(chǎn)品內(nèi)部工作過程,通過設(shè)置測試用例來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正確進行,檢驗程序是否都能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。
黑盒測試:指測試來檢測每個功能是否可以正常使用。執(zhí)行嚴格的測試,通過對整個軟件或某些軟件功能,但不檢查程序的源代碼還是非常清楚的了解該軟件的源代碼程序具體如何設(shè)計。通過輸入測試數(shù)據(jù),并通過分析的結(jié)果輸出到測試人員了解軟件是如何工作的。在測試中,主要的功能是用來檢查是否正確的程序或缺少的功能,用戶界面是正確的,錯誤的數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯誤,性能是正確與否,程序是否有初始化和終止錯誤的存在。
2.3 從測試的不同階段分類
單元測試:指的是對每一個工作單元進行測試,了解其運行結(jié)果是否符合我們的預(yù)期。它對測試人員的要求比較高,要求測試人員對程序代碼比較熟悉;一般由程序員自己編完某個單元后,先自我檢查通過后,再將測試代碼交給測試人員進行審核,如果發(fā)現(xiàn)缺陷,原開發(fā)者應(yīng)當(dāng)及時修正程序,這樣可以盡快的發(fā)現(xiàn)程序中存在的錯誤,及時修正以提高程序開發(fā)的效率。
集成測試:是在單元測試的基礎(chǔ)上,測試再將所有的軟件單元按照概要設(shè)計規(guī)格說明的要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達到或?qū)崿F(xiàn)相應(yīng)技術(shù)指標(biāo)及要求的活動。也就是說,在集成測試之前,單元測試已經(jīng)完成,集成測試中所使用的對象,已經(jīng)是經(jīng)過單元測試的軟件單元。
系統(tǒng)測試:是將已經(jīng)確認的計算機軟件和硬件設(shè)備、網(wǎng)絡(luò)和外圍設(shè)備等元素組合在一起,對已經(jīng)集成好的系統(tǒng)進行測試,找出所開發(fā)的系統(tǒng)與用戶需求不符或矛盾的地方,從而提出更加完善的方案.它的任務(wù)是盡可能徹底地檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性。
驗收測試:也稱為交付測試,完成了功能和系統(tǒng)測試后、產(chǎn)品發(fā)布之前所進行的測試活動,它是技術(shù)測試的最后一個階段。
總之,隨著軟件開發(fā)和測試技術(shù)的不斷發(fā)展,測試方法也越來越多樣化,針對性更強;選擇合適的軟件測試方法可以讓我們事半功倍。
參考文獻:
[1]張永梅.軟件測試技術(shù)研究[J].測試技術(shù)學(xué)報,2002,6.
[2]劉繼華.軟件測試技術(shù)的研究進展[J].微計算機信息,2012,10.
[3]瞿莉麗.淺析軟件測試技術(shù)[J].硅谷,2010,4.