軟件測試基礎(chǔ)知識_第1頁
軟件測試基礎(chǔ)知識_第2頁
軟件測試基礎(chǔ)知識_第3頁
軟件測試基礎(chǔ)知識_第4頁
軟件測試基礎(chǔ)知識_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.軟件測試基礎(chǔ)教程 測試的基本概念測試是軟件生存周期中十分重要的一個(gè)過程,是產(chǎn)品發(fā)布、提交給最終用戶前的穩(wěn)定化階段。 1、 測試的分類:從測試方法的角度可以分為手工測試和自動(dòng)化測試。手工測試:不使用任何測試工具,根據(jù)事先設(shè)計(jì)好的測試用例來運(yùn)行系統(tǒng),測試各功能模塊。自動(dòng)化測試:利用測試工具,通過編寫測試腳本和輸入測試數(shù)據(jù),自動(dòng)運(yùn)行測試程序。目前最常用的自動(dòng)化測試工具是基于GUI的自動(dòng)化測試工具,基本原理都是錄制、回放技術(shù)。從整體的角度可以分為單元測試、集成測試、系統(tǒng)測試、確認(rèn)測試。(單體,結(jié)合,統(tǒng)合,確認(rèn))單體測試:是針對軟件設(shè)計(jì)的最小單位程序模塊,進(jìn)行正確性檢驗(yàn)的測試工作。一般包括邏

2、輯檢查、結(jié)構(gòu)檢查、接口檢查、出錯(cuò)處理、代碼注釋、輸入校驗(yàn)、邊界值檢查。單元測試的依據(jù)是系統(tǒng)的詳細(xì)設(shè)計(jì);集成測試:在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝進(jìn)行測試。一般包括邏輯關(guān)系檢查、數(shù)據(jù)關(guān)系檢查、業(yè)務(wù)關(guān)系檢查、模塊間接口檢查、外部接口檢查。系統(tǒng)測試:系統(tǒng)測試是在所有單元、集成測試后,對系統(tǒng)的功能及性能的總體測試。確認(rèn)測試:模擬用戶運(yùn)行的業(yè)務(wù)環(huán)境,運(yùn)用黑盒測試方法,驗(yàn)證軟件系統(tǒng)是否滿足用戶需求或軟件需求說明書中指明的軟件特性(功能、非功能)上的。從測試原理上分為:白盒測試、黑盒測試和灰盒測試。白盒測試:是通過程序的源代碼進(jìn)行測試而不使用用戶界面。這種類型的測試需要從代碼句法發(fā)現(xiàn)內(nèi)部代碼在

3、算法,溢出,路徑,條件等等中的缺點(diǎn)或者錯(cuò)誤,進(jìn)而加以修正。一般由項(xiàng)目組開發(fā)人員自己完成。黑盒測試:是通過使用整個(gè)軟件或某種軟件功能來嚴(yán)格地測試, 而并沒有通過檢查程序的源代碼或者很清楚地了解該軟件的源代碼程序具體是怎樣設(shè)計(jì)的。測試人員通過輸入他們的數(shù)據(jù)然后看輸出的結(jié)果從而了解軟件怎樣工作。在測試時(shí),把程序看作一個(gè)不能打開的黑盆子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,測試者在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蘸驼_的輸出。黑盒測試方法主要有等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測法。等價(jià)類劃分:是把所有可能的輸入數(shù)據(jù),即程序的輸入

4、域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例.該方法是一種重要的,常用的黑盒測試用例設(shè)計(jì)方法.1) 劃分等價(jià)類: 等價(jià)類劃分法是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。該方法是一種重要的,常用的黑盒測試用例設(shè)計(jì)方法。有效等價(jià)類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合.利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能.無效等價(jià)類:與有效等價(jià)類的定義恰巧相反.設(shè)計(jì)測試用例時(shí),要同時(shí)考慮這兩種等價(jià)類.因?yàn)?軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考

5、驗(yàn).這樣的測試才能確保軟件具有更高的可靠性.例:有效等價(jià)類 : 1.20<age<39 2. 出生日期在1960年7月到1979年6月無效等價(jià)類 : 3、age<20或age>39 4 。出生日期早于1960年7月 或 出生日期晚于1979年6月 條件 預(yù)期結(jié)果1、20<age<39,出生日期在1960年7月到1979年6月 OK 2、age<20,出生日期早于1960年7月 NG 3、age>39,出生日期晚于1979年6月 NG 。2劃分等價(jià)類的方法劃分等價(jià)類重要的是:集合的劃分,劃分為互不相交的一組子集,而子集的并是整個(gè)集合。下面給出六條確

