{eval=Array;=+count(Array);}
軟件測試常見的有黑盒測試和白盒測試兩種。
黑盒測試方法群:等價類劃分、邊界值、因果圖、基路徑法、專家測試法、smoking、場景測試等
白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調(diào)用測試和返回測試,需要結(jié)合等價類和因果圖方法)等。
希望我的答案能幫助你,有任何軟件測試方面的問題都可以來私信我,歡迎交流~
軟件測試產(chǎn)生發(fā)展已達40多年,經(jīng)過長期地實踐,總結(jié)歸納出了一些基本的測試原理與測試特性準則,并被業(yè)界普遍接受和遵循,對測試的設(shè)計、執(zhí)行和 管理均具有工程的指導意義。原理 1:測試可以證明缺陷存在,但不能證明缺陷不存在測試可以證明軟件系統(tǒng)(產(chǎn)品)是失敗的,即說明軟件中有缺陷。但測試不 能證明軟件中沒有缺陷。適當?shù)能浖y試可以減少測試對象中的隱藏缺陷。即使 在測試中沒有發(fā)現(xiàn)失效,也不能證明其沒有缺陷。原理 2:窮盡測試是不可能的測試若考慮所有可能的輸入值及其組合,并結(jié)合所有的前置條件進行窮盡測 試是不可能的。實際測試過程中,對軟件測試基本上是抽樣測試。因此,必須根 據(jù)風險和優(yōu)先級,控制測試工作量。原理 3:測試活動應盡早開始在軟件生命周期中,測試活動應盡早實施,,并聚焦于定義的目標上,這樣 可以盡早的發(fā)現(xiàn)缺陷。原理 4:缺陷集群性在通常情況下,缺陷并不是平均而是集群分布的,大多數(shù)的缺陷只存在于測 試對象的極小部分中。因此,如在一個地方發(fā)現(xiàn)了較多缺陷,通常在附近會有更 多的缺陷,這就是所謂的缺陷集群性,也就經(jīng)常所說的‘8/2 現(xiàn)象’,80%的缺 陷集中在 20%的程序模塊中。因此,在測試中,應機動靈活地應用這個原理。原理 5:殺蟲劑悖論若同樣的測試用例被一再重復執(zhí)行,則會減少測試的有效性。先前沒有發(fā)現(xiàn)的缺陷反復使用同樣的測試用例也不會被重新發(fā)現(xiàn)。因此,為了維護測試的有效 性,戰(zhàn)勝這種“抗藥性”,應對測試用例進行修正或更新。這樣軟件中未被測試 過的部分或先前沒有被使用過的輸入組合會被重新執(zhí)行,從而發(fā)現(xiàn)更多的缺陷。原理 6:測試依賴于測試內(nèi)容測試必須與應用系統(tǒng)的運行環(huán)境及使用中固有的風險相適應。因此,沒有兩個系統(tǒng)可以完全相同的方式進行測試。對于每個軟件系統(tǒng),測試出口準則等應依據(jù)其使用的環(huán)境分別量體定制。例如,對安全起關(guān)鍵作用的系統(tǒng)與一個電商應用系統(tǒng)所要求的測試是不盡相同的。原理 7:沒有失效就是有用的系統(tǒng)是一種謬論測試找到了導致失效的 Bug、并修正了缺陷,并不能保證整個系統(tǒng)達到了用 戶的預期要求和需要。因此說,沒有發(fā)現(xiàn)失效就是有用的系統(tǒng)是一種謬論。
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ū)動測試,把測試對象當做看不見的黑盒,在完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程的情況下,測試者僅依據(jù)程序功能的需求規(guī)范考慮,確定測試用例和推斷測試結(jié)果的正確性,它是站在使用軟件或程序的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應關(guān)系出發(fā)進行的測試。
(3)灰盒測試:是一種綜合測試法,它將“黑盒”測試與“白盒”測試結(jié)合在一起,是基于程序運行時的外部表現(xiàn)又結(jié)合內(nèi)部邏輯結(jié)構(gòu)來設(shè)計用例,執(zhí)行程序并采集路徑執(zhí)行信息和外部用戶接口結(jié)果的測試技術(shù)。
2、從是否執(zhí)行代碼看
(1)靜態(tài)測試:指不運行被測程序本身,僅通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性。
(2)動態(tài)測試:是指通過運行被測程序,檢查運行結(jié)果與預期結(jié)果的差異,并分析運行效率、正確性和健壯性等性能指標。
3、從開發(fā)過程級別看
(1)單元測試:又稱模塊測試,是針對軟件設(shè)計的最小單位----程序模塊或功能模塊,進行正確性檢驗的測試工作。其目的在于檢驗程序各模塊是否存在各種差錯,是否能正確地實現(xiàn)了其功能,滿足其性能和接口要求。
(2)集成測試:又叫組裝測試或聯(lián)合,是單元測試的多級擴展,是在單元測試的基礎(chǔ)上進行的一種有序測試。旨在檢驗軟件單元之間的接口關(guān)系,以期望通過測試發(fā)現(xiàn)各軟件單元接口之間存在的問題,最終把經(jīng)過測試的單元組成符合設(shè)計要求的軟件。
(3)系統(tǒng)測試:是為判斷系統(tǒng)是否符合要求而對集成的軟、硬件系統(tǒng)進行的測試活動、它是將已經(jīng)集成好的軟件系統(tǒng),作為基于整個計算機系統(tǒng)的一個元素,與計算機硬件、外設(shè)、某些支持軟件、人員、數(shù)據(jù)等其他系統(tǒng)元素結(jié)合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行一系列的組裝測試和確認測試。
在系統(tǒng)測試中,對于具體的測試類型有:
(1)功能測試:對軟件需求規(guī)格說明書中的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(2)性能測試:對軟件需求規(guī)格說明書的功能需求逐項進行的測試,以驗證功能是否滿足要求。
(3)接口測試:對軟件需求規(guī)格說明中的接口需求逐項進行的測試。
(4)人機交互界面測試:對所有人機交互界面提供的操作和顯示界面進行的測試,以檢驗是否滿足用戶的需求。
(5)強度測試:強制軟件運行在異常乃至發(fā)生故障的情況下(設(shè)計的極限狀態(tài)到超出極限),驗證軟件可以運行到何種程序的測試。
(6)余量測試:對軟件是否達到規(guī)格說明中要求的余量的測試。
(7)安全性測試:檢驗軟件中已存在的安全性、安全保密性措施是否有效的測試,
(8)可靠性測試:在真實的或仿真的環(huán)境中,為做出軟件可靠性估計而對軟件進行的功能(其輸入覆蓋和環(huán)境覆蓋一般大于普通的功能測試)
(9)恢復性測試:對有恢復或重置功能的軟件的每一類導致恢復或重置的情況,逐一進行的測試。
(10)邊界測試:對軟件處在邊界或端點情況下運行狀態(tài)的測試。
(11)數(shù)據(jù)處理測試:對完成專門數(shù)據(jù)處理功能所進行的測試。
(12)安裝性測試:對安裝過程是否符合安裝規(guī)程的測試,以發(fā)現(xiàn)安裝過程中的錯誤。
(13)容量測試:檢驗軟件的能力最高能達到什么程度的測試。
(14)互操作性測試:為驗證不同軟件之間的互操作能力而進行的測試。
(15)敏感性測試:為發(fā)現(xiàn)在有效輸入類中可能引起某種不穩(wěn)定性或不正常處理的某些數(shù)據(jù)的組合而進行的測試。
(16)標準符合性測試:驗證軟件與相關(guān)國家標準或規(guī)范(如軍用標準、國家標準、行業(yè)標準及國際標準)一致性的測試。
(17)兼容性測試:驗證軟件在規(guī)定條件下與若干個實體共同使用或?qū)崿F(xiàn)數(shù)據(jù)格式轉(zhuǎn)換時能滿足有關(guān)要求能力的測試。
(18)中文本地化測試:驗證軟件在不降低原有能力的條件下,處理中文能力的測試。
4、從執(zhí)行過程是否需要人工干預來看
(1)手工測試:就是測試人員按照事先為覆蓋被測軟件需求而編寫的測試用例,根據(jù)測試大綱中所描述的測試步驟和方法,手工地一個一個地輸 入執(zhí)行,包括與被測軟件進行交互(如輸入測試數(shù)據(jù)、記錄測試結(jié)果等),然后觀察測試結(jié)果,看被測程序是否存在問題,或在執(zhí)行過程中是否會有一場發(fā)生,屬于比較原始但是必須執(zhí)行的一個步驟。
(2)自動化測試:實際上是將大量的重復性的測試工作交給計算機去完成,通常是使用自動化測試工具來模擬手動測試步驟,執(zhí)行用某種程序設(shè)計語言編寫的過程(全自動測試就是指在自動測試過程中,不需要人工干預,由程序自動完成測試的全過程;半自動測試就是指在自動測試過程中,需要手動輸入測試用例或選擇測試路徑,再由自動測試程序按照人工指定的要求完成自動測試)
5、從測試實施組織看
(1)開發(fā)測試:開發(fā)人員進行的測試
(2)用戶測試:用戶方進行的測試
(3)第三方測試:有別于開發(fā)人員或用戶進行的測試,由專業(yè)的第三方承擔的測試,目的是為了保證測試工作的客觀性
6、從測試所處的環(huán)境看
(1)阿爾法測試:是由一個用戶在開發(fā)環(huán)境下進行的測試,也可以是公司內(nèi)部的用戶在模擬實際操作環(huán)境下進行的測試
(2)貝塔測試:是用戶公司組織各方面的典型終端用戶在日常工作中實際使用貝塔版本,并要求用戶報告
一個軟件項目就好比一部復雜的汽車,有很多零件,當每個零件生產(chǎn)完成后,就要測試零件是否存在質(zhì)量問題。 零件組成復雜的汽車后,我們還要測試汽車。比如著名的中保研,測試剎車,測試氣囊,測試防撞....,顧客從4s店購買汽車,要帶懂車的人幫忙檢查成品車,其實也是一種測試。軟件也是一樣,除了有測試零件的單元測試,還有集成測試、確認測試、系統(tǒng)測試、驗收測試等等....,看下圖:
單元測試是針對軟件設(shè)計中的最小單位-程序模塊,進行正確性檢查的測試工作。 單元在軟件代碼中指一個函數(shù)或一個類,在圖形化的軟件中,單元一般指一個窗口,一個菜單。
當軟件項目中相關(guān)單元都開發(fā)完成并完成單元測試后只能確保每個獨立單元沒有問題, 但多個單元整合成完整功能時, 需要再次進行質(zhì)量驗證。這個步驟就是集成測試。
集成測試又叫組裝測試,通常在單元測試的基礎(chǔ)上,將所有程序模塊進行有序的、遞增的測試。重點測試不同模塊的接口部分。
無論單元測試還是集成測試,都是根據(jù)不同的測試階段劃分的。一個項目首先要進行的就是單元測試,單元測試完成后進行集成測試。 集成測試完成后還有系統(tǒng)測試和驗收測試等等才能完成軟件項目的最終驗收和交付。
在具體的測試執(zhí)行過程中又分為是否查看源代碼的測試方式, 不查看源代碼的測試方式為黑盒測試,查看源代碼的測試方式為白盒測試。
黑盒測試是指測試的時候完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性,注重于測試軟件的功能需求,只關(guān)心軟件的輸入數(shù)據(jù)和 輸出數(shù)據(jù)。
白盒測試是指把軟件的源代碼打開,去研究里面的程序結(jié)構(gòu)和具體編程實現(xiàn)方式。
除了黑盒測試與白盒測試,還有介于兩者之間的灰盒測試。
灰盒測試: 是介于白盒測試與黑盒測試之間的一種測試,灰盒測試多用于集成測試階段,不僅關(guān)注輸出、輸入的正確性,同時也關(guān)注程序內(nèi)部的情況。
軟件測試工程師大多數(shù)時候在做黑盒測試。 在一些特殊場景也需要輔以灰盒測試, 但白盒測試由于需要對編程非常了解,所以軟件測試工程師涉及的相對較少。
可私信我獲取教程哦
測試方法分為兩大類,一類是黑盒測試,方法包括:邊界值分析法,等價類劃分法,因果圖,判定表,正交表,錯誤推算法等,還有一類是白盒測試方法,包括:語句覆蓋,判定覆蓋,條件覆蓋,判定-條件覆蓋,多重條件覆蓋,路徑覆蓋
軟件測試的方法根據(jù)軟件工程的組織和實現(xiàn)方式,有很大差別,有些是比較技術(shù)化的方法,有些則是工程方法,主要分為:
黑盒測試方法群:等價類劃分、邊界值、因果圖、基路徑法、專家測試法、smoking、場景測試等
白盒測試方法群:同行評審、需求審查、代碼審查、接口測試(調(diào)用測試和返回測試,需要結(jié)合等價類和因果圖方法)等。
當在單元層面黑盒而在集成層面白盒時,基本上兩類方法就會有結(jié)合了,就會出現(xiàn)習慣上說的灰盒測試(說實話,不做到純產(chǎn)品級開發(fā),基本上都是用的灰盒測試)。
按結(jié)構(gòu)分:黑盒測試,白盒測試
其中黑盒分為功能測試和性能測試
按運行程序分:靜態(tài)測試,動態(tài)測試
按階段分:單元測試,集成測試,系統(tǒng)測試,驗收測試
其他測試類型;回歸測試,冒煙測試,隨機測試
關(guān)注小優(yōu)了解更多IT咨詢~
10
回答7
回答0
回答0
回答8
回答0
回答0
回答0
回答0
回答0
回答