您好,登錄后才能下訂單哦!
有句話是這么說的:能動(dòng)手就別嗶嗶,尤其是在工作節(jié)奏堪比×××的今天,大家都推崇實(shí)干精神,能解決問題就好,去他的理論。但是無可否認(rèn)的是,良好的理論素養(yǎng)無論是解決工作中遇到的問題,還是未來的職業(yè)發(fā)展,都幫助甚大。本文整理匯總了軟件測試行業(yè)中常見的一些測試?yán)碚?,供大家參考?/span>
1、軟件測試按照測試分類有:黑盒測試和白盒測試。
黑盒測試
黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用。在測試中,把程序看作一個(gè)不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在程序接口進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu),主要針對軟件界面和軟件功能進(jìn)行測試。
黑盒測試是以用戶的角度,從輸入數(shù)據(jù)與輸出數(shù)據(jù)的對應(yīng)關(guān)系出發(fā)進(jìn)行測試的。很明顯,如果外部特性本身設(shè)計(jì)有問題或規(guī)格說明的規(guī)定有誤,用黑盒測試方法是發(fā)現(xiàn)不了的。
新人入行基本上都是采用黑盒測試的方法來入門的。
白盒測試
白盒測試又稱結(jié)構(gòu)測試、透明盒測試、邏輯驅(qū)動(dòng)測試或基于代碼的測試。白盒測試是一種測試用例設(shè)計(jì)方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內(nèi)部的東西以及里面是如何運(yùn)作的。"白盒"法全面了解程序內(nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試。"白盒"法是窮舉路徑測試。在使用這一方案時(shí),測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。
咱們以空調(diào)為例來看什么是黑盒測試,什么是白盒測試:
當(dāng)一臺(tái)新的空調(diào)組裝完成,質(zhì)監(jiān)部門需要對這臺(tái)空調(diào)的各個(gè)功能進(jìn)行測試,比如開關(guān)機(jī)是否正常,制冷制熱功能是否正常,定時(shí)功能是否正常,等等,并將測試的結(jié)果一一記錄下來,如果有問題,及時(shí)反饋給設(shè)計(jì)部來解決,這就是黑盒測試的范疇。
對于空調(diào)的設(shè)計(jì)師們,他們的測試可能就會(huì)更復(fù)雜一些,除了對空調(diào)的各項(xiàng)功能進(jìn)行測試之外,還要從空調(diào)的內(nèi)在原理來分析,他們甚至?xí)櫩照{(diào)的內(nèi)部實(shí)現(xiàn)代碼,分析空調(diào)的各項(xiàng)數(shù)據(jù)狀態(tài)來看是否正常運(yùn)行,而不只是從表面功能來看,這就是白盒測試的范疇。
2、按照測試的階段可以分為:單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試及驗(yàn)收測試
單元測試
單元測試(unit testing),是指對軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證。對于單元測試中單元的含義,一般來說,要根據(jù)實(shí)際情況去判定其具體含義,如C語言中單元指一個(gè)函數(shù),Java里單元指一個(gè)類,圖形化的軟件中可以指一個(gè)窗口或一個(gè)菜單等??偟膩碚f,單元就是人為規(guī)定的最小的被測功能模塊。單元測試是在軟件開發(fā)過程中要進(jìn)行的最低級(jí)別的測試活動(dòng),軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測試。
在一種傳統(tǒng)的結(jié)構(gòu)化編程語言中,比如C,要進(jìn)行測試的單元一般是函數(shù)或子過程。在像C++這樣的面向?qū)ο蟮恼Z言中, 要進(jìn)行測試的基本單元是類。對Ada語言來說,開發(fā)人員可以選擇是在獨(dú)立的過程和函數(shù),還是在Ada包的級(jí)別上進(jìn)行單元測試。單元測試的原則同樣被擴(kuò)展到第四代語言(4GL)的開發(fā)中,在這里基本單元被典型地劃分為一個(gè)菜單或顯示界面。
經(jīng)常與單元測試聯(lián)系起來的另外一些開發(fā)活動(dòng)包括代碼走讀(Code review),靜態(tài)分析(Static analysis)和動(dòng)態(tài)分析(Dynamic analysis)。靜態(tài)分析就是對軟件的源代碼進(jìn)行研讀,查找錯(cuò)誤或收集一些度量數(shù)據(jù),并不需要對代碼進(jìn)行編譯和執(zhí)行。動(dòng)態(tài)分析就是通過觀察軟件運(yùn)行時(shí)的動(dòng)作,來提供執(zhí)行跟蹤,時(shí)間分析,以及測試覆蓋度方面的信息。
集成測試
集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。
實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。一些局部反映不出來的問題,在全局上很可能暴露出來。
確認(rèn)測試
確認(rèn)測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。
系統(tǒng)測試
系統(tǒng)測試,英文是System Testing。是將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,系統(tǒng)測試是針對整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案。系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。對象不僅僅包括需測試的軟件,還要包含軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等。
驗(yàn)收測試
驗(yàn)收測試是部署軟件之前的最后一個(gè)測試操作。在軟件產(chǎn)品完成了單元測試、集成測試和系統(tǒng)測試之后,產(chǎn)品發(fā)布之前所進(jìn)行的軟件測試活動(dòng)。它是技術(shù)測試的最后一個(gè)階段,也稱為交付測試。驗(yàn)收測試的目的是確保軟件準(zhǔn)備就緒,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。
驗(yàn)收測試是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是驗(yàn)收測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。
驗(yàn)收測試,系統(tǒng)開發(fā)生命周期方法論的一個(gè)階段,這時(shí)相關(guān)的用戶和獨(dú)立測試人員根據(jù)測試計(jì)劃和結(jié)果對系統(tǒng)進(jìn)行測試和接收。它讓系統(tǒng)用戶決定是否接收系統(tǒng)。它是一項(xiàng)確定產(chǎn)品是否能夠滿足合同或用戶所規(guī)定需求的測試。這是管理性和防御性控制。
在工程及其他相關(guān)領(lǐng)域中,驗(yàn)收測試是指確認(rèn)一系統(tǒng)是否符合設(shè)計(jì)規(guī)格或契約之需求內(nèi)容的測試,可能會(huì)包括化學(xué)測試、物理測試或是性能測試。在系統(tǒng)工程中驗(yàn)收測試可能包括在系統(tǒng)(例如一套軟件系統(tǒng)、許多機(jī)械零件或是一批化學(xué)制品)交付前的黑箱測試。軟件開發(fā)者常會(huì)將系統(tǒng)開發(fā)者進(jìn)行的驗(yàn)收測試和客戶在接受產(chǎn)品前進(jìn)行的驗(yàn)收測試分開。后者一般會(huì)稱為使用者驗(yàn)收測試、終端客戶測試、實(shí)機(jī)(驗(yàn)收)測試、現(xiàn)場(驗(yàn)收)測試。在進(jìn)行主要測試程序之前,常用冒煙測試作為一個(gè)此階段的驗(yàn)收測試。
3、其他的測試?yán)碚撨€有:自動(dòng)化測試、回歸測試、冒煙測試、性能測試
自動(dòng)化測試
一般是指軟件測試的自動(dòng)化,軟件測試就是在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序,評估運(yùn)行結(jié)果,預(yù)先條件應(yīng)包括正常條件和異常條件。通常,在設(shè)計(jì)了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時(shí)間或硬件資源,提高測試效率,便引入了自動(dòng)化測試的概念。
自動(dòng)化測試分為web自動(dòng)化測試、接口自動(dòng)化測試、APP自動(dòng)化測試。
回歸測試
回歸測試是指修改了舊代碼后,重新進(jìn)行測試以確認(rèn)修改沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤。自動(dòng)回歸測試將大幅降低系統(tǒng)測試、維護(hù)升級(jí)等階段的成本?;貧w測試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測試過程中占有很大的工作量比重,軟件開發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測試。在漸進(jìn)和快速迭×××發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進(jìn)行的更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進(jìn)回歸測試的效率和有效性是很有意義的。
冒煙測試
這一術(shù)語源自硬件行業(yè)。對一個(gè)硬件或硬件組件進(jìn)行更改或修復(fù)后,直接給設(shè)備加電。如果沒有冒煙,則該組件就通過了測試。在軟件中,“冒煙測試”這一術(shù)語描述的是在將代碼更改嵌入到產(chǎn)品的源樹中之前對這些更改進(jìn)行驗(yàn)證的過程。在檢查了代碼后,冒煙測試是確定和修復(fù)軟件缺陷的最經(jīng)濟(jì)有效的方法。冒煙測試設(shè)計(jì)用于確認(rèn)代碼中的更改會(huì)按預(yù)期運(yùn)行,且不會(huì)破壞整個(gè)版本的穩(wěn)定性。
性能測試
性能測試是通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測試是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接受的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測試。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。