更多軟件測(cè)試知識(shí)關(guān)注:Teamin
有句話是這么說的:能動(dòng)手就別嗶嗶酥郭,尤其是在工作節(jié)奏堪比跑馬的今天,大家都推崇實(shí)干精神愿吹,能解決問題就好不从,去他的理論。但是無(wú)可否認(rèn)的是犁跪,良好的理論素養(yǎng)無(wú)論是解決工作中遇到的問題椿息,還是未來(lái)的職業(yè)發(fā)展,都幫助甚大坷衍。本文整理匯總了軟件測(cè)試行業(yè)中常見的一些測(cè)試?yán)碚撉抻牛┐蠹覅⒖肌?br>
1、軟件測(cè)試按照測(cè)試分類有:黑盒測(cè)試和白盒測(cè)試枫耳。
黑盒測(cè)試
黑盒測(cè)試也稱功能測(cè)試乏矾,它是通過測(cè)試來(lái)檢測(cè)每個(gè)功能是否都能正常使用。在測(cè)試中,把程序看作一個(gè)不能打開的黑盒子妻熊,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下夸浅,在程序接口進(jìn)行測(cè)試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用扔役,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息帆喇。黑盒測(cè)試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)亿胸,主要針對(duì)軟件界面和軟件功能進(jìn)行測(cè)試坯钦。
黑盒測(cè)試是以用戶的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對(duì)應(yīng)關(guān)系出發(fā)進(jìn)行測(cè)試的侈玄。很明顯婉刀,如果外部特性本身設(shè)計(jì)有問題或規(guī)格說明的規(guī)定有誤,用黑盒測(cè)試方法是發(fā)現(xiàn)不了的序仙。
新人入行基本上都是采用黑盒測(cè)試的方法來(lái)入門的突颊。
白盒測(cè)試
白盒測(cè)試又稱結(jié)構(gòu)測(cè)試、透明盒測(cè)試潘悼、邏輯驅(qū)動(dòng)測(cè)試或基于代碼的測(cè)試律秃。白盒測(cè)試是一種測(cè)試用例設(shè)計(jì)方法,盒子指的是被測(cè)試的軟件治唤,白盒指的是盒子是可視的棒动,你清楚盒子內(nèi)部的東西以及里面是如何運(yùn)作的。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)宾添、對(duì)所有邏輯路徑進(jìn)行測(cè)試船惨。"白盒"法是窮舉路徑測(cè)試。在使用這一方案時(shí)缕陕,測(cè)試者必須檢查程序的內(nèi)部結(jié)構(gòu)粱锐,從檢查程序的邏輯著手,得出測(cè)試數(shù)據(jù)扛邑。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字卜范。
咱們以空調(diào)為例來(lái)看什么是黑盒測(cè)試,什么是白盒測(cè)試:
當(dāng)一臺(tái)新的空調(diào)組裝完成鹿榜,質(zhì)監(jiān)部門需要對(duì)這臺(tái)空調(diào)的各個(gè)功能進(jìn)行測(cè)試海雪,比如開關(guān)機(jī)是否正常,制冷制熱功能是否正常舱殿,定時(shí)功能是否正常奥裸,等等,并將測(cè)試的結(jié)果一一記錄下來(lái)沪袭,如果有問題湾宙,及時(shí)反饋給設(shè)計(jì)部來(lái)解決樟氢,這就是黑盒測(cè)試的范疇。
對(duì)于空調(diào)的設(shè)計(jì)師們侠鳄,他們的測(cè)試可能就會(huì)更復(fù)雜一些埠啃,除了對(duì)空調(diào)的各項(xiàng)功能進(jìn)行測(cè)試之外,還要從空調(diào)的內(nèi)在原理來(lái)分析伟恶,他們甚至?xí)櫩照{(diào)的內(nèi)部實(shí)現(xiàn)代碼碴开,分析空調(diào)的各項(xiàng)數(shù)據(jù)狀態(tài)來(lái)看是否正常運(yùn)行,而不只是從表面功能來(lái)看博秫,這就是白盒測(cè)試的范疇潦牛。
2、按照測(cè)試的階段可以分為:?jiǎn)卧獪y(cè)試挡育、集成測(cè)試巴碗、確認(rèn)測(cè)試和系統(tǒng)測(cè)試及驗(yàn)收測(cè)試
單元測(cè)試
單元測(cè)試(unit testing),是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證即寒。對(duì)于單元測(cè)試中單元的含義橡淆,一般來(lái)說,要根據(jù)實(shí)際情況去判定其具體含義母赵,如C語(yǔ)言中單元指一個(gè)函數(shù)明垢,Java里單元指一個(gè)類,圖形化的軟件中可以指一個(gè)窗口或一個(gè)菜單等市咽。總的來(lái)說抵蚊,單元就是人為規(guī)定的最小的被測(cè)功能模塊施绎。單元測(cè)試是在軟件開發(fā)過程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試贞绳。
在一種傳統(tǒng)的結(jié)構(gòu)化編程語(yǔ)言中谷醉,比如C,要進(jìn)行測(cè)試的單元一般是函數(shù)或子過程冈闭。在像C++這樣的面向?qū)ο蟮恼Z(yǔ)言中俱尼,要進(jìn)行測(cè)試的基本單元是類。對(duì)Ada語(yǔ)言來(lái)說萎攒,開發(fā)人員可以選擇是在獨(dú)立的過程和函數(shù)遇八,還是在Ada包的級(jí)別上進(jìn)行單元測(cè)試。單元測(cè)試的原則同樣被擴(kuò)展到第四代語(yǔ)言(4GL)的開發(fā)中耍休,在這里基本單元被典型地劃分為一個(gè)菜單或顯示界面刃永。
經(jīng)常與單元測(cè)試聯(lián)系起來(lái)的另外一些開發(fā)活動(dòng)包括代碼走讀(Code review),靜態(tài)分析(Static analysis)和動(dòng)態(tài)分析(Dynamic analysis)羊精。靜態(tài)分析就是對(duì)軟件的源代碼進(jìn)行研讀斯够,查找錯(cuò)誤或收集一些度量數(shù)據(jù),并不需要對(duì)代碼進(jìn)行編譯和執(zhí)行。動(dòng)態(tài)分析就是通過觀察軟件運(yùn)行時(shí)的動(dòng)作读规,來(lái)提供執(zhí)行跟蹤抓督,時(shí)間分析,以及測(cè)試覆蓋度方面的信息束亏。
集成測(cè)試
集成測(cè)試铃在,也叫組裝測(cè)試或聯(lián)合測(cè)試。在單元測(cè)試的基礎(chǔ)上枪汪,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng)涌穆,進(jìn)行集成測(cè)試。
實(shí)踐表明雀久,一些模塊雖然能夠單獨(dú)地工作宿稀,但并不能保證連接起來(lái)也能正常的工作。一些局部反映不出來(lái)的問題赖捌,在全局上很可能暴露出來(lái)祝沸。
確認(rèn)測(cè)試
確認(rèn)測(cè)試的目的是向未來(lái)的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后越庇,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng)罩锐,接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性卤唉,這就是確認(rèn)測(cè)試的任務(wù)涩惑,即軟件的功能和性能如同用戶所合理期待的那樣。
系統(tǒng)測(cè)試
系統(tǒng)測(cè)試桑驱,英文是System Testing竭恬。是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件熬的、外設(shè)痊硕、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測(cè)試和確認(rèn)測(cè)試押框,系統(tǒng)測(cè)試是針對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試岔绸,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方橡伞,從而提出更加完善的方案盒揉。系統(tǒng)測(cè)試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正兑徘。是基于系統(tǒng)整體需求說明書的黑盒類測(cè)試预烙,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。對(duì)象不僅僅包括需測(cè)試的軟件道媚,還要包含軟件所依賴的硬件扁掸、外設(shè)甚至包括某些數(shù)據(jù)翘县、某些支持軟件及其接口等。
驗(yàn)收測(cè)試
驗(yàn)收測(cè)試是部署軟件之前的最后一個(gè)測(cè)試操作谴分。在軟件產(chǎn)品完成了單元測(cè)試锈麸、集成測(cè)試和系統(tǒng)測(cè)試之后,產(chǎn)品發(fā)布之前所進(jìn)行的軟件測(cè)試活動(dòng)牺蹄。它是技術(shù)測(cè)試的最后一個(gè)階段忘伞,也稱為交付測(cè)試。驗(yàn)收測(cè)試的目的是確保軟件準(zhǔn)備就緒沙兰,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)氓奈。
驗(yàn)收測(cè)試是向未來(lái)的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后鼎天,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng)舀奶,接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性斋射,這就是驗(yàn)收測(cè)試的任務(wù)育勺,即軟件的功能和性能如同用戶所合理期待的那樣。
驗(yàn)收測(cè)試罗岖,系統(tǒng)開發(fā)生命周期方法論的一個(gè)階段涧至,這時(shí)相關(guān)的用戶和獨(dú)立測(cè)試人員根據(jù)測(cè)試計(jì)劃和結(jié)果對(duì)系統(tǒng)進(jìn)行測(cè)試和接收。它讓系統(tǒng)用戶決定是否接收系統(tǒng)桑包。它是一項(xiàng)確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測(cè)試南蓬。這是管理性和防御性控制。
在工程及其他相關(guān)領(lǐng)域中哑了,驗(yàn)收測(cè)試是指確認(rèn)一系統(tǒng)是否符合設(shè)計(jì)規(guī)格或契約之需求內(nèi)容的測(cè)試赘方,可能會(huì)包括化學(xué)測(cè)試、物理測(cè)試或是性能測(cè)試垒手。在系統(tǒng)工程中驗(yàn)收測(cè)試可能包括在系統(tǒng)(例如一套軟件系統(tǒng)、許多機(jī)械零件或是一批化學(xué)制品)交付前的黑箱測(cè)試倒信。軟件開發(fā)者常會(huì)將系統(tǒng)開發(fā)者進(jìn)行的驗(yàn)收測(cè)試和客戶在接受產(chǎn)品前進(jìn)行的驗(yàn)收測(cè)試分開科贬。后者一般會(huì)稱為使用者驗(yàn)收測(cè)試、終端客戶測(cè)試鳖悠、實(shí)機(jī)(驗(yàn)收)測(cè)試榜掌、現(xiàn)場(chǎng)(驗(yàn)收)測(cè)試。在進(jìn)行主要測(cè)試程序之前乘综,常用冒煙測(cè)試作為一個(gè)此階段的驗(yàn)收測(cè)試憎账。
3、其他的測(cè)試?yán)碚撨€有:自動(dòng)化測(cè)試卡辰、回歸測(cè)試胞皱、冒煙測(cè)試邪意、性能測(cè)試
自動(dòng)化測(cè)試
一般是指軟件測(cè)試的自動(dòng)化,軟件測(cè)試就是在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序反砌,評(píng)估運(yùn)行結(jié)果雾鬼,預(yù)先條件應(yīng)包括正常條件和異常條件。通常宴树,在設(shè)計(jì)了測(cè)試用例并通過評(píng)審之后策菜,由測(cè)試人員根據(jù)測(cè)試用例中描述的規(guī)程一步步執(zhí)行測(cè)試,得到實(shí)際結(jié)果與期望結(jié)果的比較酒贬。在此過程中又憨,為了節(jié)省人力、時(shí)間或硬件資源锭吨,提高測(cè)試效率蠢莺,便引入了自動(dòng)化測(cè)試的概念。
自動(dòng)化測(cè)試分為web自動(dòng)化測(cè)試耐齐、接口自動(dòng)化測(cè)試浪秘、APP自動(dòng)化測(cè)試。
回歸測(cè)試
回歸測(cè)試是指修改了舊代碼后埠况,重新進(jìn)行測(cè)試以確認(rèn)修改沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤耸携。自動(dòng)回歸測(cè)試將大幅降低系統(tǒng)測(cè)試、維護(hù)升級(jí)等階段的成本辕翰《嵫埽回歸測(cè)試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測(cè)試過程中占有很大的工作量比重喜命,軟件開發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測(cè)試沟沙。在漸進(jìn)和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測(cè)試進(jìn)行的更加頻繁壁榕,而在極端編程方法中矛紫,更是要求每天都進(jìn)行若干次回歸測(cè)試。因此牌里,通過選擇正確的回歸測(cè)試策略來(lái)改進(jìn)回歸測(cè)試的效率和有效性是很有意義的颊咬。
冒煙測(cè)試
這一術(shù)語(yǔ)源自硬件行業(yè)。對(duì)一個(gè)硬件或硬件組件進(jìn)行更改或修復(fù)后牡辽,直接給設(shè)備加電喳篇。如果沒有冒煙,則該組件就通過了測(cè)試态辛。在軟件中麸澜,“冒煙測(cè)試”這一術(shù)語(yǔ)描述的是在將代碼更改嵌入到產(chǎn)品的源樹中之前對(duì)這些更改進(jìn)行驗(yàn)證的過程。在檢查了代碼后奏黑,冒煙測(cè)試是確定和修復(fù)軟件缺陷的最經(jīng)濟(jì)有效的方法炊邦。冒煙測(cè)試設(shè)計(jì)用于確認(rèn)代碼中的更改會(huì)按預(yù)期運(yùn)行编矾,且不會(huì)破壞整個(gè)版本的穩(wěn)定性。
性能測(cè)試
性能測(cè)試是通過自動(dòng)化的測(cè)試工具模擬多種正常铣耘、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試洽沟。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行蜗细。通過負(fù)載測(cè)試裆操,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí)炉媒,系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況踪区。壓力測(cè)試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試吊骤。