本篇博文屬于對軟件測試領(lǐng)域的科普篇,關(guān)于軟件測試領(lǐng)域,名詞頗多,發(fā)現(xiàn)有許多測試新手混淆概念,甚至有不少招聘要求中對各種軟件測試相關(guān)的名詞亂用,所以,這里匯總測試相關(guān)的名詞,也許能理清你對各種名詞的概念。
根據(jù)項目流程階段劃分測試
上圖是一個典型瀑布式軟件開發(fā)流程,那么各項軟件測試工作是在項目開發(fā)流程中循序漸進的進行的。下面將介紹個測試含義。
單元測試:單元測試是對軟件中的基本組成單位進行的測試。目的是檢驗軟件基本組成單位的正確性。 集成測試:集成測試是在軟件系統(tǒng)集成過程中所進行的測試。目的是檢查軟件單位之間的接口是否正確。 系統(tǒng)測試:系統(tǒng)測試是對已經(jīng)集成好的軟件系統(tǒng)進行徹底的測試,以驗證軟件系統(tǒng)的正確性和性能等是否滿足其規(guī)約所指定的要求。 驗收測試:驗收測試是部署軟件之前的最后一個測試操作。驗收測試的目的是確保軟件準備就緒,向軟件購買都展示該軟件系統(tǒng)滿足其用戶的需求。
單元測試階段: 模塊接口測試 通過所測模塊的數(shù)據(jù)流進行測試。調(diào)用所測模塊時的輸入?yún)?shù)與模塊的形式參數(shù)的個數(shù)、屬性和順序是否匹配。 局部數(shù)據(jù)結(jié)構(gòu)測試 局部數(shù)據(jù)結(jié)構(gòu)是為了保證臨時存儲在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確、模塊的局部數(shù)據(jù)結(jié)構(gòu)往往是錯誤的根源。 路徑測試 對模塊中重要的執(zhí)行路徑進行測試。 錯誤處理測試 比較完善的模塊設(shè)計要求能遇見出錯的條件,并設(shè)置適當(dāng)?shù)某鲥e處理,以便在一旦程序出錯時,能對出錯程序重做安排,保證其邏輯上的正確性。 邊界條件測試 軟件經(jīng)常在便捷上失效,邊界條件測試是一項基礎(chǔ)測試,也是后面系統(tǒng)測試中的功能測試的重點。
集成測試階段: 在集成測試中,我們主要關(guān)注以下內(nèi)容: 1. 把各個模塊連接起來時,穿越模塊接口的數(shù)據(jù)據(jù)是否會丟失。 2. 各個了模塊組合起來,能否達到預(yù)期要求的功能。 3. 一個模塊的功能是否會對另一個模塊的功能產(chǎn)生不利影響。 4. 全局數(shù)據(jù)據(jù)結(jié)構(gòu)是否有問題。 5. 單個模塊的誤差積累起來是否會被放大,從而達到不可接受的程序。
系統(tǒng)測試階段: 一般系統(tǒng)的主要測試工作都集中系統(tǒng)測試階段。根據(jù)不同的系統(tǒng),所進行的測試種類也很多。 功能測試: 功能測試是對產(chǎn)品的各功能進行驗證,以檢查是否滿足需求的要求。 性能測試: 性能測試是通過自動化測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。 安全測試: 安全測試檢查系統(tǒng)對非法入侵的防范能力。 兼容測試: 兼容性測試主要是測試系統(tǒng)在不同的軟硬件環(huán)境下是否能夠正常的運行。
驗收測試階段: 功能確認測試 安全可靠性測試 易用性測試 可擴充性測試 兼容性測試 資源占用率測試 用戶文檔資料驗收
白盒測試、黑盒測試、灰盒測試
上面是根據(jù)項目流程按照測試的各個階段對測試工具的劃分。白盒測試與黑盒測試,主要是測試工作對軟件代碼的的可見程度的劃分。這也是我軟件測試中領(lǐng)域中最基本的兩個概念。
黑盒測試: 黑盒測試,指的是把被測的軟件看作是一個黑盒子,我們不去關(guān)心盒子里面的結(jié)構(gòu)是什么樣子的,只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果。 它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進行測試。 白盒測試: 白盒測試,指的是把盒子蓋子打開,去研究里面的源代碼和程序結(jié)果。 它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作 灰盒測試: 灰盒測試介于黑盒測試與白盒測試之間。 可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性,同時也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不象白盒那樣詳細、完整,只是通過一些表征性的現(xiàn)象、事件、標志來判斷內(nèi)部的運行狀態(tài),有時候輸出是正確的,但內(nèi)部其實已經(jīng)錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要采取這樣的一種灰盒的方法。
功能測試、性能測試
功能測試 功能測試檢查實際的功能是否符合用戶的需求。測試的大部分工作也是圍繞軟件的功能進行,設(shè)計軟件的目的也就是滿足客戶對其功能的需求。如果偏離的這個目的任何測試工作都是沒有意義的。 功能測試又可可以細分為很多種:邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試等。 性能測試 性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。 軟件的性能包括很多方面,主要有時間性能和空間性能兩種。 時間性能:主要是指軟件的一個具體的響應(yīng)時間。比如一個登錄所需要的時間,一個交易所需要的時間等。當(dāng)然,拋開具體的測試環(huán)境,來分析一次事務(wù)的響應(yīng)時間是沒有任何意義的。需要搭建一個具體且獨立的測試環(huán)境。 空間性能:主要指軟件運行時所消耗的系統(tǒng)資源,比如硬件資源,CPU、內(nèi)存,網(wǎng)絡(luò)帶寬消耗等。 性能測試分類之我見:http://www.cnblogs.com/fnng/archive/2012/06/09/2543274.html
手工測試與自動化測試
手工測試: 手工測試就是由人去一個一個的去執(zhí)行測試用例,通過鍵盤鼠標等輸入一些參數(shù),查看返回結(jié)果是否符合預(yù)期結(jié)果。 (其實,不太喜歡別人把一般的功能測試工作叫手工測試,就像一個雕塑家不喜歡別人叫他刻石頭的一樣。手工測試同樣需要業(yè)務(wù)熟悉、基本測試方法的理解??此坪唵蔚墓ぷ鲄s能夠發(fā)現(xiàn)別人不能發(fā)現(xiàn)的軟件問題。在目前的測試領(lǐng)域,手工測試仍然是無法替代的一種測試方法) 自動化測試 自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。通常,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。 自動化測試:又可分為功能自動化測試與性能自動化測試。 我們一般所說的自動化測試就是指功能自動化測試,通過相關(guān)的測試技術(shù),通過編碼的方式用一段程序來測試一個軟件的功能,這樣就可以重復(fù)執(zhí)行程序來進行重復(fù)的測試。如果一個軟件一小部分發(fā)生改變,我們只要修改一部分代碼,就可以重復(fù)的對整個軟件進行功能測試。這樣就大大的提高了測試效率。 性能自動化測試,當(dāng)然,除了早期階段,現(xiàn)在的性能測試工作都是通過性能測試工具輔助完成的。能過工具可以模擬成千上萬的用戶向系統(tǒng)發(fā)送請求,用來驗證系統(tǒng)的處理能力。
冒煙測試、回歸測試、隨機測試
這三種測試在軟件功能測試過程中,既不算具體明確的測試階段也不算是具體的測試方法。 冒煙測試: 是指在對一個新版本進行系統(tǒng)大規(guī)模的測試之前,先驗證一下軟件的基本功能是否實現(xiàn),是否具備可測性。 引入到軟件測試中,就是指測試小組在正規(guī)測試一個新版本之前,先投入較少的人力和時間驗證一個軟件 的主要功能,如果主要功能都沒有實現(xiàn),則打回開發(fā)組重新開發(fā)。這樣做的好處是可以節(jié)省大量的時間成本和人力成本。
回歸測試: 回歸測試是指修改了舊代碼后,重新時行測試以確認修改后沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤。 回歸測試一般是在進行軟件的第二輪測試開始的,驗證第一輪中發(fā)現(xiàn)的問題是否得到修復(fù)。當(dāng)然,回歸也是一個循環(huán)的過程,如果回歸的問題通不過,則需要開發(fā)人員修改后再次進行回歸,直到通過為止。
隨機測試: 是指測試中的所有輸入數(shù)據(jù)都是隨機生成的,其目的是模擬用戶的真實操作,并發(fā)現(xiàn)一些邊緣性的錯誤。 隨機測試可以發(fā)現(xiàn)一些隱蔽的錯誤,但是也有很多缺點,比如測試不系統(tǒng),無法統(tǒng)計代碼覆蓋率和需求覆蓋率,發(fā)現(xiàn)的問題難以重現(xiàn)。一般是放在測試的最后執(zhí)行。其實隨機測試更專業(yè)的升級版叫 探索性測試
探索性測試 探索性測試可以說是一種測試思維技術(shù)。它沒有很多實際的測試方法、技術(shù)和工具,但是卻是所有測試人員都應(yīng)該掌握的一種測試思維方式。探索性強調(diào)測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設(shè)計過程,強調(diào)在碰到問題時及時改變測試策略。 探索性測試應(yīng)該是未來測試領(lǐng)域的一個方向。
安全測試 安全測試是在IT軟件產(chǎn)品的生命周期中,特別是產(chǎn)品開發(fā)基本完成到發(fā)布階段,對產(chǎn)品進行檢驗以驗證產(chǎn)品符合安全需求定義和產(chǎn)品質(zhì)量標準的過程。 安全測試也在越來越受到企業(yè)的關(guān)注和重視,因為由于安全性問題造成的后果是不可估量的。尤其對于互聯(lián)網(wǎng)產(chǎn)品最容易遭受各種安全攻擊。
|
|