软件测试流程(完整版)
單純從功能測(cè)試層面上來講的話,APP測(cè)試、web測(cè)試在流程和功能測(cè)試上是沒有區(qū)別的
根據(jù)兩者載體不一樣,則區(qū)別如下:
1.系統(tǒng)結(jié)構(gòu)方面
web項(xiàng)目:b/s架構(gòu),基于瀏覽器的;web測(cè)試只要更新來服務(wù)器端,客戶端就會(huì)同步更新
app項(xiàng)目:c/s架構(gòu),必須要有客戶端;app修改來服務(wù)端,則客戶端用戶所有核心版本都需要進(jìn)行回歸測(cè)試一遍。
2.性能方面
web項(xiàng)目 需監(jiān)測(cè) 響應(yīng)時(shí)間,CPU、Memory
app項(xiàng)目 除了監(jiān)測(cè) 響應(yīng)時(shí)間,CPU、Memory外,還需監(jiān)測(cè)瀏覽,電量等。
3.兼容方面
web項(xiàng)目
1.瀏覽器(火狐、谷歌、IE等)
2.操作系統(tǒng)(Windows7、Windows10、Linux等)
app項(xiàng)目:
1.設(shè)備系統(tǒng):iOS(iPad、iPhone)、Android(三星、華為、聯(lián)想等)、Windows(Win7、Win8)、OS X(Mac)
2.手機(jī)設(shè)備可根據(jù) 手機(jī)型號(hào)、分辨率不同
4. 相對(duì)于Web項(xiàng)目,app有專項(xiàng)測(cè)試
1.干擾測(cè)試:中斷,來電,短信,關(guān)機(jī),重啟等
2.弱網(wǎng)絡(luò)測(cè)試(模擬2g、3g、4g,wifi網(wǎng)絡(luò)狀態(tài)以及丟包情況);網(wǎng)絡(luò)切換測(cè)試(網(wǎng)絡(luò)斷開后重連,3g切換到4g/wifi等)
5. 安裝、更新、卸載
安裝:需要考慮安裝時(shí)的中斷、弱網(wǎng)、安裝后刪除安裝文件等情況
卸載:需考慮卸載后是否刪除app相關(guān)的文件
更新:分強(qiáng)制更新,非強(qiáng)制更新,增包更新,斷點(diǎn)續(xù)傳,弱網(wǎng)狀態(tài)下更新
6.測(cè)試工具方面
自動(dòng)化工具:APP一般使用Appium;Web一般使用Selenium
性能測(cè)試工具:APP一般使用Jmeter;Web一般使用LR Jmeter
7. 界面操作
關(guān)于手機(jī)端測(cè)試,需要注意手勢(shì),橫豎屏切換,多點(diǎn)觸控,前后臺(tái)切換
8. 安全測(cè)試
安裝包是否可以編譯代碼,安裝包是否簽名,權(quán)限設(shè)置,例如訪問通訊錄等
9. 邊界測(cè)試
可用存儲(chǔ)空間少,沒有SD卡/雙SD卡,飛行模式,系統(tǒng)時(shí)間有誤,第三方依賴(QQ,微信登錄)等
10. 權(quán)限測(cè)試
設(shè)置某個(gè)app是否可以獲取權(quán)限,例如是否可訪問通訊錄,相冊(cè)照相機(jī)等
一、 注冊(cè)
以等價(jià)類劃分和邊界值法來分析
二、 登錄
三、修改密碼
四、添加
五、刪除
六、 查詢
精確查詢:
模糊查詢:
在精確查詢的基礎(chǔ)上加上以下一點(diǎn):
8. 輸入一些字符,看是否查出數(shù)據(jù)庫中所有相關(guān)信息
功能測(cè)試自動(dòng)化
性能測(cè)試
網(wǎng)絡(luò)抓包工具:Wireshark
網(wǎng)頁文件大小
webpage test
pagespeed insight
chrome adb
Android內(nèi)存占用分析:MAT
iOS內(nèi)存問題分析:ARC模式
Android WebView性能分析
iOS WebView性能分析
負(fù)載,壓力,耐久性,可擴(kuò)展性,基準(zhǔn)
工具:apacheAB,Jmeter,LoadRunner
兼容性測(cè)試
手工測(cè)試:操作系統(tǒng),分辨率,rom,網(wǎng)絡(luò)類型
云平臺(tái):testin,腳本編寫,Android
流量測(cè)試
Android自帶流量管理
iOS自帶的Network
tcpdump抓包
Wi-Fi代理抓包:Fidder
流量節(jié)省方法:壓縮數(shù)據(jù),json優(yōu)于xml;Webp優(yōu)于傳統(tǒng)的JPG,PNG;控制訪問的頻次;只獲取必要的數(shù)據(jù),緩存;
電量測(cè)試
基于測(cè)試設(shè)備的方法,購買電量表進(jìn)行測(cè)試
GSam Battery Monitoe Pro
IOS基于Instrument Energy工具
弱網(wǎng)絡(luò)測(cè)試
手機(jī)自帶的網(wǎng)絡(luò)狀態(tài)模擬工具
基于代理的弱網(wǎng)絡(luò)的模擬
工具:Windows;network delay simulator
Mac:network link conditioner
分析
隨著手機(jī)應(yīng)用不斷狀態(tài),同一款產(chǎn)品的移動(dòng)端應(yīng)用市場(chǎng)占相較PC端也越來越大,那么app與pc端針對(duì)這些產(chǎn)品的測(cè)試有什么相同之處與不同之處呢?
總結(jié)如下:
相同之處
一、針對(duì)同一個(gè)系統(tǒng)功能的測(cè)試,三端所測(cè)試的業(yè)務(wù)六月初是一樣的
二、一般情況下手機(jī)端和PC端都對(duì)應(yīng)一套后臺(tái)服務(wù),比如說某公司所開發(fā)的互聯(lián)網(wǎng)金融平臺(tái),整個(gè)平臺(tái)做了分布式服務(wù)架構(gòu),后臺(tái)服務(wù)包括用戶服務(wù),交易服務(wù),產(chǎn)品服務(wù),PC和手機(jī)端測(cè)試以上三個(gè)流程時(shí),調(diào)用的都是同一個(gè)后臺(tái)服務(wù)。
(注:也有一些功能,比如PC與手機(jī)端展示不一致,或者有什么特殊處理,這樣情況下后臺(tái)會(huì)寫兩套不同的接口來處理對(duì)應(yīng)的業(yè)務(wù)需求)
不同之處
一、 測(cè)試平臺(tái)(容器)不同:
pc項(xiàng)目都是在電腦上進(jìn)行測(cè)試的:常見的PC項(xiàng)目架構(gòu)有BS架構(gòu)和CS架構(gòu)(server),后臺(tái)返回的到相應(yīng)內(nèi)容顯示在瀏覽器上,常見BS架構(gòu)的項(xiàng)目比如QQ,微信等,需要在電腦下載客戶端(client),客戶端與后臺(tái)服務(wù)器(server)進(jìn)行數(shù)據(jù)傳輸交互,基于以上信息,PC端測(cè)試都是在電腦上,要么是在瀏覽器上測(cè)試要么安裝對(duì)應(yīng)客戶端,平臺(tái)都是電腦
app測(cè)試平臺(tái)分為安卓和iOS端:安卓測(cè)試需要在安卓手機(jī)上安裝開發(fā)提供的apk測(cè)試包,iOS測(cè)試需要將手機(jī)UUID提供給開發(fā)安裝ipa測(cè)試包進(jìn)行測(cè)試
H5測(cè)試就是測(cè)試HMTL5頁面:在PC或者手機(jī)瀏覽器都可以直接訪問H5頁面
二、兼容性測(cè)試不同
基于以上測(cè)試平臺(tái)的不同,三端的兼容性也不一樣
PC的兼容性主要包括各個(gè)瀏覽器和不同操作系統(tǒng),目前筆者所經(jīng)歷的公司主要測(cè)試了不同主流版本瀏覽器的兼容性,還未涉及操作系統(tǒng)層面
APP的兼容性包含安卓和iOS不同機(jī)型,不同版本,不同屏幕都要適配
H5的兼容性主要測(cè)試手機(jī)端的不同瀏覽器的兼容性
三、系統(tǒng)架構(gòu)不一樣
PC和H5端項(xiàng)目尤其是WEB項(xiàng)目對(duì)應(yīng)一個(gè)后臺(tái)服務(wù),所有客戶訪問的都是同一個(gè)后臺(tái)。上線測(cè)試時(shí),直接訪問線上地址測(cè)試即可
APP測(cè)試雖然對(duì)應(yīng)一個(gè)后臺(tái),但是不同的用戶可一下載了不同版本的客戶端,上線測(cè)試時(shí),需要兼容每個(gè)版本的測(cè)試。
四、發(fā)布流程不同:
PC端每次更新發(fā)布,需要將測(cè)試通過的包退換線上包,重啟服務(wù)后立即生效,訪問的就是最新的環(huán)境
H5由于是一些html5網(wǎng)站發(fā)布上線后無需重啟即可訪問
APP端需要向應(yīng)用市場(chǎng)發(fā)布,安卓發(fā)布的市場(chǎng)有很多,應(yīng)用寶,豌豆莢,應(yīng)用商店等每個(gè)應(yīng)用都需要單獨(dú)審核;iOS端應(yīng)用比較單一就是app store。從提交,審核發(fā)到發(fā)布會(huì)有幾天的時(shí)間間隔,開發(fā)的應(yīng)用包不會(huì)立即發(fā)布。
五、專項(xiàng)測(cè)試
除以上不同外,app端還有一些專項(xiàng)測(cè)試
性能方面:響應(yīng)時(shí)間,流量測(cè)試和耗電量測(cè)試
安裝測(cè)試(PC端web項(xiàng)目不用測(cè)試,CS架構(gòu)的也需要考慮)
交叉測(cè)試:就是在操作某個(gè)軟件的時(shí)候,來電話,來短信,電量不足提示等外部事件
操作類型:手勢(shì)測(cè)試,橫豎屏
網(wǎng)絡(luò)測(cè)試:包含弱網(wǎng)和網(wǎng)絡(luò)切換測(cè)試,重點(diǎn)要考慮回退和刷新是否會(huì)造成二次提交,弱網(wǎng)絡(luò)的模擬,據(jù)說可以用360Wi-Fi實(shí)現(xiàn)設(shè)置。
升級(jí)測(cè)試:升級(jí)測(cè)試的提醒機(jī)制,升級(jí)取消是否影響原有功能的使用,升級(jí)后用戶數(shù)據(jù)是否被清除了
六、啟動(dòng)
app端:需要制定desired_caps內(nèi)容,因?yàn)槔锩姘嗽O(shè)備信息等
web端:通過啟動(dòng)webdriver不同的瀏覽器類,獲取driver,如webdriver.Chrome(),也可以模擬手機(jī)端加載wap頁面做wap頁面測(cè)試
七、關(guān)于元素的屬性
app端:查找到元素以后,查看元素對(duì)象,發(fā)現(xiàn)里邊基本上只有元素的text屬性,也沒有相關(guān)方法修改,這個(gè)區(qū)別還是很大的,不過appium有set_value的方法,目前還沒有嘗試,用的還是send_keys().
web端:web端簡(jiǎn)直就是人間天堂,比起修改,讀取元素屬性,比如我要獲取input標(biāo)簽的name,我可以用get_attribute方法,也可以自行寫js代碼改變這些屬性。
八、使用JS
app端:似乎是支持了,但是執(zhí)行任何命令server端都會(huì)提示404的錯(cuò)誤。
web端:支持非常好,因?yàn)楸旧鞪s就是負(fù)責(zé)網(wǎng)頁交互的,所以會(huì)很方便
九、關(guān)于滑動(dòng)
app端:關(guān)于滑動(dòng)是會(huì)用很多的,比如頁面很長(zhǎng),或者打開通知欄,這種需要在屏幕上滑動(dòng)的,用到的還比較多。
web端:用到的比較少,之前基本上沒有用到過。
十、異常
app端:需要注意的是其他apk給你帶來的影響,目前沒有找到很好的方式去處理這些問題,因?yàn)槠渌鸻pk給你做了彈窗,比如qq異地登陸,或者短信這種推送,會(huì)影響到目前的流程。辦法肯定是解決的,我個(gè)人理解,可以在出錯(cuò)之后對(duì)比一下是否在當(dāng)前apk,如果不再的話則進(jìn)入當(dāng)前apk再做一次相關(guān)操作。
web端:很少影響,可以邊跑用例邊聊QQ,當(dāng)然我只是舉個(gè)例子,總之個(gè)人體會(huì)就是影響比較小,因?yàn)闉g覽器的driver完全只是控制瀏覽器,別的地方和它無關(guān)。
軟件測(cè)試流程
制定測(cè)試策略
首先測(cè)試策略,當(dāng)用戶提出新的需求時(shí),測(cè)試人員應(yīng)該和開發(fā)人員一起做測(cè)試需求分析,一般我們都會(huì)通過會(huì)議的形式去進(jìn)行討論分析,這樣測(cè)試人員會(huì)對(duì)測(cè)試需要有個(gè)大概的了解,需要是干什么的,包括哪些功能等等,而不至于什么都不清楚不了解。
制定測(cè)試計(jì)劃
大概了解需求內(nèi)容之后,要對(duì)整個(gè)測(cè)試進(jìn)行預(yù)期評(píng)估,包括計(jì)劃要測(cè)試哪些方面的功能,要計(jì)劃分配哪些人員參與到測(cè)試中,哪些人負(fù)責(zé)哪個(gè)模塊,以及按照交叉測(cè)試的方法,同時(shí)還要計(jì)劃要測(cè)試的開始和結(jié)束時(shí)間,便于掌握這個(gè)測(cè)試進(jìn)展等等。
編寫測(cè)試用例
測(cè)試計(jì)劃規(guī)范之后,則是進(jìn)行測(cè)試用例的編寫,測(cè)試用例的編寫,主要圍繞界面模塊而展開,如界面包括哪些按鈕,按鈕操作是否可以正常進(jìn)行,其次圍繞功能來設(shè)計(jì),然后根據(jù)不同的場(chǎng)景來設(shè)計(jì),對(duì)于測(cè)試過程中,出現(xiàn)的缺陷問題,要在將缺陷問題記錄到測(cè)試用例“測(cè)試結(jié)果”一列,便于查找測(cè)試項(xiàng)測(cè)試任務(wù)情況。
形成測(cè)試報(bào)告
測(cè)試用例執(zhí)行之后,對(duì)于測(cè)試過程中發(fā)現(xiàn)的缺陷問題,要匯報(bào)自己的測(cè)試情況并且測(cè)試中的缺陷反饋到測(cè)試工具中,便于開發(fā)人員解決,對(duì)于安排的不同模塊的負(fù)責(zé)人在測(cè)試自己對(duì)應(yīng)模塊任務(wù)時(shí),也要及時(shí)匯報(bào)自己的測(cè)試工作進(jìn)度,便于測(cè)試小組掌握測(cè)試的整個(gè)進(jìn)度。
測(cè)試總結(jié)及文檔編寫
按照測(cè)試用例執(zhí)行完所有的測(cè)試任務(wù),且開發(fā)人員修復(fù)完來所有的bug問題(不包含一些難以修復(fù)但不緊急的問題)測(cè)試人員需要編寫針對(duì)本次項(xiàng)目的測(cè)試總結(jié),要在總結(jié)中說明,測(cè)試計(jì)劃是否按照如期執(zhí)行,總測(cè)試缺陷數(shù)據(jù)多少,測(cè)試覆蓋了多少等等。
同時(shí)文檔人員要針對(duì)本次項(xiàng)目開發(fā)新增加的功能進(jìn)行項(xiàng)目“升級(jí)日志”和“幫助手冊(cè)”任務(wù)的編寫,便于用戶了解并能夠快速上手使用新增的功能。
web測(cè)試常見的測(cè)試場(chǎng)景
下面從頁面,頁面元素,功能,提示信息,容錯(cuò)性,權(quán)限,鍵盤操作部分講述常見的測(cè)試點(diǎn)。
1. 頁面部分
2. 頁面元素部分
3. 功能部分
4. 提示信息
5. 容錯(cuò)性
6. 權(quán)限部分
7. 鍵盤操作
問題:什么是性能測(cè)試,什么是負(fù)載測(cè)試,什么是壓力測(cè)試?
參考答案:
性能測(cè)試:性能測(cè)試是和功能測(cè)試相對(duì)應(yīng)的,根據(jù)用戶場(chǎng)景進(jìn)行的單個(gè)用戶操作,是屬于功能測(cè)試領(lǐng)域,主要是驗(yàn)證軟件是否可以滿足用戶的功能需求,比如,單個(gè)用戶使用系統(tǒng),系統(tǒng)各項(xiàng)功能是否滿足用戶的需求。
如果把這一個(gè)用戶的操作放大,變?yōu)?00個(gè),1000個(gè),10000個(gè)用戶同時(shí)操作軟件,驗(yàn)證軟件系統(tǒng)是否滿足用戶需求,那么這個(gè)就是軟件性能測(cè)試。通常使用性能測(cè)試工具對(duì)軟件開展并發(fā)的訪問,同時(shí)監(jiān)控系統(tǒng)各項(xiàng)指標(biāo),比如CPU,內(nèi)存,網(wǎng)絡(luò),磁盤等關(guān)鍵部件的使用情況,性能測(cè)試是負(fù)載測(cè)試,壓力測(cè)試,并發(fā)測(cè)試的統(tǒng)稱。
負(fù)載測(cè)試: 通過逐步加壓的方式類確定系統(tǒng)的處理能力,確定系統(tǒng)能承受的各項(xiàng)閥值。
壓力測(cè)試: 逐步增加負(fù)載,使系統(tǒng)某些資源達(dá)到飽和、極限甚至失效的測(cè)試,目的是用來發(fā)現(xiàn)系統(tǒng)的軟件業(yè)務(wù)處理能力,系統(tǒng)硬件的極限處理能力等。
網(wǎng)站作為一款web端軟件,是測(cè)試小伙伴們測(cè)試產(chǎn)品的重要組成部分,拿到一個(gè)網(wǎng)站,不知道怎么測(cè)試?那么按照下面10大安全問題依次尋找。
性能測(cè)試這種測(cè)試方式在發(fā)生的過程中,其中一個(gè)過渡性的工作,就是對(duì)執(zhí)行過程中的問題,進(jìn)行定位,對(duì)功能的定位,對(duì)負(fù)載的定位,最重要的,當(dāng)然是問題中說的“瓶頸”,接觸性能測(cè)試不深,更非專家,自己的理解,瓶頸產(chǎn)生在以下幾方面:
懷疑內(nèi)存不足時(shí):
方法一:
【監(jiān)控指標(biāo)】:Memory Available Mbytes, Memory的Pages/sec, page read/sec, Page Fault/sec
【參考值】:如果 Page Reads/Sec比率持續(xù)保持為5 ,表示可能內(nèi)存不足。
Page/Sec推薦00-20(如果服務(wù)器沒有足夠的內(nèi)存處理器工作負(fù)荷,此數(shù)值將一直很高,如果大于80,表示有問題)
方法二:
根據(jù)Physical Disk 值分析性能瓶頸
【監(jiān)控指標(biāo)】:Memory Available MBytes ,Pages read/sec,%Disk Time 和 Avg.Disk Queue Length
【參考值】:%Disk Time建議閾值90%
當(dāng)內(nèi)存不足時(shí),有點(diǎn)進(jìn)程會(huì)轉(zhuǎn)移到硬盤上去運(yùn)行,造成性能急劇下降,而且一個(gè)缺少內(nèi)存的系統(tǒng)常常表現(xiàn)出很高的CPU利用率,因?yàn)樗枰粩嗟膾呙鑳?nèi)存,將內(nèi)存中的頁面移到硬盤上。
懷疑內(nèi)存泄漏時(shí)
【監(jiān)控指標(biāo)】:Memory Available MBytes ,Process\Private Bytes和Process\Working Set,PhysicalDisk/%Disk Time
【說明】:
Windows資源監(jiān)控中,如果Process\Private Bytes計(jì)數(shù)器和Process\Working Set計(jì)數(shù)器的值在長(zhǎng)時(shí)間內(nèi)持續(xù)升高,同時(shí)Memory\Available bytes計(jì)數(shù)器的值持續(xù)降低,則很可能存在內(nèi)存泄漏,內(nèi)存泄漏應(yīng)該通過一個(gè)長(zhǎng)時(shí)間的,用來研究分析當(dāng)所有內(nèi)存耗盡時(shí),應(yīng)用程序反應(yīng)情況的測(cè)試來檢驗(yàn)。
常見的問題是不安全的密鑰生成和儲(chǔ)存、不輪換密鑰和使用弱算法。使用弱的或者不帶salt的哈希算法來保護(hù)密碼也很普遍。外部攻擊者因訪問的局限性很難探測(cè)這種漏洞,他們通常必須首先破解其他東西以獲得需要的訪問。
在身份驗(yàn)證過程中沒有用SSL/TLS,因此暴露傳輸數(shù)據(jù)和會(huì)話ID,被攻擊者截聽,或使用過期或者配置不正確的證書。
用戶登錄提示信息會(huì)給攻擊者一些有用的信息,作為程序的開發(fā)人員應(yīng)該做到對(duì)登錄提示信息的模糊化,以防攻擊者利用登錄得知用戶是否存在
程序員在代碼中沒有對(duì)重復(fù)提交請(qǐng)求做限制,這樣就會(huì)出現(xiàn)訂單被多次下單,帖子被重復(fù)發(fā)布,惡意攻擊者可能利用此漏洞對(duì)網(wǎng)站進(jìn)行批量灌水,致使網(wǎng)站癱瘓
訪問者所使用的瀏覽器不能完全支持 頁面里的腳本,形成“腳本錯(cuò)誤”,也就是網(wǎng)站中的腳本沒有被成功執(zhí)行,遇到“腳本錯(cuò)誤”時(shí),一般會(huì)彈出一個(gè)非常難看的腳本運(yùn)行錯(cuò)誤警告窗口
H5如何測(cè)試?
它跟安卓APP與iOS App有什么樣的區(qū)別呢?
&我們以往的app是使用原生態(tài)系統(tǒng)內(nèi)核的,相當(dāng)于直接在系統(tǒng)上操作,是我們傳統(tǒng)意義上的軟件,更加穩(wěn)定
& H5的app先得調(diào)用系統(tǒng)的瀏覽器內(nèi)核,相當(dāng)于是在網(wǎng)頁中進(jìn)行操作,較原生app穩(wěn)定性稍差,似乎還沒有百萬級(jí)用戶量的H5app
&H5最大的優(yōu)點(diǎn)是可以跨平臺(tái),開發(fā)容易,app的話需要用android的語言和iOS的語言各自寫,H5只要開發(fā)一套
&簡(jiǎn)單來說:H5是基于web,native基于客戶端
H5測(cè)試應(yīng)該從哪些方面考慮?
除基本的功能測(cè)試之外,H5頁面的測(cè)試,需要關(guān)注以下幾點(diǎn):
1.1登陸
目前H5與native各個(gè)客戶端都做來互通,所以大家在測(cè)試的時(shí)候要注意兩點(diǎn):
a)若客戶端已登錄,那么進(jìn)入H5后仍然是登錄狀態(tài)
b)若客戶端未登錄,進(jìn)入H5,點(diǎn)擊對(duì)應(yīng)按鈕OR鏈接
如果需要登錄,須拉起native登錄;
若取消登錄,是否可再次拉起登錄,或者停留在頁面是否有對(duì)應(yīng)的登錄提示。
1.2翻頁
遇到翻頁加載的頁面,需要注意內(nèi)容為1頁或者多頁的情況;
a)數(shù)據(jù)分頁加載時(shí),注意后續(xù)頁面請(qǐng)求數(shù)據(jù)的正確
ps:這個(gè)需要注意在快操作場(chǎng)景中,請(qǐng)求頁數(shù)是不是依次遞增,快速操作。
(如第一頁尚未loading出來的時(shí)候仍然繼續(xù)上拉操作)時(shí)是否發(fā)出對(duì)應(yīng)的請(qǐng)求了。
1.3刷新與返回
A、下拉刷新是否仍然處于當(dāng)前頁面
B、用戶主動(dòng)點(diǎn)擊刷新按鈕是否仍然處于當(dāng)前頁面
C、點(diǎn)擊返回與back鍵,回退頁面是否是期望頁面
總結(jié)
以上是生活随笔為你收集整理的软件测试流程(完整版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P3165 [CQOI2014]排序机械
- 下一篇: 利用CVE-2019-1040 - 结合