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