大家熟悉的測試工作(也是傳統(tǒng)的瀑布式)云茸,是接到項目后參與需求評審是目,然后根據(jù)需求文檔寫寫用例和準備腳本,
等開發(fā)提測之后正式開始測試标捺、提bug懊纳、回歸,測試通過后就結(jié)束了亡容,項目交給運維上線嗤疯,之后投入下一個項目繼續(xù)重復(fù)這樣的流程。
這樣的流程看似沒什么問題萍倡,但缺點是:
測試過程是在一定時間間隔內(nèi)發(fā)生的身弊,測試人員必須等待產(chǎn)品完全構(gòu)建才能找到錯誤和故障辟汰。不可否認列敲,花費的時間超過了可以商定的時間阱佛,等待代碼成為測試人員的瓶頸。
測試同學(xué)非常被動:當需求質(zhì)量戴而、開發(fā)質(zhì)量差的時候凑术,你只能被動接受,結(jié)果就是你會進行漫長痛苦的測試過程以及因為質(zhì)量差導(dǎo)致上線延期所意;
Bug的成本在后期是非常高的淮逊,需要花費很多精力和時間去修復(fù)。甚至嚴重的情況是產(chǎn)品都不能按時發(fā)布扶踊,導(dǎo)致很大的損失泄鹏。
很有可能一個線上問題裸奔了幾個月,最后是業(yè)務(wù)方先發(fā)現(xiàn)才排查到是Bug導(dǎo)致秧耗,由于影響時間過長給公司造成的損失巨大备籽,還被質(zhì)疑為什么這么明顯簡單的問題上線之后沒人發(fā)現(xiàn)。
不管是測試左移還是測試右移分井,都是為產(chǎn)品質(zhì)量服務(wù)车猬。不要把提測認為是測試活動的開始,上線是測試活動的結(jié)束尺锚,更不要認為質(zhì)量只是測試同學(xué)需要關(guān)注的珠闰。
01
測試左移
測試左移的思想,本質(zhì)是越早的發(fā)現(xiàn)不合理的地方出問題的幾率就越低瘫辩。
測試左移的原則支持測試團隊在軟件開發(fā)周期早期和所有干系人合作伏嗜。因此他們能清晰地理解需求以及設(shè)計測試用例去幫助軟件“快速失敗”,促使團隊更早的修改所有的bug伐厌。
參與和理解會使測試人員獲取產(chǎn)品完整的知識阅仔,徹底想清楚各種場景,根據(jù)軟件行為設(shè)計實時的場景弧械,這些都會幫助團隊在編碼完成之前識別出一些缺陷八酒。
我看到對于測試左移很好的理解,真正的測試左移就包含2個方面:
提高質(zhì)量上限
提高質(zhì)量上限刃唐,其實是通過一系列活動羞迷,來避免問題或者本身就讓我們起步就變得很好的,一句話:良好的開始是成功的一半
提高質(zhì)量下限
提高質(zhì)量下限画饥,其實是通過一系列的活動衔瓮,讓我們的質(zhì)量成果得以保證的
測試左移,其實就是通過一系列的活動抖甘,能提高質(zhì)量的上限热鞍,縮短測試的周期,提高質(zhì)量的下限,這樣子薇宠,我們就可以在不斷提高下限的過程中偷办,始終將質(zhì)量穩(wěn)定在一個水平線上,而和團隊一起追求更高的目標了澄港。
從不重視代碼質(zhì)量的第一天開始椒涯,就埋下了問題修復(fù),定位的成本和修復(fù)問題再次引入問題的成本回梧。
當測試在周期的早期開始時废岂,團隊會更專注于質(zhì)量,并且“讓我們在第一時間獲得正確的編碼”前景狱意。這有助于節(jié)省大量時間湖苞,并減少軟件開發(fā)團隊必須為特定代碼執(zhí)行的迭代次數(shù)。
測試左移详囤,我們可以做什么
對于測試左移其實我們還有很多東西要做袒啼,就好像一開始說到的都是為產(chǎn)品質(zhì)量服務(wù),那么在研發(fā)流程中的任何角色纬纪、人員都要為質(zhì)量服務(wù)蚓再。
有哪些活動可以提高質(zhì)量上限(舉例)?
健康的項目流程(合理并且嚴格遵守的項目流程)
合理的需求分析(評估需求的質(zhì)量包各,分析需求的合理性以及完整性)
出色的系統(tǒng)架構(gòu)
完整的系統(tǒng)設(shè)計(評估設(shè)計的質(zhì)量摘仅,分析需求的合理性以及完整性)
充分利用靜態(tài)代碼掃描
進行研發(fā)標準的定義
更早的測試分析(先于開發(fā)完成需求的分析,做好各種評審的準備)
盡早的測試執(zhí)行(提早參與測試執(zhí)行问畅,在集成前就發(fā)現(xiàn)一些問題)
有哪些活動可以提高質(zhì)量下限(舉例)娃属?
健康的測試流程
優(yōu)秀的測試用例
合理的測試計劃
合適的自動化
適當?shù)奶剿魇綔y試
開發(fā)自測(TDD、BDD护姆,測試提供更好的用例矾端、技術(shù)支持)
團隊質(zhì)量意識的培養(yǎng)
對于測試左移,也需要一個重要的基礎(chǔ)卵皂,工程習(xí)慣秩铆,SDLC成熟度,測試分層灯变,持續(xù)集成殴玛,鏈路上延展發(fā)布的節(jié)奏,縱深上需要貼合業(yè)務(wù)的專精領(lǐng)域的深度探索添祸,代碼掃描(規(guī)范滚粟,問題,安全刃泌,異常等)凡壤,CR署尤, 代碼提交行為分析,test double(mock 亚侠, fake曹体, stub,dummy)盖奈, UT, 自動化狐援,驗收測試等钢坦。左移需要工程效率具備不亞于研發(fā)的代碼能力。
因此對于測試左移啥酱,筆者認為可以圍繞質(zhì)量服務(wù)思想展開爹凹,參與人員則不僅僅局限于測試人員
測試左移實踐問題
當然實踐起來會存在一些問題,例如筆者團隊實踐起來镶殷,就出現(xiàn)了
測試要求提供概要設(shè)計禾酱、接口文檔!;媲鳌颤陶!
測試要求單元測試必須通過!O菡凇滓走!
測試干預(yù)需求設(shè)計!C辈觥搅方!
很多人都認為是測試在要求完成一些沒必要的事情,測試在干預(yù)我的工作绽族。
其實問題的矛盾點在于前面說過的一句話:不管是測試左移還是測試右移姨涡,都是為產(chǎn)品質(zhì)量服務(wù)。不要把提測認為是測試活動的開始吧慢,上線是測試活動的結(jié)束涛漂,更不要認為質(zhì)量只是測試同學(xué)需要關(guān)注的。
對于測試左移的落實检诗,最重要的就是全員質(zhì)量服務(wù)意識的培養(yǎng)
02
測試右移
左移是往測試之前的開發(fā)階段移怖喻,右移是往發(fā)布之后移。也就是產(chǎn)品上線了之后也可以進行一些測試活動岁诉。當然在生產(chǎn)環(huán)境直接做測試是不推薦的锚沸,但是我們可以在生產(chǎn)環(huán)境做監(jiān)控,監(jiān)控線上性能和可用率涕癣,一旦線上發(fā)生任何問題哗蜈,盡快反應(yīng)前标,提前反應(yīng),給用戶良好的體驗距潘。技術(shù)同學(xué)要比業(yè)務(wù)方先發(fā)現(xiàn)問題炼列,如果業(yè)務(wù)方已經(jīng)發(fā)現(xiàn)業(yè)務(wù)量明顯下降,說明問題已經(jīng)很嚴重了音比。
測試右移其實還可以理解為如果線上發(fā)生任何問題俭尖,我們有沒有能力第一時間發(fā)現(xiàn)問題并解決問題,并保證線上數(shù)據(jù)的一致性或盡可能少的影響線上用戶洞翩,以及并且實時獲取用戶反饋稽犁。
測試右移,我們可以做什么
對于測試右移骚亿,線上監(jiān)控可以是突破點已亥,舉例:
閉環(huán)的線上問題反饋-檢查-解決-更新流程
更便捷的日志查看、回傳服務(wù)
豐富有效的log来屠,便于問題的快速定位
豐富的監(jiān)控指標(例如業(yè)務(wù)異常點指標)
成本監(jiān)控(例如短信發(fā)送等)
關(guān)鍵指標每日監(jiān)控(服務(wù)器指標)
生產(chǎn)數(shù)據(jù)監(jiān)控(警報)(通過sql語句實現(xiàn)生產(chǎn)數(shù)據(jù)監(jiān)控虑椎,例如是否有多個訂單號一樣的訂單出現(xiàn)等)
因此對于測試右移,我認為可以圍繞問題反饋俱笛、發(fā)現(xiàn)捆姜、定位、監(jiān)控展開迎膜,參與人員則不僅僅局限于運維人員
測試右移娇未,實踐問題
當然一樣的,實踐起來也是存在問題星虹,除了技術(shù)問題之外零抬,還有例如:
線上監(jiān)控搭建后無人使用
線上問題反饋機制,業(yè)務(wù)人員不配合等等
監(jiān)控指標不合理宽涌,反而被認為增加服務(wù)器負載
測試右移的落實平夜,除了質(zhì)量服務(wù)的培養(yǎng),更加重要的反而可能是:完善的反饋卸亮、發(fā)現(xiàn)忽妒、定位,在監(jiān)控架構(gòu)完善后兼贸,怎么更好的與項目流程結(jié)合消返,不要讓其成為累贅