6、定等價(jià)類的原則。1、 在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。例如:成年人每分鐘的心跳60-100之間為正常。有效等價(jià)類:60-100 無效等價(jià)類:<60 和 >1002、 在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例如:用戶連續(xù)輸入錯(cuò)誤密碼的次數(shù)最多為3次。有效等價(jià)類:<=3次 無效等價(jià)類:>3次 3、在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類。只有兩個(gè)截然相反答案的情況,它的答案稱為布爾值。布爾值只有兩個(gè):true和false,他們的運(yùn)算為邏輯運(yùn)算。

7、在C語言中用整型定義布爾值:0表示false,非0表示true。例如:單選的選中與不選中。4、在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。例如:輸入數(shù)據(jù)為省份的選擇。5、在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則) 。例如:規(guī)定必須輸入非0的正整數(shù)。這種例子應(yīng)充分考慮規(guī)則是否可以拆分為具有單一的子規(guī)則,然后得到從不同角度違反規(guī)則的無效等價(jià)類。該例子起碼可拆分為非0、數(shù)字、正數(shù)、整數(shù)4個(gè)子規(guī)則,至少每個(gè)規(guī)則對應(yīng)一個(gè)無效等價(jià)類,即0、字符串、負(fù)數(shù)、小數(shù),甚至

8、可挖掘出輸入為空的隱含等價(jià)類。例:屬性全角半角數(shù)字(共通入力指定一覧.xls)6、在確知已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步的劃分為更小的等價(jià)類。例如:核對日期的有效性,初步有效等價(jià)類是1<=Month<=12,1<=Day<=31可是考慮到2月以及閏年、閏月、長月、短月等,需要進(jìn)一步細(xì)分,當(dāng)然其中還涉及到了年月日組合的問題。根據(jù)等價(jià)類劃分原則,將等價(jià)類填入下表。等價(jià)類表輸入條件有效等價(jià)類無效等價(jià)類    RM001 CASE3測試用例設(shè)計(jì)原則根據(jù)等價(jià)類表,然后從劃分出的等價(jià)類中按以下三個(gè)原則設(shè)計(jì)測試

9、用例:1)、為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號。2)、設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止。3)、設(shè)計(jì)一個(gè)新的測試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。4等價(jià)類劃分法優(yōu)缺點(diǎn)等價(jià)類劃分法的優(yōu)點(diǎn)是考慮了單個(gè)輸入域的各類情況,避免了盲目或隨機(jī)選取輸入數(shù)據(jù)的布完整性和覆蓋的不穩(wěn)定性。等價(jià)類劃分法雖然簡單易用,但是沒有對組合情況進(jìn)行充分的考慮。需要結(jié)合其他測試用例設(shè)計(jì)的方法進(jìn)行補(bǔ)充。 Sm001 case邊界值分析:長期的測試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上

10、,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。以上、以降歳以上:age歳以降:age錯(cuò)誤推測法:基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤, 從而有針對性的設(shè)計(jì)測試用例的方法.錯(cuò)誤推測方法的基本思想: 列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測試用例. 例如, 在單元測試時(shí)曾列出的許多在模塊中常見的錯(cuò)誤. 以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯(cuò)誤等, 這些就是經(jīng)驗(yàn)的總結(jié). 還有, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況. 輸入表格為空格或輸入表格只有一行. 這些都是容易發(fā)生錯(cuò)誤的情況. 可選擇這些情況下的例子作為測試用例?;液袦y試:灰盒測試就像

11、黑盒測試一樣是通過用戶界面測試,但是測試人員已經(jīng)有所了解該軟件或某種軟件功能的源代碼程序具體是怎樣設(shè)計(jì)的。甚至于還讀過部分源代碼。因此測試人員可以有真對性地進(jìn)行某種確定的條件/功能的測試。 從軟件特性上分為功能測試和性能測試。功能測試:是指為了確保軟件系統(tǒng)功能實(shí)現(xiàn)的正確性,完整性和其他特性而進(jìn)行的測試。性能測試:是指為了評估軟件系統(tǒng)的性能狀況,和預(yù)測軟件系統(tǒng)性能趨勢而進(jìn)行的測試和分析。2、 BUG的定義:軟件的Bug,狹義概念是指軟件程序的漏洞或缺陷,廣義概念除此之外還包括測試工程師或用戶所發(fā)現(xiàn)和提出的軟件可改進(jìn)的細(xì)節(jié)、或與需求文檔存在差異的功能實(shí)現(xiàn)等。僅就狹義概念而言,軟件出現(xiàn)Bu

