單元測(cè)試是對(duì)軟件組成單元進(jìn)行測(cè)試。其目的是檢驗(yàn)軟件組成單位的正確性。測(cè)試對(duì)象是:模塊。
對(duì)模塊進(jìn)行測(cè)試,單獨(dú)的一個(gè)模塊測(cè)試,屬于靜態(tài)測(cè)試的一類(lèi)
測(cè)試階段:編碼后或者編碼前(TDD)
測(cè)試對(duì)象:最小模塊
測(cè)試人員:白盒測(cè)試工程師或開(kāi)發(fā)工程師(測(cè)源碼)
測(cè)試依據(jù):代碼和注釋+詳細(xì)設(shè)計(jì)文檔
測(cè)試方法:白盒測(cè)試(因?yàn)橐獪y(cè)源碼)
測(cè)試內(nèi)容:模塊接口測(cè)試(測(cè)試模塊里面的參數(shù)傳遞是否正確)、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試(測(cè)試變量的作用域范圍)、路徑測(cè)試(if-else 判斷必須覆蓋所有分支)、錯(cuò)誤處理測(cè)試、邊界測(cè)試( for 循環(huán))
二.集成測(cè)試
集成測(cè)試也稱(chēng)聯(lián)合測(cè)試,將程序模塊采用適當(dāng)?shù)募刹呗越M裝起來(lái),對(duì)系統(tǒng)的接口(白盒測(cè)試)以及集成后的功能(黑盒測(cè)試進(jìn)行正確性檢測(cè)的一種測(cè)試。集成主要目的是檢查軟件單位之間的接口是否正確。
測(cè)試階段:一般單元測(cè)試之后進(jìn)行
測(cè)試對(duì)象:模塊間的接口
測(cè)試人員:白盒測(cè)試工程師或開(kāi)發(fā)工程師
測(cè)試依據(jù):?jiǎn)卧獪y(cè)試的模塊+概要設(shè)計(jì)文檔
測(cè)試方法:黑盒測(cè)試與白盒測(cè)試相結(jié)合
測(cè)試內(nèi)容:模塊之間數(shù)據(jù)傳輸、模塊之間功能沖突、模塊組裝功能正確性、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、單個(gè)模塊缺陷對(duì)系統(tǒng)的影響
三.系統(tǒng)測(cè)試
將軟件系統(tǒng)看成是一個(gè)系統(tǒng)的測(cè)試。包括對(duì)功能、性能以及軟件所運(yùn)行的軟硬件環(huán)境進(jìn)行測(cè)試。時(shí)間大部分在系統(tǒng)測(cè)試執(zhí)行階段,包括回歸測(cè)試和冒煙測(cè)試。
測(cè)試階段:集成測(cè)試通過(guò)之后
測(cè)試對(duì)象:整個(gè)系統(tǒng)(軟、硬件)
測(cè)試人員:黑盒測(cè)試工程師(對(duì)功能測(cè)試)
測(cè)試依據(jù):需求規(guī)格說(shuō)明文檔
測(cè)試方法:黑盒測(cè)試
測(cè)試內(nèi)容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
回歸測(cè)試(Regression Testing)
四.回歸測(cè)試
回歸測(cè)試是指修改了舊代碼后,重新進(jìn)行測(cè)試以確認(rèn)修改沒(méi)有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤。
有了代碼修改后就進(jìn)行回歸測(cè)試,根據(jù)測(cè)試階段確定回歸范圍。
在整個(gè)軟件測(cè)試過(guò)程中占有很大的工作量比重,軟件開(kāi)發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測(cè)試。隨著系統(tǒng)的龐大,回歸測(cè)試的成本越來(lái)越大,通過(guò)選擇正確的回歸測(cè)試策略來(lái)改進(jìn)回歸測(cè)試的效率和有效性是很有意義的。
五.冒煙測(cè)試
這一術(shù)語(yǔ)源自硬件行業(yè)。
對(duì)一個(gè)硬件或硬件組件進(jìn)行更改或修復(fù)后,直接給設(shè)備加電。如果沒(méi)有冒煙,則該組件就通過(guò)了測(cè)試。也可以理解為該種測(cè)試耗時(shí)短,僅用一袋煙功夫足夠了。
冒煙測(cè)試的對(duì)象是每一個(gè)新編譯的需要正式測(cè)試的軟件版本,目的是確認(rèn)軟件基本功能正常,可以進(jìn)行后續(xù)的正式測(cè)試工作。冒煙測(cè)試的執(zhí)行者是版本編譯人員。
概念:對(duì)核心主干流程進(jìn)行測(cè)試,如果成功,就認(rèn)為成功
作用:判斷是否接受測(cè)試的標(biāo)準(zhǔn),若核心主干都走不通,那么直接打下去
六.驗(yàn)收測(cè)試
買(mǎi)到新手機(jī),一般會(huì)有7天包退,一個(gè)月包換,我們會(huì)盡量在7天內(nèi)把手機(jī)的所有功能都試一遍。
驗(yàn)收測(cè)試是部署軟件之前的最后一個(gè)測(cè)試操作。它是技術(shù)測(cè)試的最后一個(gè)階段,也稱(chēng)為交付測(cè)試。驗(yàn)收測(cè)試的目的是確保軟件準(zhǔn)備就緒,按照項(xiàng)目合同、任務(wù)書(shū)、雙方約定的驗(yàn)收依據(jù)文檔,向軟件購(gòu)買(mǎi)都展示該軟件系統(tǒng)滿(mǎn)足原始需求。
測(cè)試階段:系統(tǒng)測(cè)試通過(guò)之后
測(cè)試對(duì)象:整個(gè)系統(tǒng)(包括軟硬件)。
測(cè)試人員:主要是最終用戶(hù)或者需求方。
測(cè)試依據(jù):用戶(hù)需求、驗(yàn)收標(biāo)準(zhǔn)
測(cè)試方法:黑盒測(cè)試(對(duì)功能進(jìn)行測(cè)試)
測(cè)試內(nèi)容:同系統(tǒng)測(cè)試(功能…各類(lèi)文檔等)
七.靜態(tài)測(cè)試(不運(yùn)行程序本身,測(cè)試文檔)
靜態(tài)測(cè)試是指不運(yùn)行被測(cè)程序本身,僅通過(guò)分析或檢查源程序的語(yǔ)法、結(jié)構(gòu)、過(guò)程、接口等來(lái)檢查程序的正確性。‘對(duì)需求規(guī)格說(shuō)明書(shū)、軟件設(shè)計(jì)說(shuō)明書(shū)、源程序做結(jié)構(gòu)分析、流程圖分析、符號(hào)執(zhí)行來(lái)找錯(cuò)。
八.動(dòng)態(tài)測(cè)試
動(dòng)態(tài)測(cè)試方法是指通過(guò)運(yùn)行被測(cè)程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,并分析運(yùn)行效率、正確性和健壯性等性能。大多數(shù)軟件測(cè)試工作都屬于動(dòng)態(tài)測(cè)試。
九.手工測(cè)試
就是由人去一個(gè)一個(gè)的輸入測(cè)試用例,然后觀察結(jié)果,和機(jī)器測(cè)試相對(duì)應(yīng),屬于比較原始但是不可缺少的一個(gè)步驟。
總結(jié)優(yōu)缺點(diǎn):
(1)優(yōu)點(diǎn):自動(dòng)化無(wú)法替代探索性測(cè)試、發(fā)散思維結(jié)果的測(cè)試。
(2)缺點(diǎn):執(zhí)行效率慢,量大易錯(cuò)。
十.自動(dòng)化測(cè)試
就是在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序,評(píng)估運(yùn)行結(jié)果,預(yù)先條件應(yīng)包括正常條件和異常條件。
簡(jiǎn)單說(shuō)自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程。
自動(dòng)化實(shí)施步驟:
1.完成功能測(cè)試,版本基本穩(wěn)定
2.根據(jù)項(xiàng)目特性,選擇適合項(xiàng)目的自動(dòng)化工具,并搭建環(huán)境
3.提取手工測(cè)試的測(cè)試用例轉(zhuǎn)化為自動(dòng)化測(cè)試的用例
4.通過(guò)工具、代碼實(shí)現(xiàn)自動(dòng)化的構(gòu)造輸入,自動(dòng)檢測(cè)輸出結(jié)果是否符合預(yù)期
5.生成自動(dòng)測(cè)試報(bào)告
6.持續(xù)改進(jìn),腳本優(yōu)化。
十一.業(yè)務(wù)測(cè)試
業(yè)務(wù)測(cè)試是測(cè)試人員把系統(tǒng)各個(gè)模塊串接起來(lái)運(yùn)行、模擬真實(shí)用戶(hù)實(shí)際的工作流程,滿(mǎn)足用戶(hù)需求定義的功能來(lái)進(jìn)行測(cè)試的過(guò)程。
例如查看郵件:
登錄網(wǎng)站-輸入用戶(hù)名、密碼登錄-進(jìn)入收件箱-查到郵件-點(diǎn)擊打開(kāi)-查閱-關(guān)閉郵件-退出郵箱-關(guān)閉網(wǎng)站
業(yè)務(wù)測(cè)試關(guān)注需求和用戶(hù)
所有業(yè)務(wù)流程進(jìn)行測(cè)試,包過(guò)主干流程,分支流程,甚至更小的流程
測(cè)不同的業(yè)務(wù),必須對(duì)項(xiàng)目的需求特別了解
十二.界面測(cè)試
界面測(cè)試(簡(jiǎn)稱(chēng)UI測(cè)試),測(cè)試用戶(hù)界面的功能模塊的布局是否合理、整體風(fēng)格是否一致、各個(gè)控件的放置位置是否符合客戶(hù)使用習(xí)慣,此外還要測(cè)試界面操作便捷性、導(dǎo)航簡(jiǎn)單易懂性,頁(yè)面元素的可用性,界面中文字是否正確,命名是否統(tǒng)一,頁(yè)面是否美觀,文字、圖片組合是否完美等。
十三.文檔測(cè)試
十四.兼容性測(cè)試
大家經(jīng)常上網(wǎng),同一網(wǎng)站在不同的瀏覽器上表現(xiàn)不一樣
WEB測(cè)試 ;APP測(cè)試
兼容性主要是指軟件之間能否很好地運(yùn)作,會(huì)不會(huì)有影響、軟件和硬件之間能否發(fā)揮很好的效率工作,會(huì)不會(huì)影響導(dǎo)致系統(tǒng)的崩潰。
平臺(tái)測(cè)試
瀏覽器測(cè)試
軟件本身能否向前或者向后兼容
測(cè)試軟件能否與其它相關(guān)的軟件兼容
數(shù)據(jù)兼容性測(cè)試
最常見(jiàn)的就是瀏覽器的兼容性測(cè)試,不同瀏覽器在css,js解析上的不同會(huì)導(dǎo)致頁(yè)面的顯示不同。
十五.易用性測(cè)試
易用性(Useability)是交互的適應(yīng)性、功能性和有效性的集中體現(xiàn)。
手機(jī)拔打電話(huà)功能不放在首頁(yè),放在一個(gè)目錄下邊,點(diǎn)擊三四次才可以找到拔打電話(huà)功能,這個(gè)功能好用嗎?
十六.性能測(cè)試
檢查系統(tǒng)是否滿(mǎn)足需求規(guī)格說(shuō)明書(shū)中規(guī)定的性能。
通常表現(xiàn)在以下幾個(gè)方面:
對(duì)資源利用(如內(nèi)存、處理機(jī)周期等)進(jìn)行的精確度量
對(duì)執(zhí)行間隔
日志事件(如中斷,報(bào)錯(cuò))
響應(yīng)時(shí)間
吞吐量(TPS)
輔助存儲(chǔ)區(qū)(例如緩沖區(qū)、工作區(qū)的大小等)
處理精度等進(jìn)行的監(jiān)測(cè)
十七.易用性測(cè)試
易用性(Useability)是交互的適應(yīng)性、功能性和有效性的集中體現(xiàn)。易用性屬于人體工程學(xué)的范疇,人體工程學(xué)(ergonomics)是一門(mén)將日常使用的東西設(shè)計(jì)為易于使用和實(shí)用性強(qiáng)的學(xué)科。
手機(jī)拔打電話(huà)功能不放在首頁(yè),放在一個(gè)目錄下邊,點(diǎn)擊三四次才可以找到拔打電話(huà)功能,這個(gè)功能好用嗎?
在某些大廠會(huì)有專(zhuān)門(mén)的部門(mén)來(lái)進(jìn)行易用性測(cè)試,又叫用戶(hù)體驗(yàn)測(cè)試。
十八. 安裝測(cè)試
測(cè)試程序的安裝、卸載
典型的是app的安裝、卸載
十九.安全測(cè)試
安全測(cè)試是一個(gè)相對(duì)獨(dú)立的領(lǐng)域,需要更多的專(zhuān)業(yè)知識(shí)。例如web的安全測(cè)試,需要熟悉各種網(wǎng)絡(luò)協(xié)議
TCPHTTP,防火墻,CDN,熟悉各種操作系統(tǒng)的漏洞,熟悉路由器等。從軟件來(lái)說(shuō),熟悉各種攻擊手段,例如
SQL注入、Xss等。
作為web入門(mén)測(cè)試,可以IBM的appscan。
二十.內(nèi)存泄漏測(cè)試
電腦打開(kāi)的東西太多,機(jī)器反應(yīng)慢甚至死機(jī),重啟之后就好了,過(guò)會(huì)同樣的問(wèn)題出現(xiàn)
很多軟件系統(tǒng)都存在內(nèi)存泄露的問(wèn)題,尤其是缺乏自動(dòng)垃圾回收機(jī)制的“非托管”語(yǔ)言 編寫(xiě)的程序,例如C、CH、Delphi等。從用戶(hù)使用的角度來(lái)看,內(nèi)存泄露本身不會(huì)造成什 么危害,一般用戶(hù)可能根本不會(huì)感覺(jué)到內(nèi)存泄露的存在。但是內(nèi)存泄露是會(huì)累積的,只要執(zhí) 行的次數(shù)足夠多,最終會(huì)耗盡所有可用內(nèi)存,使軟件的執(zhí)行越來(lái)越慢,最后停止響應(yīng)??梢?把這種軟件的問(wèn)題比喻成軟件的“慢性病”。
造成內(nèi)存泄露的原因有很多,最常見(jiàn)的有以下幾種。
1.分配完內(nèi)存之后忘了回收。
2.程序?qū)懛ㄓ袉?wèn)題,造成沒(méi)辦法回收。
3.某些API函數(shù)的使用不正確,造成內(nèi)存泄露。
4.沒(méi)有及時(shí)釋放。
內(nèi)存泄漏的檢測(cè):
1.對(duì)于不同的程序可以使用不同的方法來(lái)進(jìn)行內(nèi)存泄露的檢查,還可以使用一些專(zhuān)門(mén)的工具來(lái)進(jìn)行內(nèi)存問(wèn)題的檢查,例如MemProof. AQTime、Purify、BundsChecker等。 有些開(kāi)發(fā)工具本身就帶有內(nèi)存問(wèn)題檢查機(jī)制.要確保程序員在編寫(xiě)程序和編譯程序的時(shí)候打開(kāi)這些功能。
2.通過(guò)代碼掃描分析工具來(lái)檢查