軟件測試理論知識_第1頁
軟件測試理論知識_第2頁
軟件測試理論知識_第3頁
軟件測試理論知識_第4頁
軟件測試理論知識_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、軟件測試理論知識韓 飛1什么是軟件測試?軟件測試就是利用測試工具按照測試方案和流程對產(chǎn)品進行功能和性能測試,甚至根據(jù)需要編寫不同的測試工具,設(shè)計和維護測試系統(tǒng),對測試方案可能出現(xiàn)的問題進行分析和評估。執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產(chǎn)品適合需求。2為什么要進行軟件測試?是否需要進行軟件測試軟件測試軟件測試軟件測試取決于軟件開發(fā)過程是否存在缺陷,前期的缺陷導致缺陷放大,使軟件質(zhì)量度低,進度、成本無法控制異常的龐大。從而得出的結(jié)論是:要盡早測試,盡早的發(fā)現(xiàn)問題。3軟件測試工程師的概念軟件測試工程師是指理解產(chǎn)品的功能要求,并對其進行測試,檢查軟件有沒有錯誤,決定軟件是否具有穩(wěn)定性,寫出相應

2、的測試規(guī)范和測試用例的專門工作人員。簡而言之,軟件測試工程師在一家軟件企業(yè)中擔當?shù)氖恰百|(zhì)量管理”角色,及時糾錯及時更正,確保產(chǎn)品的正常運作。4軟件工程師職位劃分初級軟件測試工程師級軟件測試工程師通常都是按照軟件測試方案和流程對產(chǎn)品進行功能測驗,檢查產(chǎn)品是否有缺陷;中級軟件測試工程師中級軟件測試工程師則編寫軟件測試方案、測試文檔,與項目組一起制定軟件測試階段的工作計劃,能夠在項目運行中合理利用測試工具完成測試任務;高級軟件測試工程師高級軟件測試工程師則要熟練掌握軟件測試與開發(fā)技術(shù),且對所測試軟件對口行業(yè)非常了解,能夠?qū)赡艹霈F(xiàn)的問題進行分析評估;5軟件測試工程師的能力軟件測試工程師應該具備哪些能

3、力?1、具有創(chuàng)新性和綜合分析能力;2、必須具備判斷準確、追求完美、執(zhí)著認真、善于合作的品質(zhì);3、具有豐富的編程經(jīng)驗與查檢故障的能力。6軟件測試模型分類軟件測試的常用模型在軟件測試過程中最常見的模型分為V模型、W模型、X模型以及H模型;7軟件測試模型分類之V模型V模型優(yōu)越性和局限性優(yōu)越性:V模型中的過程從左到右,描述了基本的開發(fā) 過程和測試行為。V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發(fā)過程期間各階段的對應關(guān)系;局限性:把測試作為編碼之后的最后一個活動,需求分析等前期產(chǎn)生的錯誤直到后期的驗收測試才能發(fā)現(xiàn);8軟件測試模型分類之W模型W模型優(yōu)越性和

4、局限性優(yōu)越性:在V模型的基礎(chǔ)上,增加同開發(fā)階段的同步測試,形成W模型;測試與開發(fā)同步進行,有利于盡早的發(fā)現(xiàn)問題;局限性:仍把開發(fā)活動看成是從需求開始到編碼結(jié)束的串行活動,只有上一階段完成后,才可以開始下一階段的活動,不能支持迭代,自發(fā)性以及變更調(diào)整受到限制。9軟件測試模型分類之X模型X模型圖10軟件測試模型分類之X模型X模型也是對V模型的改進,X模型提出針對單獨的程序片段進行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序。X模型的左邊描述的是針對單獨程序片段所進行的相互分離的編碼和測試,此后將進行頻繁的交接,通過集成最終成為可執(zhí)行的程序,然后再對這些可執(zhí)行程序進行測試

5、。己通過集成測試的成品可以進行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。多根并行的曲線表示變更可以在各個部分發(fā)生。 由圖中可見,X模型還定位了探索性測試,這是不進行事先計劃的特殊類型的測試,這一方式往往能幫助有經(jīng)驗的測試人員在測試計劃之外發(fā)現(xiàn)更多的軟件錯誤。但 這樣可能對測試造成人力、物力和財力的浪費,對測試員的熟練程度要求比較高。11軟件測試模型分類之H模型H模型中, 軟件測試過程活動完全獨立,貫穿于整個產(chǎn)品的周期,與其他流程并發(fā)地進行,某個測試點準備就緒時,就可以從測試準備階段進行到測試執(zhí)行階段。軟件測試可以盡早的進行,并且可以根據(jù)被測目的不同而分層次進行。12軟件測試模型

