什么是軟件測試
軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件品質(zhì),并對其是否能滿足設計要求進行評估的過程。
軟件測試的現(xiàn)實定義是:軟件測試是貫穿整個軟件開發(fā)生命周期、對軟件產(chǎn)品(包括階段性產(chǎn)品)進行驗證和確認的活動過程,其目的是盡快盡早地發(fā)現(xiàn)在軟件產(chǎn)品中所存在的各種問題——與用戶需求、預先定義的不一致性。
掌握技能
1.測試基礎理論:你要明白一家互聯(lián)網(wǎng)公司各個崗位是做什么的,主要是前端,后端,產(chǎn)品經(jīng)理.....以及一個版本迭代從需求分析到上線整個測試流程以及使用的管理工具。要掌握測試用例的編寫方法與技巧。
2.功能測試:主要分為app測試,web測試和接口測試。主要就是接口測試,你要學會使用兩個工具,一個是postman用來調(diào)接口,一個是fiddler用來抓包定位bug。學好接口測試也是為以后的性能壓測學習打下基礎。
3.數(shù)據(jù)庫:首學mysql,主要掌握sql語句,增刪查改,嵌套子查詢,多表查詢。加分項會存儲過程,懂索引,事務,sql優(yōu)化。這些初級不強求。工作中使用最多的是查詢和修改語句,主要校驗前端的傳值以及不同系統(tǒng)接口調(diào)用數(shù)據(jù)傳輸,存值是否正確。
4.linux:會linux基本命令,比如linux三劍客等,會用命令查日志,會搭建測試環(huán)境。因為絕大多數(shù)公司服務器以及代碼都是部署在linux系統(tǒng)上,工作中用的最多的就是查詢?nèi)罩?,定位bug。
5.網(wǎng)絡協(xié)議:會http/https協(xié)議,高頻面試題目接口請求的方式get與post區(qū)別,cookie與session機制區(qū)別,三次揮手四次斷開,輸入百度網(wǎng)址發(fā)生了什么?這些都要了解。
6.版本控制工具:主要就是git和svn,git是命令形式,svn是圖形化界面,企業(yè)主要用來管理代碼以及文檔等,屬于工具使用,比較簡單,最好都會。
7.編程語言:java/python之一,初級對編程語言要求不高,不會也可,但是是加分項,最好掌握一些基礎語法,比如學完javase,能手寫實現(xiàn)冒泡排序或其它排序,很加分。
8.自動化:主要分為Web自動化,App自動化,接口自動化。初級要求不高,知道一些框架即可,如果學習請優(yōu)先學習接口自動化,目前需求最多。加分項是會使用搭好的框架編寫自動化case,腳本等。
9.性能測試:初級沒要求,加分項會使用jmeter做接口壓測,并發(fā)測試等。
測試的方法
軟件測試一般分為白盒測試和黑盒測試。
黑盒測試
黑盒測試,軟件測試的主要方法之一,也可以稱為功能測試、數(shù)據(jù)驅(qū)動測試或基于規(guī)格說明的測試。測試應用程序的功能,而不是其內(nèi)部結(jié)構或運作。測試者不需具備應用程序的代碼、內(nèi)部結(jié)構和編程語言的專門知識。測試者只需知道什么是系統(tǒng)應該做的事,即當鍵入一個特定的輸入,可得到一定的輸出,這是從用戶的角度針對軟件界面、功能及外部結(jié)構進行測試,而不考慮程序內(nèi)部邏輯結(jié)構。測試用例是應用系統(tǒng)應該做的功能,照規(guī)范、規(guī)格或要求等設計。測試者選擇有效輸入和無效輸入來驗證是否正確的輸出。此測試方法可適合大部分的軟件測試,例如單元測試(unittesting)、集成測試(integrationtesting)以及系統(tǒng)測試(systemtesting)。
白盒測試
白盒測試(又稱透明盒測試、結(jié)構測試等)是一個測試軟件的方法,測試應用程序的內(nèi)部結(jié)構或運作,而不是測試應用程序的功能(即黑盒測試)。在白箱測試時,以編程語言的角度來設計測試案例。測試者輸入數(shù)據(jù)驗證數(shù)據(jù)流在程序中的移動路徑,并確定適當?shù)妮敵?,類似測試電路中的節(jié)點。
白箱測試可以應用于單元測試、集成測試和系統(tǒng)的軟件測試流程,可測試在集成過程中每一單元之間的路徑,或者主系統(tǒng)跟子系統(tǒng)中的測試。盡管這種測試的方法可以發(fā)現(xiàn)許多的錯誤或問題,它可能無法檢測未使用部分的規(guī)范。
測試類型
功能測試
按照測試軟件的各個功能劃分進行有條理的測試,在功能測試部分要保證測試項覆蓋所有功能和各種功能條件組合。更詳細的描述請參見“黑盒測試”。
系統(tǒng)測試
對一個完整的軟件以用戶的角度來進行測試,系統(tǒng)測試和功能測試的區(qū)別是,系統(tǒng)測試利用的所有測試數(shù)據(jù)和測試的方法都要模擬成和用戶的實際使用環(huán)境完全一樣,測試的軟件也是經(jīng)過系統(tǒng)集成以后的完整軟件系統(tǒng),而不是在功能測試階段利用的每個功能模塊單獨編譯后生成的可執(zhí)行程序。
極限值測試
對軟件在各種特殊條件,特殊環(huán)境下能否正常運行和軟件的性能進行測試。
特殊條件一般指的是軟件規(guī)定的最大值,最小值,以及在超過最大,小值條件下的測試。特殊環(huán)境一般指的是軟件運行的機器處于CPU高負荷,或是網(wǎng)絡高負荷狀態(tài)下的測試,根據(jù)軟件的不同,特殊環(huán)境也有過不同。
性能測試
性能測試是對軟件性能的評價。簡單的說,軟件性能衡量的是軟件具有的響應及時度能力。因此,性能測試是采用測試手段對軟件的響應及時性進行評價的一種方式。根據(jù)軟件的不同類型,性能測試的側(cè)重點也不同。
壓力測試
壓力測試,確立系統(tǒng)穩(wěn)定性的一種測試方法,在軟件工程、金融風險管理等領域應用比較普遍。通常在系統(tǒng)正常運作范圍之外進行,以考察其功能極限和隱患。
壓力測試與性能測試的區(qū)別
壓力測試常常和性能測試相混淆。它們主要不同點是,壓力測試要求進行超過規(guī)定性能指標的測試。例如一個網(wǎng)站設計容量是100個人同時點擊,壓力測試就要是采用120個同時點擊的條件測試。