推薦必讀:測(cè)試人員如何快速熟悉新業(yè)務(wù)?
以下文章來(lái)源于畢小煩 ,作者陳愛(ài)嬌
身處職場(chǎng),學(xué)習(xí)新業(yè)務(wù)在所難免,尤其是測(cè)試人員,具備良好的業(yè)務(wù)知識(shí)是我們做好質(zhì)量保障的前提,不管是職場(chǎng)「新人」還是「老人」,快速熟悉業(yè)務(wù)的能力都是不可或缺的,這是我們安身立命的根本。
但,這樣的能力并不是很顯性,筆者有著十幾年的測(cè)試經(jīng)驗(yàn),負(fù)責(zé)過(guò) C 端、B 端和 G 端的業(yè)務(wù),本文嘗試梳理出一些快速熟悉新業(yè)務(wù)的方法,希望能夠帶給大家一些啟發(fā)。
有兩種學(xué)習(xí)模式
在學(xué)習(xí)新業(yè)務(wù)時(shí),通常有兩種模式:
授課式: 老師/師兄/師姐帶著你學(xué)習(xí),言傳身教劃重點(diǎn),苦口婆心加考試;
自學(xué)式:自己看一堆的學(xué)習(xí)資料、測(cè)試沉淀、業(yè)務(wù)文檔,有問(wèn)題再找人問(wèn);
授課式是被別人帶著走,自學(xué)式是按自己的方式走。從人性的角度來(lái)講,顯然有人教更好,也更快,直接告知重點(diǎn),躲避深坑,有老師傅帶著一路過(guò)關(guān)斬將,打怪升級(jí),?!
可事實(shí)上,專家沒(méi)那么多,也沒(méi)那么閑。因此,大部分情況下,我們都處于第二種:自學(xué)式, 師傅領(lǐng)進(jìn)門,修行在個(gè)人,按自己的方式學(xué)習(xí),方法就尤為重要了。
要學(xué)會(huì)打怪升級(jí)
當(dāng)個(gè)人修行時(shí),學(xué)習(xí)跟打怪升級(jí)似有異曲同工之處。
不停重復(fù)打怪的過(guò)程,就是積累經(jīng)驗(yàn)的過(guò)程。業(yè)務(wù)中的新怪層出不窮,都帶有新的技能,那么,要想打敗它,就得提升自己的技能。不同級(jí)別,你面臨的怪是不同的,晉級(jí)之后,再遇新怪,我們總要問(wèn)一下:這是個(gè)什么?我要怎么打敗它?打敗它之后,我會(huì)獲得什么技能?
這很像保安師傅的哲學(xué)三問(wèn):你是誰(shuí)?從哪兒來(lái)?到哪去?
如果是唐僧,他會(huì)這樣回答:貧僧法號(hào)三藏,自東土大唐而來(lái)。要往西天取經(jīng)去。
如果是我們的「新業(yè)務(wù)」,應(yīng)該思考的更多一些:
你是誰(shuí)?
新業(yè)務(wù)是什么?在公司那么多產(chǎn)品里面處于一個(gè)什么樣的位置?前臺(tái)?中臺(tái)?后臺(tái)?
它依賴誰(shuí)?誰(shuí)依賴它?它面向的用戶是 B 端?C 端?還是 G 端?
它的產(chǎn)品形態(tài)是 APP?小程序?網(wǎng)站?H5?PC客戶端?公眾號(hào)?還是接口?
從哪兒來(lái)?
為什么會(huì)有這項(xiàng)新業(yè)務(wù)?它的定位是什么?
價(jià)值是什么?衍變路徑是什么?
到哪里去?
新業(yè)務(wù)的目標(biāo)是什么?
發(fā)展路徑是什么?
階段性目標(biāo)是什么?
所以,學(xué)習(xí)新業(yè)務(wù)就像打怪升級(jí),搞清楚這三個(gè)業(yè)務(wù)背景問(wèn)題,會(huì)讓你接下來(lái)進(jìn)入業(yè)務(wù)細(xì)節(jié)更加胸有成竹。
熟悉業(yè)務(wù)三部曲
1. 看懂業(yè)務(wù):由表及里
① 看功能:從直觀的角度來(lái)看,新業(yè)務(wù)展現(xiàn)的產(chǎn)品功能和業(yè)務(wù)規(guī)則是什么?
比如電商大促,各種優(yōu)惠商品直接打折降價(jià),再疊加平臺(tái)的滿減活動(dòng),再疊加 88 會(huì)員的折扣等等,你首先得理解這些產(chǎn)品功能和業(yè)務(wù)規(guī)則。
② 看結(jié)構(gòu):從業(yè)務(wù)的結(jié)構(gòu)來(lái)看,新業(yè)務(wù)在公司的整個(gè)業(yè)務(wù)板塊中處于哪一層,它依賴的上下游業(yè)務(wù)是什么?
③ 看細(xì)節(jié):從產(chǎn)品的細(xì)節(jié)來(lái)看,每個(gè)操作步驟都會(huì)包含很多的系統(tǒng)交互。
比如上面提到的優(yōu)惠業(yè)務(wù),包括了:?jiǎn)纹穬?yōu)惠、商家優(yōu)惠、平臺(tái)優(yōu)惠。那么大促期間,這些其實(shí)是混合在使用的,每一種優(yōu)惠都會(huì)有不同的應(yīng)用場(chǎng)景;那么,每一種優(yōu)惠它的操作入口, 它涉及到的交互系統(tǒng)有哪些, 他們通過(guò)什么接口進(jìn)行交互等等,都是要去熟悉和學(xué)習(xí)的。
④ 從用戶角度看:不同的用戶對(duì)產(chǎn)品的功能會(huì)有不一樣的訴求,也決定了我們?cè)谶M(jìn)行業(yè)務(wù)測(cè)試的時(shí)候,除了業(yè)務(wù)的準(zhǔn)確性外, 測(cè)試重點(diǎn)也不同。
比如電商大促, 對(duì)于招商系統(tǒng)而言,它是 To B 的業(yè)務(wù),主要的訴求在于:系統(tǒng)穩(wěn)定、便于操作,用戶量可能在百萬(wàn)級(jí)別, 用戶的主要使用場(chǎng)景是通過(guò) Web 端來(lái)操作;
對(duì)于交易系統(tǒng)而言,它是 To C 的業(yè)務(wù), 主要的訴求在于:系統(tǒng)穩(wěn)定、實(shí)時(shí)性要求高(各種優(yōu)惠及時(shí)更新、庫(kù)存更新等)、并發(fā)量高,用戶量在千萬(wàn)及億級(jí)別,用戶的主要使用設(shè)備是通過(guò)手機(jī) APP 端來(lái)操作;
當(dāng)了解我們的用戶人群后,在做基本的業(yè)務(wù)功能驗(yàn)證后,還需要驗(yàn)證非功能性的需求,比如高并發(fā)如何保證系統(tǒng)的可靠性, 比如大促期間的實(shí)時(shí)性(庫(kù)存、優(yōu)惠等),如何來(lái)保證準(zhǔn)確性?不同的客戶端,需要做哪些兼容性驗(yàn)證?
⑤ 從業(yè)務(wù)價(jià)值看:談業(yè)務(wù)價(jià)值,其實(shí)就是談我們這塊業(yè)務(wù)存在的目的,它能帶來(lái)什么價(jià)值,它的目標(biāo)是什么?是補(bǔ)充公司的業(yè)務(wù)空白,擴(kuò)大商業(yè)版圖,還是為公司增加營(yíng)收。
當(dāng)一個(gè)產(chǎn)品的目的是為了快速占有市場(chǎng), 那么,我們就需要快速迭代, 測(cè)試的側(cè)重點(diǎn),就會(huì)在效率上,如何在保證質(zhì)量的基礎(chǔ)上,快速發(fā)版, 可能會(huì)忽略一些并發(fā)性,或者是用戶體驗(yàn)的功能;如果是一個(gè)穩(wěn)定的業(yè)務(wù),比如電商大促,這么幾年走下來(lái),它就是個(gè)穩(wěn)定的業(yè)務(wù),那如何提升用戶的體驗(yàn),保證實(shí)時(shí)性,就會(huì)成為我們的測(cè)試重點(diǎn);
⑥ 從盈利模式看:在資本市場(chǎng)中,不盈利的產(chǎn)品很容易就被淘汰掉。
我們要熟悉的新業(yè)務(wù)的盈利模式是什么?是賣產(chǎn)品?賣服務(wù)?還是賣廣告?于測(cè)試人員而言, 根據(jù)不同的盈利模式來(lái)進(jìn)一步了解產(chǎn)品的價(jià)值,反向驅(qū)動(dòng)我們?nèi)ニ伎紭I(yè)務(wù)的測(cè)試重點(diǎn),這是一件很有價(jià)值的事情;
2. 看透業(yè)務(wù):系統(tǒng)剖析
看懂業(yè)務(wù)之后,我們需要看透業(yè)務(wù),通過(guò)解剖系統(tǒng)來(lái)加深對(duì)系統(tǒng)的理解。
在這個(gè)過(guò)程中, 我們需要了解到:
所負(fù)責(zé)業(yè)務(wù)的系統(tǒng)交互
系統(tǒng)如何和上下游系統(tǒng)交互,這種更直白的是,看一下時(shí)序圖,清晰的了解各個(gè)系統(tǒng)之間是通過(guò)什么接口進(jìn)行交互的,交互的出入?yún)⑹鞘裁??帶著業(yè)務(wù)驗(yàn)證的目的來(lái)了解系統(tǒng);
系統(tǒng)內(nèi)部各個(gè)模塊的劃分,哪些是公共模塊,哪些是業(yè)務(wù)實(shí)現(xiàn)層?
從上面?zhèn)z張圖都可以看出應(yīng)用中各個(gè)模塊所承擔(dān)的功能,以及一些公共的服務(wù)及流程,我們所負(fù)責(zé)的業(yè)務(wù)流程是不是也是這么走的,一旦改動(dòng)到公共模塊或者公共服務(wù)的話,我們除了驗(yàn)證當(dāng)前的業(yè)務(wù)流程外,還需要驗(yàn)證哪些關(guān)聯(lián)流程;
數(shù)據(jù)流向怎么走?數(shù)據(jù)如何變更?
每一條數(shù)據(jù)都有它存在的意義,每一個(gè)字段都有它的特定含義,不同的表代表不同的含義,不同的字段也有不同的業(yè)務(wù)邏輯。我們需要將業(yè)務(wù)流和背后的數(shù)據(jù)流關(guān)聯(lián)起來(lái),以便更好的理解每一次的數(shù)據(jù)變更,更好的為后續(xù)做功能測(cè)試打下基礎(chǔ),知道哪些是關(guān)鍵驗(yàn)證字段, 避免功能場(chǎng)景遺漏。
如果很有幸,你一進(jìn)來(lái),跟進(jìn)的就是一個(gè)純新的系統(tǒng),從需求到方案設(shè)計(jì)到系統(tǒng)上線的話,那你真的很幸運(yùn),可以從頭了解這個(gè)系統(tǒng)的搭建,按上面的方式來(lái)了解你即將負(fù)責(zé)的系統(tǒng)及業(yè)務(wù);
假如你負(fù)責(zé)的是一個(gè)老的業(yè)務(wù)系統(tǒng),要在老的系統(tǒng)上做迭代,那么, 你仍然可以遵循上面的 3 個(gè)方面來(lái)梳理你對(duì)業(yè)務(wù)的理解。同時(shí),找歷史資料,找資深的同學(xué)來(lái)了解系統(tǒng)架構(gòu)、系統(tǒng)模塊功能、數(shù)據(jù)流等, 請(qǐng)多問(wèn)、問(wèn)、問(wèn)!
這個(gè)階段,還有一個(gè)問(wèn)題沒(méi)講:?jiǎn)栴}排查的方案及手段,這些內(nèi)容接下來(lái)我們會(huì)講到。
3. 看好業(yè)務(wù):動(dòng)手實(shí)踐
在看懂業(yè)務(wù)、看透業(yè)務(wù)之后,我們就需要履行本職:看(kān)好業(yè)務(wù)了,假設(shè)我們要獨(dú)立測(cè)試這塊業(yè)務(wù),要怎么測(cè)試,怎么設(shè)計(jì)測(cè)試用例,用什么方式來(lái)進(jìn)行測(cè)試,如何驗(yàn)證功能的準(zhǔn)確性,遇到錯(cuò)誤,如何排查呢?
基于上述問(wèn)題,我們需要做的事情:
測(cè)試用例設(shè)計(jì):基于產(chǎn)品的 PRD,研發(fā)的設(shè)計(jì)方案及我們自己對(duì)系統(tǒng)的了解、時(shí)序圖等進(jìn)行用例設(shè)計(jì),考慮基本的:正常流、分支流、異常流三類。對(duì)于本次的改動(dòng)范圍要評(píng)估是否需要做老功能的回歸, 對(duì)于一些新增的開(kāi)關(guān)、或緩存等,要做對(duì)應(yīng)的專項(xiàng)驗(yàn)證;
測(cè)試方法:手工驗(yàn)證 or 自動(dòng)化驗(yàn)證?
數(shù)據(jù)準(zhǔn)備:是否已有現(xiàn)成的工具或腳本可以快速生成測(cè)試數(shù)據(jù)?如果沒(méi)有的話,怎么造測(cè)試數(shù)據(jù)?(造數(shù)據(jù)的過(guò)程?)
結(jié)果驗(yàn)證:業(yè)務(wù)展示是否符合預(yù)期,DB 中的數(shù)據(jù)是否符合預(yù)期?
是否需要做非功能性驗(yàn)證:兼容性、安全性、性能壓測(cè)等;
問(wèn)題排查:遇到問(wèn)題,如何排查?(定位根因,積累經(jīng)驗(yàn)的最快速的方法)
系統(tǒng)現(xiàn)象:頁(yè)面報(bào)錯(cuò)、服務(wù)調(diào)用失敗等這一類都是直觀的展示,還有一類是流程鏈路比較長(zhǎng),看起來(lái)頁(yè)面都是正常的, 但是 DB 數(shù)據(jù)不符合預(yù)期,會(huì)導(dǎo)致下一個(gè)環(huán)節(jié)報(bào)錯(cuò)的場(chǎng)景;
日志排查:根據(jù)業(yè)務(wù)操作,看下后臺(tái)日志訪問(wèn),有無(wú)錯(cuò)誤日志打印,日志告訴你錯(cuò)在哪一行,根據(jù)日志的錯(cuò)誤提示,去對(duì)應(yīng)的分支代碼中查看對(duì)應(yīng)行的代碼;
數(shù)據(jù)排查: 根據(jù)數(shù)據(jù)反查, 根據(jù)你對(duì)系統(tǒng)的了解, 梳理哪里會(huì)涉及到這塊 DB 數(shù)據(jù)的變更,反查回去看看具體的代碼邏輯,看具體走到哪個(gè)分支里去,再參照對(duì)應(yīng)的系統(tǒng)日志,跟蹤定位到具體的出錯(cuò)的代碼行;
翻看代碼:不管是從日志排查還是根據(jù)數(shù)據(jù)排查, 都需要去翻代碼看看, 有時(shí)候,這一行報(bào)錯(cuò),不是因?yàn)檫@一行有錯(cuò),而是中間過(guò)程中,由于入?yún)?wèn)題,導(dǎo)致走到其他分支了,這種時(shí)候就需要深究下去,到底是從哪里開(kāi)始出錯(cuò)。
于測(cè)試人員而言,不一定要完整的定位出根因,但是希望通過(guò)這樣的排查過(guò)程,對(duì)系統(tǒng)的實(shí)現(xiàn)有所了解,在后續(xù)的業(yè)務(wù)改動(dòng)中,也能夠了解到改動(dòng)影響的范圍,有自己的判斷,而不是等待他人的輸入。
當(dāng)我們能完整的走過(guò)上面的三步,再回過(guò)頭來(lái)看業(yè)務(wù),可能會(huì)有一種恍然大悟的感覺(jué),會(huì)有一種“原來(lái)如此”的感悟。但我們可能仍然只是處于剛?cè)腴T的階段,后續(xù)需要通過(guò)不斷的重復(fù)、加深記憶的過(guò)程來(lái)不斷的完善我們對(duì)業(yè)務(wù)的了解。
我們的腦海中對(duì)業(yè)務(wù)的構(gòu)建,是不斷具象的過(guò)程,其實(shí),也可以同步思考下:我們?cè)瓉?lái)的測(cè)試模式有沒(méi)有可以優(yōu)化的地方?我們有哪些步驟是可以通過(guò)工具化的手段來(lái)實(shí)現(xiàn)的?假設(shè)要你來(lái)做一個(gè)提效的工具或者要提升你負(fù)責(zé)模塊的項(xiàng)目質(zhì)量, 你會(huì)從哪些方面入手,你需要做哪些的知識(shí)儲(chǔ)備。。。等等,通過(guò)不斷深入業(yè)務(wù),深入系統(tǒng),深入思考,才能更好的激發(fā)創(chuàng)意,為工作帶來(lái)持續(xù)的正反饋!
總結(jié)
新業(yè)務(wù)的學(xué)習(xí),是一個(gè)不斷積累的過(guò)程,只有在經(jīng)過(guò)不停地學(xué)習(xí)、實(shí)踐、問(wèn)題排查,這樣的重復(fù)過(guò)程后,才會(huì)加深我們對(duì)業(yè)務(wù)的理解。隨著業(yè)務(wù)知識(shí)、系統(tǒng)架構(gòu)等方面的提升,也會(huì)反哺我們對(duì)業(yè)務(wù)的了解,從而達(dá)到陌生到熟悉的變化。
最后,再送大家一句話:好記性不如爛筆頭,隨時(shí)記錄,思考,梳理,重構(gòu),會(huì)有驚喜噢!
作者:陳愛(ài)嬌
歡迎關(guān)注微信公眾號(hào) :Python測(cè)試社區(qū)