很多開發(fā)同學(xué)對開發(fā)環(huán)境袋倔、測試環(huán)境和線上環(huán)境傻傻分不清楚雕蔽,這篇文章或許能讓你將它們區(qū)分開來。
一宾娜、開發(fā)環(huán)境
簡述:就是與測試環(huán)境分開的獨立客戶機批狐、服務(wù)器、配置管理工具等前塔。
國內(nèi)很多公司將測試環(huán)境和開發(fā)環(huán)境混用嚣艇,在開發(fā)環(huán)境做測試,其實這樣是不可取的华弓,開發(fā)環(huán)境因為代碼可能會有BUG食零,而且需要和后端聯(lián)調(diào),狀態(tài)會反復(fù)寂屏。
PS:這里的開發(fā)環(huán)境不是指的開發(fā)的時候使用的IDE等這些工具贰谣。
使用階段:
1.開發(fā)人員每日上傳代碼到開發(fā)環(huán)境進(jìn)行自測。
2.demo會議時迁霎,PM同學(xué)和開發(fā)同學(xué)一起測試吱抚。(項目開發(fā)流程)
發(fā)布頻率:每天發(fā)布1-2次,做持續(xù)集成考廉,改完code立馬提交秘豹。
測試:QA同學(xué)不能在開發(fā)環(huán)境做測試,因為開發(fā)環(huán)境因為需要與后端聯(lián)調(diào)昌粤,狀態(tài)會反復(fù)既绕。
備注:持續(xù)集成
在沒有應(yīng)用持續(xù)集成之前,傳統(tǒng)的開發(fā)模式是項目一開始就劃分模塊涮坐,然后等所有的代碼都開發(fā)完成之后再集成到一起進(jìn)行測試凄贩,隨著軟件技術(shù)的發(fā)展,各種軟件方法百花齊放袱讹,軟件規(guī)模也在擴大疲扎,軟件需求越來越復(fù)雜,軟件已經(jīng)不能簡單地通過劃分模塊的方式來開發(fā),需要項目內(nèi)部互相合作评肆,劃分模塊這種傳統(tǒng)的模式的弊端也越來越明顯债查,由于很多 bug在項目的早期就存在,到最后集成的時候才發(fā)現(xiàn)問題瓜挽,開發(fā)者需要在集成階段花費大量的時間來尋找 bug 的根源盹廷,加上軟件的復(fù)雜性,問題的根源很難定位久橙,甚至出現(xiàn)不得不調(diào)整底層架構(gòu)的情況俄占,在這個階段的除蟲會議(bug meetings)特別多,會議的內(nèi)容基本上都是討論 bug 是怎么產(chǎn)生的淆衷,最后往往發(fā)展成為不同模塊的負(fù)責(zé)人互相推諉責(zé)任缸榄。
持續(xù)集成最大的優(yōu)點是可以避免這種傳統(tǒng)模式在集成階段的除蟲會議。持續(xù)集成主張項目的開發(fā)人員頻繁的將他們對源碼的修改提交(check in)到一個單一的源碼庫祝拯,并驗證這些改變是否對項目帶來了破壞甚带。
二、測試環(huán)境
簡述:測試環(huán)境是指測試人員利用一些工具及數(shù)據(jù)所模擬出的佳头、接近真實用戶使用環(huán)境的環(huán)境鹰贵,測試環(huán)境的目的是為了使測試結(jié)果更加真實有效。測試環(huán)境應(yīng)該與開發(fā)環(huán)境分隔開康嘉,使用獨立的客戶機碉输、服務(wù)器和配置管理工具。
原則上開發(fā)人員是不能碰測試環(huán)境和線上環(huán)境的亭珍,只能看不能動敷钾,如果隨便哪個人發(fā)布了一個包或者修改了代碼,那就亂了肄梨,因此測試環(huán)境涉及到權(quán)限管理阻荒,對于開發(fā)人員來說應(yīng)該是只讀權(quán)限。
有些公司還會仿真環(huán)境峭范,用于模擬線上用戶的使用财松,一般不對外開放瘪贱。
使用階段:demo通過后由開發(fā)人員將代碼部署到測試環(huán)境纱控,并寫好域名發(fā)送郵件通知QA同學(xué)進(jìn)行測試。
發(fā)布頻率:一天發(fā)布一次菜秦,保持測試環(huán)境穩(wěn)定甜害。
測試:3-5天測試時間,主要測邊際條件球昨,主流瀏覽器的兼容性尔店。難走的流程走組合測試,錄入多組數(shù)據(jù),所有的功能點都要走一遍嚣州。
備注:組合測試
組合測試法:有n個輸入?yún)?shù)鲫售,每個輸入?yún)?shù)可取若干個值,將n個輸入?yún)?shù)取值的所有組合進(jìn)行窮舉測試该肴,由于爆炸性情竹,所以是不行的。退一步:對n個輸入?yún)?shù)中的任意m個輸入?yún)?shù)的所有取值組合要覆蓋到匀哄,是可行的秦效,稱之為強度m的組合測試。由此引出了組合測試的一系列理論研究涎嚼。
三阱州、線上環(huán)境
簡述:即發(fā)布環(huán)境,真實用戶訪問的環(huán)境法梯,要求不能有任何BUG苔货,且不能頻繁發(fā)布,這樣對用戶體驗性不好立哑。
使用階段:QA同學(xué)測試通過后蒲赂,由OP將代碼發(fā)布到線上環(huán)境,發(fā)布的時候相關(guān)人員必須全部在場刁憋。
發(fā)布頻率:現(xiàn)在的公司一般周二或者周四滥嘴,發(fā)布時間為用戶在線數(shù)最少的時候。再就是固定時間進(jìn)行的BUG修改完發(fā)布至耻。最后就是緊急發(fā)布若皱。
測試:
1.關(guān)注用戶的反饋。
2.灰度發(fā)布的話尘颓,測試要做梯度測試走触。
備注:灰度發(fā)布
簡單理解就是給一部分用戶發(fā)個測試版本,其他用戶繼續(xù)用以前的版本疤苹,然后觀察測試版本的情況互广。
灰度發(fā)布是指在黑與白之間,能夠平滑過渡的一種發(fā)布方式卧土。AB test就是一種灰度發(fā)布方式惫皱,讓一部分用戶繼續(xù)用A,一部分用戶開始用B尤莺,如果用戶對B沒有什么反對意見旅敷,那么逐步擴大范圍,把所有用戶都遷移到B上面來颤霎∠彼灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定涂滴,在初始灰度的時候就可以發(fā)現(xiàn)、調(diào)整問題晴音,以保證其影響度柔纵。