12、g的原因有: 1、對各種流程分支考慮不全面; 2、對邊界情況的處理不到位; 3、編碼時(shí)的手誤。  二、 功能測試方法與內(nèi)容1、數(shù)據(jù)輸入測試:向系統(tǒng)輸入數(shù)據(jù)或輸入數(shù)據(jù)庫操作命令時(shí),一般是測試系統(tǒng)對數(shù)據(jù)庫中數(shù)據(jù)操作的過程。數(shù)據(jù)類型測試:由于不同的數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)類型要求的不同,在定義數(shù)據(jù)庫表時(shí),也規(guī)定了數(shù)據(jù)字段的數(shù)據(jù)類型。測試步驟和方法:在系統(tǒng)的數(shù)據(jù)維護(hù)功能界面上,錄入或修改數(shù)據(jù)時(shí),特意輸入非系統(tǒng)設(shè)計(jì)的數(shù)據(jù)類型,檢查系統(tǒng)是否可以接受,若不能接受則檢查是否滿足了系統(tǒng)在這方面的設(shè)計(jì)要求,如即刻清除非法內(nèi)容、輸入焦點(diǎn)不能到下一輸入位置、出現(xiàn)系統(tǒng)自定義的提示信息、不允許出現(xiàn)開發(fā)工具的報(bào)

13、錯(cuò)信息等。若系統(tǒng)可以接受并保存,則要看數(shù)據(jù)庫表的字段類型設(shè)計(jì)是否與用戶或習(xí)慣上不一致,并且要注意其他模塊在調(diào)取該數(shù)據(jù)時(shí),是否有特定要求。邊界值測試:根據(jù)數(shù)據(jù)取值范圍的要求,輸入符合取值范圍的數(shù)據(jù)、取值范圍的上、下限和超過取值范圍的數(shù)據(jù)。注意,除要測試數(shù)據(jù)庫系統(tǒng)本身數(shù)據(jù)類型取值范圍外,還要根據(jù)軟件系統(tǒng)設(shè)計(jì)中的一些特定要求,設(shè)計(jì)測試用例來測試。數(shù)據(jù)合法性測試:測試人員除了要測試輸入數(shù)據(jù)是否滿足所使用數(shù)據(jù)庫系統(tǒng)本身的數(shù)據(jù)類型和取值范圍的要求外,還應(yīng)該根據(jù)經(jīng)驗(yàn)和軟件系統(tǒng)和需求的特定要求檢查輸入數(shù)據(jù)的合法性。比如:日期合法性(出生年月、參保日期、發(fā)生時(shí)間、根據(jù)習(xí)慣和業(yè)務(wù)邏輯順序?qū)θ掌诤侠硇缘囊蟮龋9?/p>

14、資、比例、率等,都要注意輸入的合理、合法性。單引號和雙引號:不要忽略輸入單引號和雙引號可能引起的錯(cuò)誤和數(shù)據(jù)問題。在功能錄入界面上,在某字段的輸入框輸入了包括單引號和雙引號的數(shù)據(jù),以后在通過Select 語句查詢時(shí)可能會出問題。特別在基于WEB方式的系統(tǒng),輸入了單引號,在查詢數(shù)據(jù)記錄時(shí),肯定會出現(xiàn)頁面鏈接錯(cuò)誤(頁面無法鏈接或找不到或鏈接對象錯(cuò)誤)??罩禍y試:在測試數(shù)據(jù)錄入或修改的功能界面時(shí),若不輸入任何東西,系統(tǒng)又沒有設(shè)計(jì)成NOT NULL,則這時(shí),要非常注意其影響。因?yàn)閿?shù)據(jù)可以正常保存,但數(shù)據(jù)表該字段是空值,那么所有與該字段有關(guān)的操作,如:查詢(AND)、計(jì)算(累加、連乘)等,則可能出現(xiàn)數(shù)據(jù)問

15、題(計(jì)算結(jié)果為0,無記錄返回)。對于測試人員首先要檢查系統(tǒng)到底是作為空值,還是作為空串或空字符處理。另外對于允許不輸入任何值的字段,在測試過程中,要檢查是否在界面顯示或打印報(bào)表時(shí),這些字段作為了關(guān)鍵要素或標(biāo)題等情況。空格:在數(shù)據(jù)維護(hù)的功能界面上,輸入數(shù)據(jù)時(shí),要注意是否在輸入位置有空格,首先看系統(tǒng)設(shè)計(jì)時(shí),是怎么考慮的,若系統(tǒng)允許輸入空格,則檢查條件查詢或作為調(diào)用參數(shù)時(shí)的數(shù)據(jù)返回情況;另外檢查程序是否使用了去掉空格的函數(shù)。數(shù)據(jù)校驗(yàn)的不一致:測試時(shí),對于一些編號、編碼、代碼等主鍵或作為查詢或調(diào)用條件的字段,要注意系統(tǒng)對他們的輸入合法性檢查與查詢或調(diào)用條件的要求是否是一致的。特別是對于數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)中沒

