樓主需要好好學(xué)學(xué)軟件工程概論,做開發(fā)和測試都必須要有了解的 WEB應(yīng)用和桌面應(yīng)用的理論大多是通用的 系統(tǒng)測試的任務(wù)是近可能徹底的檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗(yàn)系統(tǒng)"做得怎樣?"。
這階段又可分為三個步驟:模塊測試,測試每個模塊的程序是否有錯誤;組裝測試,測試模塊之間的接口是否正確;確認(rèn)測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求。該階段結(jié)束應(yīng)交付測試報告,說明測試數(shù)據(jù)的選擇,測試用例以及測試結(jié)果是否符合預(yù)期結(jié)果。
測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯誤原因和位置,然后進(jìn)行改正。 白盒測試也稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進(jìn)行,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作。
黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在測試地,把程序看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。
黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。
軟件測試的方法根據(jù)軟件工程的組織和實(shí)現(xiàn)方式,有很大差別,有些是比較技術(shù)化的方法,有些則是工程方法,主要分為: 黑盒測試方法群:等價類劃分、邊界值、因果圖、基路徑法、專家測試法、smoking、場景測試等 白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調(diào)用測試和返回測試,需要結(jié)合等價類和因果圖方法)等。
當(dāng)在單元層面黑盒而在集成層面白盒時,基本上兩類方法就會有結(jié)合了,就會出現(xiàn)習(xí)慣上說的灰盒測試(說實(shí)話,不做到純產(chǎn)品級開發(fā),基本上都是用的灰盒測試)。
(1)黑盒測試(black-box testing):只關(guān)心輸入和輸出的結(jié)果 (2)白盒測試(white-box testing):去研究里面的源代碼和程序結(jié)構(gòu)2、按是否運(yùn)行程序分為:(1)靜態(tài)測試(static testing):是指不實(shí)際運(yùn)行被測軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔可能存在的錯誤的過程。
靜態(tài)測試包括:對于代碼測試,主要是測試代碼是否符合相應(yīng)的標(biāo)準(zhǔn)和規(guī)范。對于界面測試,主要測試軟件的實(shí)際界面與需求中的說明是否相符。
對于文檔測試,主要測試用戶手冊和需求說明是否真正符合用戶的實(shí)際需求。(5)動態(tài)測試(dynamic testing),是指實(shí)際運(yùn)行被測程序,輸入相應(yīng)的測試數(shù)據(jù),檢查輸出結(jié)果和預(yù)期結(jié)果是否相符的過程3、按階段劃分:(1)單元測試(unit testing),是指對軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證。
樁模塊(stud)是指模擬被測模塊所調(diào)用的模塊,驅(qū)動模塊(driver)是指模擬被測模塊的上級模塊,驅(qū)動模塊用來接收測試數(shù)據(jù),啟動被測模塊并輸出結(jié)果。(2)集成測試(integration testing),是單元測試的下一階段,是指將通過測試的單元模塊組裝成系統(tǒng)或子系統(tǒng),再進(jìn)行測試,重點(diǎn)測試不同模塊的接口部門。
集成測試就是用來檢查各個單元模塊結(jié)合到一起能否協(xié)同配合,正常運(yùn)行。(3)系統(tǒng)測試(system testing),指的是將整個軟件系統(tǒng)看做一個整體進(jìn)行測試,包括對功能、性能,以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測試。
系統(tǒng)測試的主要依據(jù)是《系統(tǒng)需求規(guī)格說明書》文檔。(4)驗(yàn)收測試(acceptance testing),指的是在系統(tǒng)測試的后期,以用戶測試為主,或有測試人員等質(zhì)量保障人員共同參與的測試,它也是軟件正式交給用戶使用的最后一道工序。
驗(yàn)收測試又分為a測試和beta測試,其中a測試指的是由用戶、測試人員、開發(fā)人員等共同參與的內(nèi)部測試,而beta測試指的是內(nèi)測后的公測,即完全交給最終用戶測試。4、黑盒測試分為功能測試和性能測試:1)功能測試(function testing),是黑盒測試的一方面,它檢查實(shí)際軟件的功能是否符合用戶的需求。
包括邏輯功能測試(logic function testing) 界面測試(UI testing)UI=User Interface 易用性測試(usability testing):是指從軟件使用的合理性和方便性等角度對軟件系統(tǒng)進(jìn)行檢查,來發(fā)現(xiàn)軟件中不方便用戶使用的地方。兼容性測試(compatibility testing):包括硬件兼容性測試和軟件兼容性測試2)性能測試(performance testing) 軟件的性能主要有時間性能和空間性能兩種 時間性能:主要指軟件的一個具體事務(wù)的響應(yīng)時間(respond time)。
空間性能:主要指軟件運(yùn)行時所消耗的系統(tǒng)資源。軟件性能測試分為:一般性能測試:指的是讓被測系統(tǒng)在正常的軟硬件環(huán)境下運(yùn)行,不向其施加任何壓力的性能測試。
穩(wěn)定性測試也叫可靠性測試(reliability testing):是指連續(xù)運(yùn)行被測系統(tǒng)檢查系統(tǒng)運(yùn)行時的穩(wěn)定程度。負(fù)載測試(load testing):是指讓被測系統(tǒng)在其能忍受的壓力的極限范圍之內(nèi)連續(xù)運(yùn)行,來測試系統(tǒng)的穩(wěn)定性。
壓力測試(stress testing):是指持續(xù)不斷的給被測系統(tǒng)增加壓力,直到將被測系統(tǒng)壓垮為止,用來測試系統(tǒng)所能承受的最大壓力。(Validate the system or software can allowed the biggest stress.)5、其他測試類型:回歸測試(regression testing)是指對軟件的新的版本測試時,重復(fù)執(zhí)行上一個版本測試時的用例。
(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.) 冒煙測試(smoke testing),是指在對一個新版本進(jìn)行大規(guī)模的測試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn),是否具備可測性。(validate the major function is deployed or not in software of system when a new build or release is implement.) 隨機(jī)測試(random testing),是指測試中所有的輸入數(shù)據(jù)都是隨機(jī)生成的,其目的是模擬用戶的真實(shí)操作,并發(fā)現(xiàn)一些邊緣性的錯誤。
(means or all the test data is random, to validate the some edge bugs.)。
1、從是否關(guān)心內(nèi)部結(jié)構(gòu)來看 (1)白盒測試:又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,是一種按照程序內(nèi)部邏輯結(jié)構(gòu)和編碼結(jié)構(gòu),設(shè)計測試數(shù)據(jù)并完成測試的一種測試方法。
(2)黑盒測試:又稱為數(shù)據(jù)驅(qū)動測試,把測試對象當(dāng)做看不見的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程的情況下,測試者僅依據(jù)程序功能的需求規(guī)范考慮,確定測試用例和推斷測試結(jié)果的正確性,它是站在使用軟件或程序的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進(jìn)行的測試。(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結(jié)合在一起,是基于程序運(yùn)行時的外部表現(xiàn)又結(jié)合內(nèi)部邏輯結(jié)構(gòu)來設(shè)計用例,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結(jié)果的測試技術(shù)。
2、從是否執(zhí)行代碼看 (1)靜態(tài)測試:指不運(yùn)行被測程序本身,僅通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性。(2)動態(tài)測試:是指通過運(yùn)行被測程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,并分析運(yùn)行效率、正確性和健壯性等性能指標(biāo)。
3、從開發(fā)過程級別看 (1)單元測試:又稱模塊測試,是針對軟件設(shè)計的最小單位----程序模塊或功能模塊,進(jìn)行正確性檢驗(yàn)的測試工作。其目的在于檢驗(yàn)程序各模塊是否存在各種差錯,是否能正確地實(shí)現(xiàn)了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯(lián)合,是單元測試的多級擴(kuò)展,是在單元測試的基礎(chǔ)上進(jìn)行的一種有序測試。旨在檢驗(yàn)軟件單元之間的接口關(guān)系,以期望通過測試發(fā)現(xiàn)各軟件單元接口之間存在的問題,最終把經(jīng)過測試的單元組成符合設(shè)計要求的軟件。
(3)系統(tǒng)測試:是為判斷系統(tǒng)是否符合要求而對集成的軟、硬件系統(tǒng)進(jìn)行的測試活動、它是將已經(jīng)集成好的軟件系統(tǒng),作為基于整個計算機(jī)系統(tǒng)的一個元素,與計算機(jī)硬件、外設(shè)、某些支持軟件、人員、數(shù)據(jù)等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對計算機(jī)系統(tǒng)進(jìn)行一系列的組裝測試和確認(rèn)測試。在系統(tǒng)測試中,對于具體的測試類型有:(1)功能測試:對軟件需求規(guī)格說明書中的功能需求逐項(xiàng)進(jìn)行的測試,以驗(yàn)證功能是否滿足要求。
(2)性能測試:對軟件需求規(guī)格說明書的功能需求逐項(xiàng)進(jìn)行的測試,以驗(yàn)證功能是否滿足要求。(3)接口測試:對軟件需求規(guī)格說明中的接口需求逐項(xiàng)進(jìn)行的測試。
(4)人機(jī)交互界面測試:對所有人機(jī)交互界面提供的操作和顯示界面進(jìn)行的測試,以檢驗(yàn)是否滿足用戶的需求。(5)強(qiáng)度測試:強(qiáng)制軟件運(yùn)行在異常乃至發(fā)生故障的情況下(設(shè)計的極限狀態(tài)到超出極限),驗(yàn)證軟件可以運(yùn)行到何種程序的測試。
(6)余量測試:對軟件是否達(dá)到規(guī)格說明中要求的余量的測試。(7)安全性測試:檢驗(yàn)軟件中已存在的安全性、安全保密性措施是否有效的測試,(8)可靠性測試:在真實(shí)的或仿真的環(huán)境中,為做出軟件可靠性估計而對軟件進(jìn)行的功能(其輸入覆蓋和環(huán)境覆蓋一般大于普通的功能測試) (9)恢復(fù)性測試:對有恢復(fù)或重置功能的軟件的每一類導(dǎo)致恢復(fù)或重置的情況,逐一進(jìn)行的測試。
(10)邊界測試:對軟件處在邊界或端點(diǎn)情況下運(yùn)行狀態(tài)的測試。(11)數(shù)據(jù)處理測試:對完成專門數(shù)據(jù)處理功能所進(jìn)行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規(guī)程的測試,以發(fā)現(xiàn)安裝過程中的錯誤。(13)容量測試:檢驗(yàn)軟件的能力最高能達(dá)到什么程度的測試。
(14)互操作性測試:為驗(yàn)證不同軟件之間的互操作能力而進(jìn)行的測試。(15)敏感性測試:為發(fā)現(xiàn)在有效輸入類中可能引起某種不穩(wěn)定性或不正常處理的某些數(shù)據(jù)的組合而進(jìn)行的測試。
(16)標(biāo)準(zhǔn)符合性測試:驗(yàn)證軟件與相關(guān)國家標(biāo)準(zhǔn)或規(guī)范(如軍用標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)及國際標(biāo)準(zhǔn))一致性的測試。(17)兼容性測試:驗(yàn)證軟件在規(guī)定條件下與若干個實(shí)體共同使用或?qū)崿F(xiàn)數(shù)據(jù)格式轉(zhuǎn)換時能滿足有關(guān)要求能力的測試。
(18)中文本地化測試:驗(yàn)證軟件在不降低原有能力的條件下,處理中文能力的測試。4、從執(zhí)行過程是否需要人工干預(yù)來看 (1)手工測試:就是測試人員按照事先為覆蓋被測軟件需求而編寫的測試用例,根據(jù)測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執(zhí)行,包括與被測軟件進(jìn)行交互(如輸入測試數(shù)據(jù)、記錄測試結(jié)果等),然后觀察測試結(jié)果,看被測程序是否存在問題,或在執(zhí)行過程中是否會有一場發(fā)生,屬于比較原始但是必須執(zhí)行的一個步驟。
(2)自動化測試:實(shí)際上是將大量的重復(fù)性的測試工作交給計算機(jī)去完成,通常是使用自動化測試工具來模擬手動測試步驟,執(zhí)行用某種程序設(shè)計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預(yù),由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)5、從測試實(shí)施組織看 (1)開發(fā)測試:開發(fā)人員進(jìn)行的測試 (2)用戶測試:用戶方進(jìn)行的測試 (3)第三方測試:有別于開發(fā)人員或用戶進(jìn)行的測試,由專業(yè)的第三方承擔(dān)的測試,目的是為了保證測試工作的客觀性6、從測試所處的環(huán)境看 (1)阿爾法測試:是由一個用戶在開發(fā)環(huán)境下進(jìn)行的測試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測試 (2)。
軟件測試的目的;在規(guī)定的條件下對程序進(jìn)行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計要求進(jìn)行評估。
準(zhǔn)則:對計算機(jī)軟件進(jìn)行測試前,首先需遵循軟件測試原則,即不完全原則的遵守。不完全原則即為若測試不完全、測試過程中涉及免疫性原則的部分較多,可對軟件測試起到一定幫助。
因軟件測試因此類因素具有一定程度的免疫性,測試人員能夠完成的測試內(nèi)容與其免疫性成正比,若想使軟件測試更為流暢、測試效果更為有效,首先需遵循此類原則,將此類原則貫穿整個開發(fā)流程,不斷進(jìn)行測試,而并非一次性全程測試。
測試方法:
1、靜態(tài)測試方法
軟件代碼的靜態(tài)分析測驗(yàn),此類過程中應(yīng)用數(shù)據(jù)較少,主要過程為通過軟件的靜態(tài)性測試(即人工推斷或計算機(jī)輔助測試)測試程序中運(yùn)算方式、算法的正確性,進(jìn)而完成測試過程,此類測試的優(yōu)點(diǎn)在于能夠消耗較短時間、較少資源完成對軟件、軟件代碼的測試,能夠較為明顯地發(fā)現(xiàn)此類代碼中出現(xiàn)的錯誤。
2、動態(tài)測試
計算機(jī)動態(tài)測試的主要目的為檢測軟件運(yùn)行中出現(xiàn)的問題,較靜態(tài)測試方式相比,其被稱為動態(tài)的原因即為其測試方式主要依賴程序的運(yùn)用,主要為檢測軟件中動態(tài)行為是否缺失、軟件運(yùn)行效果是否良好。
3、黑盒測試
通過數(shù)據(jù)輸入觀察數(shù)據(jù)輸出,檢查軟件內(nèi)部功能是否正常。測試展開時,數(shù)據(jù)輸入軟件中,等待數(shù)據(jù)輸出。數(shù)據(jù)輸出時若與預(yù)計數(shù)據(jù)一致,則證明該軟件通過測試,若數(shù)據(jù)與預(yù)計數(shù)據(jù)有出入,即便出入較小亦證明軟件程序內(nèi)部出現(xiàn)問題,需盡快解決。
4、白盒測試
白盒測試相對于黑盒測試而言具有一定透明性,原理為根據(jù)軟件內(nèi)部應(yīng)用、源代碼等對產(chǎn)品內(nèi)部工作過程進(jìn)行調(diào)試。測試過程中常將其與軟件內(nèi)部結(jié)構(gòu)協(xié)同展開分析,最大優(yōu)點(diǎn)即為其能夠有效解決軟件內(nèi)部應(yīng)用程序出現(xiàn)的問題,測試過程中常將其與黑盒測試方式結(jié)合,當(dāng)測試軟件功能較多時,白盒測試法亦可對此類情況展開有效調(diào)試。
擴(kuò)展資料
軟件測試工具
開源測試管理工具:Bugfree、Bugzilla、TestLink、mantis zentaopms。
開源功能自動化測試工具:Watir、Selenium [1] 、MaxQ、WebInject。
開源性能自動化測試工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator。
其他測試工具與框架:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot等。
禪道測試管理工具:功能比較全面的測試管理工具,功能涵蓋軟件研發(fā)的全部生命周期,為軟件測試和產(chǎn)品研發(fā)提供一體化的解決方案。是一款優(yōu)秀的國產(chǎn)開源測試管理工具。
Quality Center:基于Web的測試管理工具,可以組織和管理應(yīng)用程序測試流程的所有階段,包括指定測試需求、計劃測試、執(zhí)行測試和跟蹤缺陷。
QuickTest Professional:用于創(chuàng)建功能和回歸測試。
LoadRunner:預(yù)測系統(tǒng)行為和性能的負(fù)載測試工具。
國內(nèi)免費(fèi)軟件測試工具有:AutoRunner和TestCenter。
參考資料來源:百度百科-軟件測試技術(shù)
參考資料來源:百度百科-軟件測試
軟件測試生命周期包括6個階段(大體上):1)計劃 2)分析,3)設(shè)計,4)構(gòu)建,5)測試周期,6)最后測試和實(shí)施,和7)實(shí)施后。
1. 計劃(產(chǎn)品定義階段)
高層次的測試計劃(包含多重測試周期)
質(zhì)量保證計劃(質(zhì)量目標(biāo),測試標(biāo)準(zhǔn)等 )
確定計劃評審的時間
報告問題過程
確定問題的分類
確定驗(yàn)收標(biāo)準(zhǔn)-給質(zhì)量保證員和用戶。
建立應(yīng)用程序測試數(shù)據(jù)庫
確定衡量標(biāo)準(zhǔn),例如缺陷數(shù)量/嚴(yán)重程度和缺陷起源(僅舉幾個例子) 。
確定項(xiàng)目質(zhì)量度量
開始制定項(xiàng)目整體測試時間表(時間,資源等)
必需階段:評審產(chǎn)品定義文檔
文檔中加入質(zhì)量保證標(biāo)準(zhǔn),作為工程改善進(jìn)程的一部分
根據(jù)該產(chǎn)品的特點(diǎn)幫助確定問題的范圍
大約每月要花5 -1 0小時在這一方面
計劃在數(shù)據(jù)庫管理所有測試用例,包括手工方面或者自動化方面。
2. 分析(外部文檔階段)
根據(jù)業(yè)務(wù)需求開發(fā)功能驗(yàn)證矩陣。
制定測試用例格式-估計時間和分配優(yōu)先級。
制定測試周期矩陣與時間線
根據(jù)功能驗(yàn)證矩陣開始編寫測試用例
根據(jù)業(yè)務(wù)需求計劃測試用例基準(zhǔn)數(shù)據(jù)
確定用于自動化測試的測試用例。
自動化團(tuán)隊(duì)開始在測試工具中創(chuàng)建變量文件和高層次的測試腳本。
為自動化系統(tǒng)中的跟蹤組件設(shè)置路徑和自動化引導(dǎo)。
界定壓力和性能測試的范疇。
按照每個測試用例的數(shù)據(jù)要求開始建立基準(zhǔn)數(shù)據(jù)庫。
定義維護(hù)基準(zhǔn)數(shù)據(jù)庫的過程,即備份,恢復(fù),驗(yàn)證。
開始規(guī)劃項(xiàng)目所需的測試周期數(shù),和回歸測試次數(shù)。
開始文檔復(fù)查,如:功能設(shè)計文檔,業(yè)務(wù)需求文檔,產(chǎn)品規(guī)格說明書,產(chǎn)品外部文檔等。
審查測試環(huán)境和實(shí)驗(yàn)室,前端與后端系統(tǒng)都要。
準(zhǔn)備使用McCabe工具,以支持白盒測試中代碼的研發(fā)和復(fù)雜性分析
建立反饋機(jī)制并開始錄入文檔。
必需階段:審查外部文件
1、恢復(fù)測試 恢復(fù)測試主要檢查系統(tǒng)的容錯能力。
當(dāng)系統(tǒng)出錯時,能否在指定時間間隔內(nèi)修正錯誤并重新啟動系統(tǒng)?;謴?fù)測試首先要采用各種辦法強(qiáng)迫系統(tǒng)失敗,然后驗(yàn)證系統(tǒng)是否能盡快恢復(fù)。
對于自動恢復(fù)需驗(yàn)證重新初始化(reinitialization)、檢查點(diǎn)(checkpointing mechanisms)、數(shù)據(jù)恢復(fù)(data recovery)和重新啟動 (restart)等機(jī)制的正確性;對于人工干預(yù)的恢復(fù)系統(tǒng),還需估測平均修復(fù)時間,確定其是否在可接受的范圍內(nèi)。 2、安全測試 安全測試檢查系統(tǒng)對非法侵入的防范能力。
安全測試期間,測試人員假扮非法入侵者,采用各種辦法試圖突破防線。例如,①想方設(shè)法截取或破譯口令;②專門定做軟件破壞系統(tǒng)的保護(hù)機(jī)制;③故意導(dǎo)致系統(tǒng)失敗,企圖趁恢復(fù)之機(jī)非法進(jìn)入;④試圖通過瀏覽非保密數(shù)據(jù),推導(dǎo)所需信息,等等。
理論上講,只要有足夠的時間和資源,沒有不可進(jìn)入的系統(tǒng)。因此系統(tǒng)安全設(shè)計的準(zhǔn)則是,使非法侵入的代價超過被保護(hù)信息的價值。
此時非法侵入者已無利可圖。 3、強(qiáng)度測試 強(qiáng)度測試檢查程序?qū)Ξ惓G闆r的抵抗能力。
強(qiáng)度測試總是迫使系統(tǒng)在異常的資源配置下運(yùn)行。例如,①當(dāng)中斷的正常頻率為每秒一至兩個時,運(yùn)行每秒產(chǎn)生十個中斷的測試用例;②定量地增長數(shù)據(jù)輸入率,檢查輸入子功能的反映能力;③運(yùn)行需要最大存儲空間(或其他資源)的測試用例;④運(yùn)行可能導(dǎo)致虛存操作系統(tǒng)崩潰或磁盤數(shù)據(jù)劇烈抖動的測試用例,等等。
4、性能測試 對于那些實(shí)時和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一測試步驟都包含性能測試,但只有當(dāng)系統(tǒng)真正集成之后,在真實(shí)環(huán)境中才能全面、可靠地測試運(yùn)行性能系統(tǒng)性能測試是為了完成這一任務(wù)。性能測試有時與強(qiáng)度測試相結(jié)合,經(jīng)常需要其他軟硬件的配套支持。
1. 等價類劃分 常見的軟件測試面試題劃分等價類: 等價類是指某個輸入域的子集合.在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的.并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結(jié)果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類. 2. 邊界值分析法 邊界值分析方法是對等價類劃分方法的補(bǔ)充。
測試工作經(jīng)驗(yàn)告訴我,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤. 使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù). 3. 錯誤推測法 基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯誤, 從而有針對性的設(shè)計測試用例的方法. 錯誤推測方法的基本思想: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇測試用例. 例如, 在單元測試時曾列出的許多在模塊中常見的錯誤. 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等, 這些就是經(jīng)驗(yàn)的總結(jié)。還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況。
輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯誤的情況??蛇x擇這些情況下的例子作為測試用例. 4. 因果圖方法 前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當(dāng)多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況. 5. 正交表分析法 有時候,可能因?yàn)榇罅康膮?shù)的組合而引起測試用例數(shù)量上的激增,同時,這些測試用例并沒有明顯的優(yōu)先級上的差距,而測試人員又無法完成這么多數(shù)量的測試,就可以通過正交表來進(jìn)行縮減一些用例,從而達(dá)到盡量少的用例覆蓋盡量大的范圍的可能性。
6. 場景分析方法 指根據(jù)用戶場景來模擬用戶的操作步驟,這個比較類似因果圖,但是可能執(zhí)行的深度和可行性更好。 白盒測試用例設(shè)計的關(guān)鍵是以較少的用例覆蓋盡可能多的內(nèi)部程序邏輯結(jié)果 黑盒法用例設(shè)計的關(guān)鍵同樣也是以較少的用例覆蓋模塊輸出和輸入接口。
不可能做到完全測試,以最少的用例在合理的時間內(nèi)發(fā)現(xiàn)最多的問題 詳細(xì)的描述一個測試活動完整的過程。1. 項(xiàng)目經(jīng)理通過和客戶的交流,完成需求文檔,由開發(fā)人員和測試人員共同完成需求文檔的評審,評審的內(nèi)容包括:需求描述不清楚的地方和可能有明顯沖突或者無法實(shí)現(xiàn)的功。
可以采用軟件測試常用的基該方法:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等設(shè)計測試用例。視軟件的不同性質(zhì)采用不同的方法。如何靈活運(yùn)用各種基該方法來設(shè)計完整的測試用例,并最終實(shí)現(xiàn)暴露隱藏的缺陷,全憑測試設(shè)計人員的豐富經(jīng)驗(yàn)和精心設(shè)計。
編寫測試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。測試用例文檔將受制于測試用例管理軟件的約束。 軟件產(chǎn)品或軟件開發(fā)項(xiàng)目的測試用例一般以該產(chǎn)品的軟件模塊或子系統(tǒng)為單位,形成一個測試用例文檔,但并不是絕對的。
測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試范圍、定義術(shù)語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個具體測試用例都將包括下列詳細(xì)信息:版本號、模塊名稱、用例編號、用例名稱、用例級別、預(yù)知條件、驗(yàn)證步驟、期望結(jié)果(含判斷標(biāo)準(zhǔn))、測試結(jié)果、測試時間、測試人員等。
擴(kuò)展資料
測試執(zhí)行過程中,應(yīng)該注意及時更新測試用例。往往在測試執(zhí)行過程中,才發(fā)現(xiàn)遺漏了一些測試用例,這時候應(yīng)該及時的補(bǔ)充;往往也會發(fā)現(xiàn)有些測試用例在具體的執(zhí)行過程中根本無法操作,這時候應(yīng)該刪除這部分用例;也會發(fā)現(xiàn)若干個冗余的測試用例完全可以由某一個測試用例替代,那么刪除冗余的測試用例。
總之,測試執(zhí)行的過程中及時地更新測試用例是很好的習(xí)慣。不要打算在測試執(zhí)行結(jié)束后,統(tǒng)一更新測試用例,如果這樣,往往會遺漏很多本應(yīng)該更新的測試用例。
參考資料來源:百度百科-測試用例設(shè)計
參考資料來源:百度百科-測試用例
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.068秒