6、分類之H模型H模型示意圖演示了在整個生產(chǎn)周期中某個層次上的一次測試“微循環(huán)”。圖中標注的其它流程可以是任意的開發(fā)流程,例如設(shè)計流程或者編碼流程。也就是說, 只要測試條件成熟了,測試準備活動完成了,測試執(zhí)行活動就可以進行了;H模型揭示了一個原理:軟件測試是一個獨立的流程,貫穿產(chǎn)品整個生命周期,與其他流程并發(fā)地進行。H模型指出軟件測試要盡早準備, 盡早執(zhí)行。不同的測試活動可以是按照某個次序先后進行的,但也可能是反復的,只要某個測試達到準備就緒點,測試執(zhí)行活動就可以開展。13V、W、H模型之間對比結(jié)論軟件測試過程模型V模型是軟件開發(fā)瀑布模型的變種,主要反映測試活動與分析和設(shè)計的關(guān)系;局限性:把測試作

7、為編碼之后的最后一個活動,需求分析等前期產(chǎn)生的錯誤直到后期的驗收測試才能發(fā)現(xiàn)軟件測試過程模型W模型在V模型的基礎(chǔ)上,增加了開發(fā)階段的同步測試,形成W模型;測試與開發(fā)同步進行,有利用盡早的發(fā)現(xiàn)問題局限性:仍把開發(fā)活動看成是從需求開始到編碼結(jié)束的串行活動,只有上一階段完成后,才可以開始下一階段的活動,不能支持迭代,自發(fā)性以及變更調(diào)整收到限制;14軟件測試模型分類之H模型軟件測試過程模型H模型在H模型中,軟件測試過程活動完全獨立,貫穿于整個產(chǎn)品的周期,與其他流程并發(fā)地進行,某個測試點準備就緒時,就可以從測試準備階段進行到測試執(zhí)行階段;軟件測試可以進行盡早的進行;軟件測試可以根據(jù)被測物的不同而分層次進

8、行在實際工作中應靈活地運用各種模型的優(yōu)點V模型: 強調(diào)了在整個軟件項目開發(fā)中需要經(jīng)歷的若干個測試級別,并與每一個開發(fā)級別對應;忽略了測試的對象不應該僅僅包括程序,沒有明確指出對需求、設(shè)計的測試 W模型: 補充了V模型中忽略的內(nèi)容,強調(diào)了測試計劃等工作的先行和對系統(tǒng)需求和系統(tǒng)設(shè)計的測試;與V模型相同,沒有對軟件測試的流程進行說明 H模型: 強調(diào)測試是獨立的,只要測試準備完成,就可以執(zhí)行測試。15V模型實際示意圖16軟件測試原則一,測試應該盡早進行,最好在需求階段就開始介入,因為最嚴重的錯誤不外乎是系統(tǒng)不能滿足用戶的需求。二,程序員應該避免檢查自己的程序,軟件測試應該由第三方來負責。三,設(shè)計測試用

9、例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下不要制造極端狀態(tài)和意外狀態(tài)。四,對測試錯誤結(jié)果進行地一個確認過程。一般由A測試出來的錯誤,一定要由B來確認。嚴重的錯誤可以召開評審會議進行討論和分析,對測試結(jié)果要進行嚴格的確認,是否真的存在這個問題以及嚴重程度等。五,制定嚴格的測試計劃。一定要制定測試計劃,并且要有指導性。測試時間安排盡量寬松,不要希望在極短的時間內(nèi)完成也有一個高水平的測試。六,妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。17軟件測試目標1發(fā)現(xiàn)一些可以通過測試避免的開發(fā)風險2實施測試來降低所發(fā)現(xiàn)的風險3確定測試何時可以結(jié)束4在開發(fā)項目的過程

10、中將測試看作是一個標準項目。18軟件測試的內(nèi)容軟件測試的主要內(nèi)容就是驗證和確認。驗證:是保證軟件正確地實現(xiàn)了一些特定功能的一系列活動, 即保證軟件以正確的方式來做了這個事件。確認:是一系列的活動和過程,目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性。即保證軟件做了你所期望的事情。19軟件測試的內(nèi)容之驗證軟件測試內(nèi)容之驗證1.確定軟件生存周期中的一個給定階段的產(chǎn)品是否達到前階段確立的需求的過程;2.程序正確性的形式證明,即采用形式理論證明程序符合設(shè)計規(guī)約規(guī)定的過程;3.評審、審查、測試、檢查、審計等各類活動,或?qū)δ承╉椞幚?、服務或文件等是否和?guī)定的需求相一致進行判斷和提出報告。20軟件測試的