16、有特定約束,而由程序進(jìn)行校驗(yàn)控制的情況。分析:數(shù)據(jù)輸入測試的主要目的是保證輸入到系統(tǒng)中數(shù)據(jù)的合法、合理性。我覺得,數(shù)據(jù)輸入過程的檢查是非常重要的,若在編程過程中,不注重?cái)?shù)據(jù)的校驗(yàn)功能,雖然看起來加快了開發(fā)進(jìn)度,但給以后會帶來一些不可預(yù)計(jì)的編程或維護(hù)工作量。2、目錄路徑測試:測試系統(tǒng)中規(guī)定的路徑要求,更改路徑,檢查系統(tǒng)的是否可以正確運(yùn)行及系統(tǒng)的排錯(cuò)功能。測試時(shí),根據(jù)系統(tǒng)設(shè)計(jì)說明書(詳細(xì)設(shè)計(jì))或通過對程序源代碼的熟悉,找出系統(tǒng)運(yùn)行過程中指定的路徑或在運(yùn)行過程中,需要使用者選擇路徑的地方。特意更改路徑(選擇正確的路徑、選擇另外的路徑、輸入不存在的路徑)。檢查系統(tǒng)是否具有路徑上的容錯(cuò)性和靈活性。比如,

17、原則上在程序中,最好不要寫絕對路徑,另外可以提供配置路徑的對話框,若輸入了非法路徑,系統(tǒng)有無提示等。3、 數(shù)據(jù)操作測試:包括數(shù)據(jù)操作測試和用戶界面操作的測試。修改、新增數(shù)據(jù):對于新增和修改數(shù)據(jù),要注重以下幾個(gè)方面的測試。界面上,新增數(shù)據(jù)成功后,數(shù)據(jù)列表是否立即刷新,輸入有錯(cuò)誤時(shí),是否清空錯(cuò)誤的數(shù)據(jù),輸入焦點(diǎn)是否得以控制。在提示信息上,是否有保存成功的提示,輸入有錯(cuò)誤時(shí),提示的錯(cuò)誤信息是否準(zhǔn)確,可讀。數(shù)據(jù)方面,要通過SQL檢查數(shù)據(jù)提交是否正確。刪除數(shù)據(jù):測試刪除記錄時(shí),系統(tǒng)是否有確認(rèn)提示,能否批量刪除,根據(jù)系統(tǒng)詳細(xì)設(shè)計(jì),檢查刪除主表記錄時(shí),在業(yè)務(wù)上,其他相關(guān)表是否相應(yīng)更改。事物的提交與回滾:熟悉

18、C/S模式開發(fā)或數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的人都知道,數(shù)據(jù)庫事物的概念。對于一個(gè)比較復(fù)雜的業(yè)務(wù)邏輯或業(yè)務(wù)上有數(shù)據(jù)一致和完整性要求時(shí),盡量使用事物對數(shù)據(jù)進(jìn)行提交,這樣一旦由于意外原因引起系統(tǒng)或硬件故障時(shí),可以回滾。根據(jù)系統(tǒng)的設(shè)計(jì)要求在測試時(shí),可人為模擬意外故障,來測試系統(tǒng)的數(shù)據(jù)完整性和容錯(cuò)能力。4、工具條和快捷鍵測試:在功能界面測試時(shí),對系統(tǒng)菜單中定義的快捷鍵和菜單工具條中的工具按鈕要測試。主要是有效性和一致性測試。有效性:檢查是否有效,界面有無反應(yīng)。一致性:定義或提示的信息是否與實(shí)際完成的功能一致。5、 操作順序測試按鈕順序測試:在功能界面上,不按照設(shè)計(jì)上或習(xí)慣上的操作順序點(diǎn)擊功能按鈕,看系統(tǒng)有什么反應(yīng);多次、反復(fù)點(diǎn)擊某一按鈕,看系統(tǒng)有什么反應(yīng)。主要是測試系統(tǒng)的控制、校驗(yàn)和容錯(cuò)能力。業(yè)務(wù)邏輯順序:不按照系統(tǒng)的正常業(yè)務(wù)邏輯、流程操作,來測試系統(tǒng)是否控制了業(yè)務(wù)流程的順序。6、按鈕有效性控制測試:主要是測試當(dāng)不具備條件或無實(shí)際意義的情況下,按鈕的“Enabled”屬性。比如:某一業(yè)務(wù)未處理,下一環(huán)節(jié)的功能按鈕則應(yīng)變灰(不可用)。逐條顯示數(shù)據(jù)記錄,當(dāng)游標(biāo)已經(jīng)指到了最后一條時(shí),“下一條”和“末記錄”按鈕則應(yīng)變灰等。7、同時(shí)刻操作測試:對于刪除、修改、增

溫馨提示

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

評論

0/150

提交評論