專業(yè)CMA\CNAS第三方軟件測試報告服務(wù)商

全國服務(wù)熱線:18684048962(微信同號)

軟件測試全生命周期全流程解析

60
發(fā)表時間:2023-07-03 09:15

一、軟件測試的基本概念

1.測試是軟件生存周期中十分重要的一個過程,是產(chǎn)品發(fā)布、提交給最終用戶前的穩(wěn)定化階段。

2.軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序內(nèi)部結(jié)構(gòu)而精心設(shè)計的一批

二、軟件測試的目的

1.基于不同的立場,存在著兩種完全不同的測試目的。

2.從用戶的角度出發(fā),普遍希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可接受該產(chǎn)品。

3.從軟件開發(fā)者的角度出發(fā),則希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。換言之,測試的目的是想以最少的時間和人力,系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。

4.測試的目標(biāo)是能夠以耗費最少時間與最小工作量找出軟件系統(tǒng)中潛在的各種錯誤與缺陷。另外,我們應(yīng)該認識到:測試只能證明程序中錯誤的存在,但不能證明程序中沒有錯誤。因為即使實施了最嚴格的測試,仍然可能還有尚未被發(fā)現(xiàn)的錯誤或缺陷存在于程序當(dāng)中,因而測試不能證明程序沒有錯誤,但可能查出程序中的錯誤。

三、軟件測試的原則

1.盡早地并不斷地進行軟件測試。

2.程序員或程序設(shè)計機構(gòu)應(yīng)避免測試自己設(shè)計的程序。

3.測試用例中不僅要有輸入數(shù)據(jù),還要有與之對應(yīng)的預(yù)期結(jié)果。

4.測試用例的設(shè)計不僅要有合法的輸入數(shù)據(jù),還要有非法的輸入數(shù)據(jù)。

5.在對程序修改之后要進行回歸測試。

6.程序中尚未發(fā)現(xiàn)的錯誤的數(shù)量通常與該程序中已發(fā)現(xiàn)的錯誤的數(shù)量成正比。

7.妥善保留測試計劃、全部測試用例、出錯統(tǒng)計和最終分析報告,并把它們作為軟件的組成部分之一,為維護提供方便。

8.應(yīng)當(dāng)對每一個測試結(jié)果作全面檢查。

9.嚴格執(zhí)行測試計劃,排除測試的隨意性。測試計劃內(nèi)容應(yīng)包括:所測軟件的功能、輸入和輸出、測試內(nèi)容、各項測試的進度安排、資源要求、測試資料、測試工具、測試用例的選擇、測試的控制方式和過程、系統(tǒng)組裝方式、跟蹤規(guī)程、調(diào)試規(guī)程、回歸測試的規(guī)定以及評價標(biāo)準(zhǔn)等。

三、軟件測試的對象

1.軟件測試并不等于程序測試。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個期間。

2.需求分析、概要設(shè)計、詳細設(shè)計以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細設(shè)計規(guī)格說明以及源程序,都應(yīng)成為軟件測試的對象。

四、軟件測試的對象

1.從測試方法的角度可以分為手工測試和自動化測試:1)手工測試:不使用任何測試工具,根據(jù)事先設(shè)計好的測試用例來運行系統(tǒng),測試各功能模塊。2)自動化測試:利用測試工具,通過編寫測試腳本和輸入測試數(shù)據(jù),自動運行測試程序。

2.兩種常用的測試方法:黑盒測試、白盒測試

五、黑盒測試

1.這種方法是把測試對象看作一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。

2.黑盒測試方法是根據(jù)被測程序功能來進行測試,所以通常又叫做功能測試或數(shù)據(jù)驅(qū)動測試

3.黑盒測試方法是在程序接口上進行測試,主要是為了發(fā)現(xiàn)以下錯誤:1)是否有不正確或遺漏了的功能2)在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?3)是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?4)性能上是否能夠滿足要求?5)是否有初始化或終止性錯誤?6)用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。但這是不可能的。

六、黑盒測試的測試用例設(shè)計

1.等價類劃分

等價類劃分是一種典型的黑盒測試方法,使用這一方法時, 完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例。等價類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域 ,劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)作為測試用例。使用這一方法設(shè)計測試用例要經(jīng)歷劃分等價類(列出等價類表)和選取測試用例兩步。

等價類是指某個輸入域的子集合。在該子集合中, 各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。測試某等價類的代表值就等價于對這一類其他值的測試。等價類的劃分有兩種不同的情況:①有效等價類:是指對于程序的規(guī)格說明來說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。②無效等價類:是指對于程序的規(guī)格說明來說,是不合理的,無意義的輸入數(shù)據(jù)構(gòu)成的集合。在設(shè)計測試用例時,要同時考慮有效等價類和無效等價類的設(shè)計。

2.邊界值分析

1.邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補充。

2,從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。

3.比如,在做三角形計算時,要輸入三角形的三個邊長:A、B和C。 我們應(yīng)注意到這三個數(shù)值應(yīng)當(dāng)滿足A>0、B>0、C>0、 A+B>C、A+C>B、B+C>A,才能構(gòu)成三角形。但如果把六個不等式中的任何一個大于號“>”錯寫成大于等于號“≥”,那就不能構(gòu)成 三角形。問題恰恰出現(xiàn)在容易被疏忽的邊界附近。