11、內(nèi)容之確認軟件測試內(nèi)容之確認1.靜態(tài)確認,不在計算機上實際執(zhí)行程序,通過人工或程序分析來證明軟件的正確性;2.動態(tài)確認,通過執(zhí)行程序做分析,測試程序的動態(tài)行為,以證實軟件是否存在問題;軟件測試的對象不僅僅是程序測試,軟件測試應該包括整個軟件開發(fā)期間各個階段所產(chǎn)生的文檔,如需求規(guī)格說明、概要設(shè)計文檔、詳細設(shè)計文檔,當然軟件測試的主要對象還是源程序。21軟件測試的方法(一)隨著軟件測試技術(shù)的發(fā)展,軟件測試方法也越來越多樣化,選擇合適的測試方法可以讓我們的測試工作做到事半功倍;測試方法大體如下:測試_Alpha測試Alpha測試是由一個用戶在開發(fā)環(huán)境下進行的測試,也可以是公司內(nèi)部的用戶在模擬實際操作

12、環(huán)境下進行的受控測試,Alpha測試不能由該系統(tǒng)的程序員或測試員完成。測試_Beta測試測試是軟件的多個用戶在一個或多個用戶的實際使用環(huán)境下進行的測試。開發(fā)者通常不在測試現(xiàn)場,Beta測試不能由程序員或測試員完成。兼容性測試(可移植性測試)所測試的軟件是否可以被成功移植到指定的硬件或軟件平臺上22軟件測試的方法(二)用戶界面測試又稱UI測試用戶界面測試:是 指測試用戶界面的風格是否滿足客戶要求,文字是否正確,頁面是否美觀,文字,圖片組合是否完美,操作是否友好等等。UI 測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覽功能。確保用戶界面符合公司或行業(yè)的標準。包括用戶友好性

13、、人性化、易操作性 測試。用戶界面測試:用戶分析軟件用 戶界面的設(shè)計是否合乎用戶期望或要求。它常常包括菜單,對話框及對話框上所有按鈕,文字,出錯提示,幫助信息 等方面的測試。比如,發(fā)布微博功能所用的對話框的大小,所有按鈕是否對齊,字符串字體大小,出錯信息內(nèi)容和字體大小,工具欄位置/圖標等等。23軟件測試的方法(三)冒煙測試冒煙測試是指測試時間短,很快即能完成的測試,主要適用對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常可以進行后續(xù)的正式測試工作。冒煙測試的執(zhí)行者是版本編譯人員;隨機測試(可以同回歸測試一起進行)隨機測試沒有書面測試用例、記錄期望結(jié)果、檢查列表、腳本或指令

14、的測試。主要是根據(jù)測試者的經(jīng)驗對軟件進行功能和性能抽查。隨機測試是根據(jù)測試說明書執(zhí)行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試沒有覆蓋到的部分。另外,對于軟件更新和新增加的功能要重點測試。重點對一些特殊情況點、特殊的使用環(huán)境、并發(fā)性、進行檢查。尤其對以前測試發(fā)現(xiàn)的重大Bug,進行再次測試,可以結(jié)合回歸測試一起進行。24軟件測試的方法(四)白盒測試,英文是White Box Testing。又稱結(jié)構(gòu)測試或者邏輯驅(qū)動測試。白盒測試是把測試對象看作一個打開的盒子。利用白盒測試法進行動態(tài)測試時,需要測試軟件產(chǎn)品

15、的內(nèi)部結(jié)構(gòu)和處理過程,不需測試軟件產(chǎn)品的功能。白盒測試法的覆蓋標準有邏輯覆蓋、循環(huán)覆蓋和基本路徑測試。其中邏輯覆蓋包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋和路徑覆蓋。白盒測試是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等,主要用于軟件驗證。白盒測試常用工具有:Jtest、VcSmith、Jcontract、C+ Test、CodeWizard、logiscope。25軟件測試的方法(五)黑盒測試黑盒測

16、試,英文是Black Box Testing。又稱功能測試或者數(shù)據(jù)驅(qū)動測試。黑盒測試是根據(jù)軟件的規(guī)格對軟件進行的測試,這類測試不考慮軟件內(nèi)部的運作原理,因此軟件對用戶來說就像一個黑盒子。軟件測試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結(jié)果來發(fā)現(xiàn)軟件存在的缺陷,而不關(guān)心程序具體如何實現(xiàn)的一種軟件測試方法。黑盒測試常用工具有:AutoRunner、winrunner、loadrunner、QTP、SeleniumIDE等。26軟件測試的方法(六)回歸測試回歸測試:是指在發(fā)生修改之后重新測試先前的測試以保證修改的正確性。理論上,軟件產(chǎn)生新版本,都需要進行回歸測試,驗證以前發(fā)現(xiàn)和修復的錯誤是

