生活中的測試技術(shù)論文(2)
生活中的測試技術(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 軟件測試的定義
看待軟件測試的角度不同,軟件測試的定義也各不相同??偟恼f來,軟件測試就是利用測試工具按照預(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)容錯性測試:容錯性測試是在認(rèn)可錯誤的情況下進行的測試,是檢查軟件在異常條件運行,是否具有防護性和能否自我恢復(fù)。容錯性測試能確保系統(tǒng)不發(fā)生無法意料的事故,從而提高軟件的安全性和可靠性。(3)性能與效率測試:用戶都希望軟件的運行速度更高一些,并且占用的資源更少些,性能與效率測試主要是優(yōu)化軟件的算法,數(shù)據(jù)結(jié)構(gòu)和代碼組織來提高軟件的性能和效率。(4)易用性測試:易用性測試是測試軟件的易用程度,就像一個常用扳手工具,拿到就能明白怎么去使用,因此易用性測試沒有一個量化的指標(biāo),主觀性較強。在平時使用中,當(dāng)用戶不能正確使用軟件中的某個功能時,大多數(shù)人首先會通過各種方式學(xué)習(xí)、請教,或者向產(chǎn)品支持部門打電話,還有一部分用戶會查閱用戶手冊。通常認(rèn)為,用戶不通過翻閱用戶手冊就能使用的軟件易用性較好。(5)文檔測試:文檔測試主要檢查文檔的正確性、完備性和可理解性。
1.4 軟件測試的基本原則
(1)盡早并不斷地進行軟件測試;(2)程序員或程序設(shè)計機構(gòu)避免測試自己的軟件;(3)測試前應(yīng)當(dāng)設(shè)置合理的測試用例,測試用例的設(shè)計不僅要有合法的測試數(shù)據(jù),也要有非法的測試數(shù)據(jù);(4)對程序修改之后要進行回歸測試;(5)妥善保留測試計劃、嚴(yán)格按照計劃測試,排除測試的隨意性,全部測試用例、出錯統(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í)行嚴(yán)格的測試,通過對整個軟件或某些軟件功能,但不檢查程序的源代碼還是非常清楚的了解該軟件的源代碼程序具體如何設(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)確認(rèn)的計算機軟件和硬件設(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.
看了“生活中的測試技術(shù)論文”的人還看:
生活中的測試技術(shù)論文(2)
下一篇:生姜的栽培技術(shù)論文