4.這里所說的邊界是指,相當(dāng)于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。

5.使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。 應(yīng)當(dāng)大于等于最大值,小于等于最小值作為邊界值進行測試。

3.錯誤推測法

1.人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。這就是錯誤推測法。

2.錯誤推測法的基本想法是: 列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。

4,因果圖

1.因果圖的適用范圍1)如果在測試時必須考慮輸入條件的各種組合,可使用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來設(shè)計測試用例,這就需要利用因果圖。2)因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。

七、軟件測試的策略

1.大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由許多模塊組成。大型軟件系統(tǒng)的測試步驟基本由以下四個步驟組成:單元測試、集成測試(組裝測試)、確認測試和系統(tǒng)測試。

2.開始是單元測試,集中對用源代碼實現(xiàn)的每一個程序單元進行測試,檢查各個程序模塊是否正確地實現(xiàn)了規(guī)定的功能。組裝測試把已測試過的模塊組裝起來 ,主要對與設(shè)計相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)造進行測試。

3.確認測試則是要檢查已實現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。

4.系統(tǒng)測試 把已經(jīng)經(jīng)過確認的軟件納入實際運行環(huán)境中,與其它系統(tǒng)成分組合在一起進行測試。

七、測試策略詳解

1.單元測試 (Unit Testing)

1)單元測試又稱模塊測試, 是針對軟件設(shè)計的最小單位 ── 程序模塊 ,進行正確性檢驗的測試工作。

2)其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。

3)單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例 。

4)多個模塊可以平行地獨立進行單元測試。

2.組裝測試( Integrated Testing)

1)組裝測試(集成測試、聯(lián)合測試)

2)通常,在單元測試的基礎(chǔ)上,需要將所有模塊按照設(shè)計要求組裝成為系統(tǒng)。這時需要考慮的問題是: 在把各個模塊連接起來的時候,穿越模塊接口的數(shù)據(jù)是否會丟失;

3)一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利的影響;

4)各個子功能組合起來,能否達到預(yù)期要求的父功能;

5)全局數(shù)據(jù)結(jié)構(gòu)是否有問題;

6)單個模塊的誤差累積起來,是否會放大,從而達到不能接受的程度。

7)在單元測試的同時可進行組裝測,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問題,最終構(gòu)成要求的軟件系統(tǒng)。

3.確認測試( Validation Testing)

1)確認測試又稱有效性測試

2)任務(wù)是驗證軟件的功能和性能及其它特性是否與用戶的要求一致。

3)對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認測試的基礎(chǔ)。

4)主要由使用用戶參加測試,檢驗軟件規(guī)格說明的技術(shù)標(biāo)準(zhǔn)的符合程度,是保證軟件質(zhì)量的最后關(guān)鍵環(huán)節(jié).

5)進行有效性測試(黑盒測試)有效性測試是在模擬的環(huán)境(可能就是開發(fā)的環(huán)境) 下,運用黑盒測試的方法,驗證被測軟件是否滿足需求規(guī)格說明書列出的需求。首先制定測試計劃,規(guī)定要做測試的種類。還需要制定一組測試步驟,描述具體的測試用例。通過實施預(yù)定的測試計劃和測試步驟,確定軟件的特性是否與需求相符;所有的文檔都是正確且便于使用;?同時,對其他軟件需求,例如可移植性、兼容性、出錯自動恢復(fù)、可維護 性等,也都要進行測試在全部軟件測試的測試用例運行完后,所有的測試結(jié)果可以分為兩類:①測試結(jié)果與預(yù)期的結(jié)果相符。這說明軟件的這部分功能或性能特征與需求規(guī)格說明書相符合,從而這部分程序被接受。②測試結(jié)果與預(yù)期的結(jié)果不符。這說明軟件的這部分功能或性能特征與需求規(guī)格說明不一致,因此要為它提交一份問題報告。

6)軟件配置復(fù)查軟件配置復(fù)查的目的是保證:1.軟件配置的所有成分都齊全;2.各方面的質(zhì)量都符合要求;具有維護階段所必需的細節(jié);而且已經(jīng)編排好分類的目錄。應(yīng)當(dāng)嚴格遵守用戶手冊和操作手冊中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。

4.系統(tǒng)測試(System Testing)

1.系統(tǒng)測試,是將通過確認測試的軟件,作為整個基于計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起, 在實際運行環(huán)境下,對計算機系統(tǒng)進行一系列的組裝測試和確認測試。

2.系統(tǒng)測試的目的在于通過與系統(tǒng)的需求定義作比較, 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。

3.在系統(tǒng)測試實施之前,軟件工程師應(yīng)完成以下工作:為測試軟件系統(tǒng)的輸入信息設(shè)計出錯處理通路;設(shè)計測試用例,模擬錯誤數(shù)據(jù)和軟件界面可能發(fā)生的錯誤,記錄測試結(jié)果,為系統(tǒng)測試提供經(jīng)驗和幫助;參與系統(tǒng)測試的規(guī)劃和設(shè)計,保證軟件測試的合理性。