17、否在新軟件版本上再次出現(xiàn)。根據(jù)修復好了的缺陷再重新進行測試。回歸測試的目的在于驗證以前出現(xiàn)過但已經(jīng)修復好的缺陷不再重新出現(xiàn)。一般指對某已知修正的缺陷再次圍繞它原來出現(xiàn)時的步驟重新測試。通常確定所需的再測試的范圍時是比較困難的,特別當臨近產(chǎn)品發(fā)布日期時。因為為了修正某缺陷時必需更改源代碼,因而就有可能影響這部分源代碼所控制的功能。所以在驗證修好的缺陷時不僅要服從缺陷原來出現(xiàn)時的步驟重新測試,而且還要測試有可能受影響的所有功能。因此應當鼓勵對所有回歸測試用例進行自動化測試。27軟件測試的方法(七)自動化測試( Automated Testing )使用自動化測試工具來進行測試,這類測試一般不需要人

18、干預,通常在GUI、性能等測試和功能測試中用得較多。通過錄制測試腳本,然后執(zhí)行這個測試腳本來實現(xiàn)測試過程的自動化。國內(nèi)領(lǐng)先的自動化測試服務提供商是澤眾軟件。自動化測試工具有AutoRunner和TAR等。驗收測試( Acceptance testing )驗收測試是指系統(tǒng)開發(fā)生命周期方法論的一個階段,這時相關(guān)的用戶或獨立測試人員根據(jù)測試計劃和結(jié)果對系統(tǒng)進行測試和接收。它讓系統(tǒng)用戶決定是否接收系統(tǒng)。它是一項確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測試。驗收測試一般有三種策略:正式驗收、非正式驗收或Alpha 測試、Beta 測試。28軟件測試的方法(八)邊界測試一種黑盒測試方法,適度等價類分析

19、方法的一種補充,由長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出的邊界上。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。邊界條件測試是環(huán)繞邊界值的測試。通常意味著測試軟件各功能是否能正確處理最大值,最小值或者所設(shè)計軟件能夠處理的最長的字符串等等。29軟件測試的方法(九)性能測試,英文是Performance Testing。性能測試:是指在交替進行負荷和強迫測試時常用的術(shù)語。理想的“性能測試”(和其他類型的測試)應在需求文檔或質(zhì)量保證、測試計劃中定義。性能測試一般包括負載測試和壓力測試。通常驗證軟件的性能在正常環(huán)境和系統(tǒng)條件下重復使用是否還能滿足性能指標。或者執(zhí)行同樣任務時新版本

20、不比舊版本慢。一般還檢查系統(tǒng)記憶容量在運行程序時會不會流失(memory leak)。比如,驗證程序保存一個巨大的文件新版本不比舊版本慢。30軟件測試的方法(十)動態(tài)測試,英文是Moment Testing。動態(tài)測試:是指通過運行軟件來檢驗軟件的動態(tài)行為和運行結(jié)果的正確性。根據(jù)動態(tài)測試在軟件開發(fā)過程中所處的階段和作用,動態(tài)測試可分為如下幾個步驟:1、單元測試2、集成測試3、系統(tǒng)測試4、驗收測試5、回歸測試31軟件測試的方法(十)單元測試單元測試是最微小規(guī)模的測試;以測試某個功能或代碼塊。典型地由程序員而非測試員來做,因為它需要知道內(nèi)部程序設(shè)計和編碼的細節(jié)知識。集成測試集成測試是指一個應用系統(tǒng)的

21、各個部件的聯(lián)合測試,以決定他們能否在一起共同工作并沒有沖突。部件可以是代碼塊、獨立的應用、網(wǎng)絡(luò)上的客戶端或服務器端程序。這種類型的測試尤其與、客戶服務器和分布式系統(tǒng)有關(guān)。一般集成測試以前,單元測試需要完成。集成測試是單元測試的邏輯擴展。32軟件測試的方法(十一)系統(tǒng)測試,英文是System Testing。系統(tǒng)測試是基于系統(tǒng)整體需求說明書的黑盒類測試,應覆蓋系統(tǒng)所有聯(lián)合的部件。系統(tǒng)測試是針對整個產(chǎn)品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不相符合或與之矛盾的地方。系統(tǒng)測試的對象不僅僅包括需要測試的產(chǎn)品系統(tǒng)的軟件,還要包含軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等。因此,必須將系統(tǒng)中的軟件與各種依賴的資源結(jié)合起來,在系統(tǒng)實際運行環(huán)境下來進行測試。33軟件測試的方法(十二)等價類方法等價劃分測試是根據(jù)等價類設(shè)計測試用例的一種技術(shù)。是黑盒測試的典型方法之一,通過把被測試程序所有可能的輸入數(shù)據(jù)域劃分成若干部分。從每一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論