單元測試:單元測試(或模塊測試)是對程序中的單個(gè)子程序或具有獨(dú)立功能的代碼段進(jìn)行測試的過程议忽。
集成測試:集成測試是單元測試的基礎(chǔ)上侈询,將通過單元模塊組裝成系統(tǒng)或子系統(tǒng)分尸,再進(jìn)行測試攻礼,重點(diǎn)是檢查模塊之間的接口是否正確睡互。
接口測試一般會用于多系統(tǒng)間交互開發(fā)肠套,或者擁有多個(gè)子系統(tǒng)的應(yīng)用系統(tǒng)開發(fā)的測試舰涌。接口測試適用于為其他系統(tǒng)提供服務(wù)的底層框架系統(tǒng)和中心服務(wù)系統(tǒng),主要測試這些系統(tǒng)對外部提供的接口你稚,驗(yàn)證其正確性和穩(wěn)定性瓷耙。接口測試同樣適用于一個(gè)上層系統(tǒng)中的服務(wù)層接口,越往上層刁赖,其測試的難度越大搁痛。
系統(tǒng)測試:系統(tǒng)測試是針對整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測試,驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義宇弛,以及軟件系統(tǒng)的正確性和性能等是否滿足其規(guī)約所指定的要求鸡典。
驗(yàn)收測試:驗(yàn)收測試是部署軟件之前的最后一個(gè)測試操作。驗(yàn)收測試的目的是確保軟件準(zhǔn)備就緒枪芒,向軟件購買都展示該軟件系統(tǒng)滿足其用戶的需求轿钠。
黑盒測試:黑盒測試,指的是把被測的軟件看作是一個(gè)黑盒子病苗,我們不去關(guān)心盒子里面的結(jié)構(gòu)是什么樣子的疗垛,只關(guān)心軟件的輸入數(shù)據(jù)和輸出結(jié)果。它只檢查程序呈現(xiàn)給用戶的功能是否按照需求規(guī)格說明書的規(guī)定正常使用硫朦,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息贷腕。黑盒測試著眼于程序外部結(jié)構(gòu),不考慮內(nèi)部邏輯結(jié)構(gòu)咬展,主要針對軟件界面和軟件功能進(jìn)行測試泽裳。
白盒測試:白盒測試,指的是把盒子打開破婆,去研究里面的源代碼和程序執(zhí)行結(jié)果涮总。它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照設(shè)計(jì)規(guī)格說明書的規(guī)定正常進(jìn)行祷舀,檢驗(yàn)程序中的每條通路是否都能按預(yù)定要求正確工作瀑梗。
灰盒測試:灰盒測試介于黑盒測試與白盒測試之間烹笔。可以這樣理解抛丽,灰盒測試關(guān)注輸出對于輸入的正確性谤职,同時(shí)也關(guān)注內(nèi)部表現(xiàn),但這種關(guān)注不象白盒那樣詳細(xì)亿鲜、完整允蜈,只是通過一些表征性的現(xiàn)象、事件蒿柳、標(biāo)志來判斷內(nèi)部的運(yùn)行狀態(tài)饶套,有時(shí)候輸出是正確的,但內(nèi)部其實(shí)已經(jīng)錯(cuò)誤了垒探,這種情況非常多凤跑,如果每次都通過白盒測試來操作,效率會很低叛复,因此需要采取這樣的一種灰盒測試的方法仔引。
性能測試性能測試是通過自動(dòng)化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測試褐奥。軟件的性能包括很多方面咖耘,主要有時(shí)間性能和空間性能兩種。
手工測試:手工測試就是由人去一個(gè)一個(gè)的去執(zhí)行測試用例撬码,通過鍵盤鼠標(biāo)等輸入一些參數(shù)儿倒,查看返回結(jié)果是否符合預(yù)期結(jié)果。手工測試并不非專業(yè)術(shù)語呜笑,手工測試通常是指我們在系統(tǒng)測試階段所進(jìn)行的功能測試夫否,為了更明顯的與自動(dòng)化測試進(jìn)行區(qū)分,所以這里使用了手工測試叫胁。
自動(dòng)化測試自動(dòng)化測試是把以人為驅(qū)動(dòng)的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程凰慈。通常,在設(shè)計(jì)了測試用例并通過評審之后驼鹅,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試微谓,得到實(shí)際結(jié)果與期望結(jié)果的比較。在此過程中输钩,為了節(jié)省人力豺型、時(shí)間或硬件資源,提高測試效率买乃,便引入了自動(dòng)化測試的概念姻氨。
冒煙測試:是指在對一個(gè)新版本進(jìn)行系統(tǒng)大規(guī)模的測試之前,先驗(yàn)證一下軟件的基本功能是否實(shí)現(xiàn)剪验,是否具備可測性肴焊。引入到軟件測試中前联,就是指測試小組在正規(guī)測試一個(gè)新版本之前,先投入較少的人力和時(shí)間驗(yàn)證一個(gè)軟件 的主要功能抖韩,如果主要功能都沒有實(shí)現(xiàn)蛀恩,則打回開發(fā)組重新開發(fā)疫铜。這樣做的好處是可以節(jié)省大量的時(shí)間成本和人力成本茂浮。
回歸測試:回歸測試是指修改了舊代碼后,重新進(jìn)行測試以確認(rèn)修改后沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤壳咕∠浚回歸測試一般是在進(jìn)行軟件的第二輪測試開始的,驗(yàn)證第一輪中發(fā)現(xiàn)的問題是否得到修復(fù)谓厘。當(dāng)然幌羞,回歸也是一個(gè)循環(huán)的過程,如果回歸的問題通不過竟稳,則需要開發(fā)人員修改后再次進(jìn)行回歸属桦,直到通過為止。
隨機(jī)測試:是指測試中的所有輸入數(shù)據(jù)都是隨機(jī)生成的他爸,其目的是模擬用戶的真實(shí)操作聂宾,并發(fā)現(xiàn)一些邊緣性的錯(cuò)誤。隨機(jī)測試可以發(fā)現(xiàn)一些隱蔽的錯(cuò)誤诊笤,但是也有很多缺點(diǎn)系谐,比如測試不系統(tǒng),無法統(tǒng)計(jì)代碼覆蓋率和需求覆蓋率讨跟,發(fā)現(xiàn)的問題難以重現(xiàn)纪他。一般是放在測試的最后執(zhí)行。其實(shí)隨機(jī)測試更專業(yè)的升級版叫 探索性測試探索性測試探索性測試可以說是一種測試思維技術(shù)晾匠。它沒有很多實(shí)際的測試方法茶袒、技術(shù)和工具,但是卻是所有測試人員都應(yīng)該掌握的一種測試思維方式凉馆。
安全測試是在 IT 軟件產(chǎn)品的生命周期中弹谁,特別是產(chǎn)品開發(fā)基本完成到發(fā)布階段,對產(chǎn)品進(jìn)行檢驗(yàn)以驗(yàn)證產(chǎn)品符合安全需求定義和產(chǎn)品質(zhì)量標(biāo)準(zhǔn)的過程句喜。安全測試也在越來越受到企業(yè)的關(guān)注和重視预愤,因?yàn)橛捎诎踩詥栴}造成的后果是不可估量的。尤其對于互聯(lián)網(wǎng)產(chǎn)品最容易遭受各種安全攻擊咳胃。