5.驗收測試( Acceptance Testing)

1.在通過了系統(tǒng)的有效性測試及軟件配置審查之后,就應(yīng)開始系統(tǒng)的驗收測試。

2.驗收測試是以用戶為主的測試。軟件開發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。

3.由用戶參加設(shè)計測試用例,使用生產(chǎn)中的實際數(shù)據(jù)進行測試。

4.在測試過程中,除了考慮軟件的功能和性能外,還應(yīng)對軟件的可移植性、兼容性、可維護性、錯誤的恢復(fù)功能等進行確認。

5.確認測試應(yīng)交付的文檔有:確認測試分析報告、最終的用戶手冊和操作手冊、項目開發(fā)總結(jié)報告。

八、軟件測試的過程

1.測試過程說明:

(1) 軟件配置:指被測試軟件的文件,如軟件需求規(guī)格說明書、軟件設(shè)計說明書和源程序清單等文檔。

(2) 測試配置:指測試方案、測試計劃、測試用例、測試驅(qū)動程序等文檔。

(3) 測試工具:是為了提高測試效率而設(shè)計的支持軟件測試的軟件。例如,測試數(shù)據(jù)自動生成程序、靜態(tài)分析程序、動態(tài)分析程序、測試結(jié)果分析程序以及驅(qū)動測試的測試數(shù)據(jù)庫等。

(4) 測試評價:由測試出的錯誤跡象,分析、找出錯誤的原因和位置,以便糾正和積累軟件設(shè)計的經(jīng)驗。

(5) 糾錯(調(diào)試):是指找到出錯的原因與位置并糾錯,包括修正文件直到軟件正確為止。糾錯本身所具有的不確定性,常常難以準(zhǔn)確地安排測試日程表。

(6) 可靠性模型:通過對測試出的軟件出錯率的分析,建立模型,得出可靠的數(shù)據(jù),指導(dǎo)軟件的設(shè)計與維護。

九、項目測試的基本流程

1.項目測試啟動:項目立項后,在測試配置庫中創(chuàng)建項目。

2.測試計劃:系統(tǒng)詳細設(shè)計后,制定測試計劃,準(zhǔn)備測試資源。

3.設(shè)計測試用例,主要是與業(yè)務(wù)相關(guān)的測試用例。

4.實施功能模塊測試,搭建運行或開發(fā)環(huán)境,采用功能模塊測試表的方式,開發(fā)人員在功能模塊測試表中更新進度狀態(tài),測試人員在該表中描述測試進度。形成測試錯誤列表,該表對每個錯誤都有相應(yīng)的測試記錄與之鏈接,在測試記錄中,詳細描述錯誤的情況。在測試記錄中還要包括修正信息和驗證信息。

5.錯誤關(guān)閉后,測試人員維護測試記錄表和更新測試用例庫和問題庫,作為經(jīng)驗積累。

6.項目在結(jié)項時,測試人員進行項目完工驗收測試,填寫項目測試報告。該測試報告可作為用戶驗收的輸入工件。

十、測試過程管理

十一、測試用例的設(shè)計

1.在編寫測試用例之前需要準(zhǔn)備以下幾個編寫的依據(jù):①需求說明以及相關(guān)文檔;②相關(guān)的設(shè)計說明(概要設(shè)計,詳細設(shè)計等);③與開發(fā)組交流對需求理解的記錄(可以是開發(fā)人員的一個解釋);④已經(jīng)基本成型的UI(可以有針對性地補充一些用例)。⑤編寫測試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。

2.測試用例可以分為基本事件、備選事件和異常事件。

3.軟件測試常用的設(shè)計測試用例的基本方法有:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、邏輯覆蓋法等。視軟件的不同性質(zhì)采用不同的方法。如何靈活運用各種基本方法來設(shè)計完整的測試用例,并最終實現(xiàn)暴露隱藏的缺陷,則要憑測試設(shè)計人員的豐富經(jīng)驗和精心設(shè)計。

4.測試用例的評審由開發(fā)人員和測試人員共同進行評審,目的是審查編寫的測試用例是否覆蓋了整個項目的需求點。

5.測試用例的修改更新

6.測試用例的管理測試管理軟件的主要功能有三個:①能測試用例文檔的關(guān)鍵內(nèi)容;②可供測試實施時及時輸入測試情況;③最終實現(xiàn)自動生成測試結(jié)果文檔。


標(biāo)簽:軟件測試報告、測試用例


公司地址:成都市天府新區(qū)萬安街道寧安東路198號
聯(lián)系人:王經(jīng)理
聯(lián)系電話:18684048962
聯(lián)系我們
成都柯信優(yōu)創(chuàng)信息技術(shù)服務(wù)有限公司
客服微信
微信公眾號
我們的客戶
丰原市| 来宾市| 弥勒县| 竹北市| 个旧市| 林芝县| 通化县| 长兴县| 宿州市| 临泽县| 烟台市| 水城县| 东乡族自治县| 仙居县| 黎城县| 苏尼特右旗| 新密市| 宜章县|