根據(jù)項目流程階段劃分測試
單元測試:
按照設(shè)定好的最小測試單元進(jìn)行單元測試譬嚣,主要是測試程序代碼全释,為的是確保各單元模塊被正確的編譯辅辩,單元的具體劃分按不同的單位與不同的軟件有不同颤陶,比如有具體到模塊的測試幔托,也有具體到類穴亏,函數(shù)的測試等。——一般都是開發(fā)來完成
集成測試:
經(jīng)過了單元測試后重挑,將各單元組合成完整的體系嗓化,主要測試各模塊間組合后的功能實現(xiàn)情況,以及模塊接口連接的成功與否谬哀,數(shù)據(jù)傳遞的正確性等刺覆,其主要目的是檢查軟件單位之間的接口是否正確。根據(jù)集成測試計劃史煎,一邊將模塊或其他軟件單位組合成系統(tǒng)谦屑,一邊運行該系統(tǒng),以分析所組成的系統(tǒng)是否正確篇梭,各組成部分是否合拍氢橙。——比如說注冊和充值這兩個功能是否能夠連通~
系統(tǒng)測試:
經(jīng)過了單元測試和集成測試以后恬偷,我們要把軟件系統(tǒng)搭建起來悍手,按照軟件規(guī)格說明書中所要求,測試軟件其性能功能等是否和用戶需求符合袍患,在系統(tǒng)中運行是否存在漏洞等坦康。——進(jìn)形完整的系統(tǒng)測試,根據(jù)需求文檔和測試用例來進(jìn)行測試诡延。
驗收測試:
主要就是用戶在拿到軟件的時候滞欠,在使用現(xiàn)場,會根據(jù)前邊所提到的需求肆良,以及規(guī)格說明書來做相應(yīng)測試筛璧,以確定軟件達(dá)到符合效果的赤兴。——用戶對軟件進(jìn)行驗收隧哮。
Alpha測試與Beta測試
Alpha測試:
Alpha測試是一種前期的用戶測試桶良,此時系統(tǒng)剛剛研發(fā)完成。Alpha測試不能由程序員或測試員完成沮翔。
Beta測試:
Beta測試是一種后期用戶測試陨帆,此時系統(tǒng)已經(jīng)通過內(nèi)部測試,大部分錯誤已經(jīng)改正采蚀,即將正式發(fā)行疲牵。Beta測試不能有程序員或測試員完成。
白盒測試榆鼠、黑盒測試纲爸、灰盒測試
黑盒測試:
黑盒測試,指的是把被測的軟件看作是一個黑盒子妆够,我們不去關(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)鸵荠,主要針對軟件界面和軟件功能進(jìn)行測試冕茅。
白盒測試:
白盒測試,指的是把盒子蓋子打開蛹找,去研究里面的源代碼和程序結(jié)果姨伤。
它是按照程序內(nèi)部的結(jié)構(gòu)測試程序,通過測試來檢測產(chǎn)品內(nèi)部動作是否按照設(shè)計規(guī)格說明書的規(guī)定正常進(jìn)行庸疾,檢驗程序中的每條通路是否都能按預(yù)定要求正確工作
灰盒測試:
灰盒測試介于黑盒測試與白盒測試之間乍楚。
可以這樣理解,灰盒測試關(guān)注輸出對于輸入的正確性彼硫,同時也關(guān)注內(nèi)部表現(xiàn)炊豪,但這種關(guān)注不象白盒那樣詳細(xì)凌箕、完整拧篮,只是通過一些表征性的現(xiàn)象、事件牵舱、標(biāo)志來判斷內(nèi)部的運行狀態(tài)串绩,有時候輸出是正確的,但內(nèi)部其實已經(jīng)錯誤了芜壁,這種情況非常多礁凡,如果每次都通過白盒測試來操作高氮,效率會很低,因此需要采取這樣的一種灰盒的方法顷牌。
功能測試剪芍、性能測試
功能測試
功能測試檢查實際的功能是否符合用戶的需求。測試的大部分工作也是圍繞軟件的功能進(jìn)行窟蓝,設(shè)計軟件的目的也就是滿足客戶對其功能的需求罪裹。如果偏離的這個目的任何測試工作都是沒有意義的。
功能測試又可可以細(xì)分為很多種:邏輯功能測試运挫、界面測試状共、易用性測試、安裝測試谁帕、兼容性測試等峡继。
性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試匈挖。
軟件的性能包括很多方面碾牌,主要有時間性能和空間性能兩種。
時間性能:主要是指軟件的一個具體的響應(yīng)時間儡循。比如一個登錄所需要的時間小染,一個交易所需要的時間等。當(dāng)然贮折,拋開具體的測試環(huán)境裤翩,來分析一次事務(wù)的響應(yīng)時間是沒有任何意義的。需要搭建一個具體且獨立的測試環(huán)境调榄。
空間性能:主要指軟件運行時所消耗的系統(tǒng)資源踊赠,比如硬件資源,CPU每庆、內(nèi)存筐带,網(wǎng)絡(luò)帶寬消耗等。
手工測試與自動化測試
手工測試
手工測試就是由人去一個一個的去執(zhí)行測試用例缤灵,通過鍵盤鼠標(biāo)等輸入一些參數(shù)伦籍,查看返回結(jié)果是否符合預(yù)期結(jié)果。
自動化測試
自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程腮出。通常帖鸦,在設(shè)計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試胚嘲,得到實際結(jié)果與期望結(jié)果的比較作儿。在此過程中,為了節(jié)省人力馋劈、時間或硬件資源攻锰,提高測試效率晾嘶,便引入了自動化測試的概念。
自動化測試:又可分為功能自動化測試與性能自動化測試娶吞。
我們一般所說的自動化測試就是指功能自動化測試垒迂,通過相關(guān)的測試技術(shù),通過編碼的方式用一段程序來測試一個軟件的功能妒蛇,這樣就可以重復(fù)執(zhí)行程序來進(jìn)行重復(fù)的測試娇斑。如果一個軟件一小部分發(fā)生改變,我們只要修改一部分代碼材部,就可以重復(fù)的對整個軟件進(jìn)行功能測試毫缆。這樣就大大的提高了測試效率。
性能自動化測試乐导,當(dāng)然苦丁,除了早期階段,現(xiàn)在的性能測試工作都是通過性能測試工具輔助完成的物臂。能過工具可以模擬成千上萬的用戶向系統(tǒng)發(fā)送請求旺拉,用來驗證系統(tǒng)的處理能力。
冒煙測試棵磷、回歸測試蛾狗、隨機(jī)測試
這三種測試在軟件功能測試過程中,既不算具體明確的測試階段也不算是具體的測試方法仪媒。
冒煙測試:
是指在對一個新版本進(jìn)行系統(tǒng)大規(guī)模的測試之前沉桌,先驗證一下軟件的基本功能是否實現(xiàn),是否具備可測性算吩。
引入到軟件測試中留凭,就是指測試小組在正規(guī)測試一個新版本之前,先投入較少的人力和時間驗證一個軟件的主要功能偎巢,如果主要功能都沒有實現(xiàn)蔼夜,則打回開發(fā)組重新開發(fā)。這樣做的好處是可以節(jié)省大量的時間成本和人力成本压昼。
回歸測試:
回歸測試是指修改了舊代碼后求冷,重新時行測試以確認(rèn)修改后沒有引入新的錯誤或?qū)е缕渌a產(chǎn)生錯誤。
回歸測試一般是在進(jìn)行軟件的第二輪測試開始的窍霞,驗證第一輪中發(fā)現(xiàn)的問題是否得到修復(fù)匠题。當(dāng)然,回歸也是一個循環(huán)的過程官撼,如果回歸的問題通不過梧躺,則需要開發(fā)人員修改后再次進(jìn)行回歸似谁,直到通過為止傲绣。
隨機(jī)測試:
是指測試中的所有輸入數(shù)據(jù)都是隨機(jī)生成的掠哥,其目的是模擬用戶的真實操作,并發(fā)現(xiàn)一些邊緣性的錯誤秃诵。
隨機(jī)測試可以發(fā)現(xiàn)一些隱蔽的錯誤续搀,但是也有很多缺點,比如測試不系統(tǒng)菠净,無法統(tǒng)計代碼覆蓋率和需求覆蓋率禁舷,發(fā)現(xiàn)的問題難以重現(xiàn)。一般是放在測試的最后執(zhí)行毅往。其實隨機(jī)測試更專業(yè)的升級版叫探索性測試牵咙。
探索性測試
探索性測試可以說是一種測試思維技術(shù)。它沒有很多實際的測試方法攀唯、技術(shù)和工具洁桌,但是卻是所有測試人員都應(yīng)該掌握的一種測試思維方式。探索性強調(diào)測試人員的主觀能動性侯嘀,拋棄繁雜的測試計劃和測試用例設(shè)計過程另凌,強調(diào)在碰到問題時及時改變測試策略。
探索性測試應(yīng)該是未來測試領(lǐng)域的一個方向戒幔。
安全測試
安全測試是在IT軟件產(chǎn)品的生命周期中吠谢,特別是產(chǎn)品開發(fā)基本完成到發(fā)布階段,對產(chǎn)品進(jìn)行檢驗以驗證產(chǎn)品符合安全需求定義和產(chǎn)品質(zhì)量標(biāo)準(zhǔn)的過程诗茎。
安全測試也在越來越受到企業(yè)的關(guān)注和重視工坊,因為由于安全性問題造成的后果是不可估量的。尤其對于互聯(lián)網(wǎng)產(chǎn)品最容易遭受各種安全攻擊敢订。