背景:
一家主要是做一款A(yù)PP的公司他匪,公司技術(shù)部門(mén)有三個(gè)組:爬蟲(chóng)組菇存、服務(wù)端組和APP客戶端組邦蜜。
事實(shí)回放:
1)每次運(yùn)營(yíng)或產(chǎn)品提出一個(gè)BUG給到測(cè)試工程師后。
2)測(cè)試工程師就會(huì)憑感覺(jué)和經(jīng)驗(yàn)(而不是技能判斷)判斷這個(gè)BUG是哪個(gè)組悼沈,判斷之后就會(huì)把這個(gè)BUG指派給該組的負(fù)責(zé)同事A絮供。
注意:我們的績(jī)效是按照每個(gè)團(tuán)隊(duì)每位同事產(chǎn)生的生產(chǎn)BUG去扣分的。
3)接收到這個(gè)BUG的開(kāi)發(fā)同事A開(kāi)始排查問(wèn)題壤靶,花了半小時(shí)排查完之后發(fā)現(xiàn)這個(gè)BUG不是我這邊的問(wèn)題,于是就又丟給測(cè)試工程師贮乳,同時(shí)責(zé)備測(cè)試不應(yīng)該把不是他的BUG指派給他,一來(lái)浪費(fèi)他的時(shí)間包雀,二來(lái)又影響他的績(jī)效亲铡。
4)測(cè)試根據(jù)開(kāi)發(fā)同事A的各種排查描述,得知這個(gè)BUG可能(是的奖蔓,可能)是另一個(gè)組的開(kāi)發(fā)同事B的問(wèn)題,于是測(cè)試就把這個(gè)BUG指派給開(kāi)發(fā)同事B厨疙。
5)接收到這個(gè)BUG的開(kāi)發(fā)同事B開(kāi)始排查問(wèn)題(每個(gè)組的開(kāi)發(fā)排查方式未必相同),順利的情況下沾凄,最后排查得出這個(gè)BUG確實(shí)是我的。
6)開(kāi)發(fā)同事B開(kāi)始處理BUG撒蟀,處理完之后給到測(cè)試驗(yàn)收,直到BUG關(guān)閉手负。
流程圖如下圖1:
在這個(gè)過(guò)程中姑尺,還有隱形的多種問(wèn)題:
1、驗(yàn)收在接收到測(cè)試工程師指派的無(wú)法確定是否是需要我處理的這類(lèi)BUG時(shí)切蟋,會(huì)一直讓這個(gè)BUG掛機(jī)在那不做處理敦姻,原因很簡(jiǎn)單瘾境,我花半小時(shí)去排查這個(gè)BUG镰惦,很有可能這個(gè)BUG不是我的旺入。
2、開(kāi)發(fā)經(jīng)常性懟測(cè)試工程師茵瘾,你怎么證明這個(gè)BUG就是我的?我就是不處理拗秘!還有你為什么總是把不是我的BUG指派給我?而測(cè)試工程師的回懟總是無(wú)力的“我怎么知道這個(gè)BUG是不是你的扮匠?”凡涩。
3、在互相扯皮的過(guò)程中活箕,嚴(yán)重降低了“測(cè)試-研發(fā)”的合作效率。
處理方案:
孔子曰“其身正,不令而行克蚂;其身不正,雖令不從”翠拣,對(duì)于測(cè)試工程師來(lái)說(shuō)游盲,打鐵還需自身硬蛮粮。提高測(cè)試工程師排查BUG的能力勢(shì)在必行。
當(dāng)測(cè)試工程師拿到一個(gè)BUG時(shí)然想,可以通過(guò)APP抓包和查找數(shù)據(jù)庫(kù)表的方式排查這個(gè)問(wèn)題到底是那個(gè)開(kāi)發(fā)工程師的。
舉例:在APP上有一張圖片無(wú)法正常呈現(xiàn)出來(lái)变泄,而這個(gè)圖片是由爬蟲(chóng)工程師采集過(guò)來(lái)的。
處理:
1)測(cè)試工程師先通過(guò)抓包的方式找出這個(gè)圖片相關(guān)的HTTP請(qǐng)求內(nèi)容屏富,如果這個(gè)請(qǐng)求內(nèi)容里面的圖片URL為空蛙卤,那么這個(gè)BUG很可能就是爬蟲(chóng)在采集數(shù)據(jù)或入庫(kù)數(shù)據(jù)時(shí)出了問(wèn)題,找出共性和規(guī)則給到爬蟲(chóng)工程師去處理神年。
2)如果這個(gè)圖片URL是有值的,并且這個(gè)URL可以正常打開(kāi)行嗤,但是這個(gè)URL的格式不是OSS的格式(服務(wù)端會(huì)把外面的圖片保存到我們的OSS環(huán)境中),那么這個(gè)問(wèn)題就是服務(wù)端在保存圖片時(shí)出了問(wèn)題飘千,找出共性和規(guī)則給到服務(wù)端工程師去處理既琴。
3)如果這個(gè)圖片URL的格式是OSS,并且可以正常打開(kāi)甫恩,但是只是在APP上無(wú)法呈現(xiàn),那么這個(gè)問(wèn)題就是客戶端在顯示圖片時(shí)出了問(wèn)題奖慌,找出共性和規(guī)則給到客戶端工程師去處理抛虫。
如果測(cè)試工程師可以做到這樣的話,BUG提交和處理的流程變成如下圖2所示:
當(dāng)然建椰,在這個(gè)過(guò)程中岛马,測(cè)試工程師一要提高自己排查BUG的準(zhǔn)確度啦逆,二要提高自己排查BUG過(guò)程可以給開(kāi)發(fā)做參考的可用度。
擴(kuò)展:
“作為一名軟件測(cè)試工程師夏志,需要具備哪些能力?”需要具備的能力很多湿诊,但是我覺(jué)得排查BUG能力是最重要瘦材,最有效,也是最容易被忽視的一點(diǎn)九杂。
測(cè)試工程師的主要職責(zé)包括質(zhì)檢和質(zhì)控宣蠕,質(zhì)檢的東西大家都說(shuō)的很多,質(zhì)控的就比較少啦镀层,我在這里也提一下皿曲。
質(zhì)控一:上游工作質(zhì)控
在產(chǎn)品剛立項(xiàng)、進(jìn)行需求確認(rèn)的時(shí)候坞古,測(cè)試人員就會(huì)參與進(jìn)去劫樟,仔細(xì)地Review需求织堂,看需求是不是完整、有沒(méi)有漏洞易阳,這個(gè)時(shí)候還沒(méi)有進(jìn)入正式開(kāi)發(fā)吃粒,修改需求對(duì)于項(xiàng)目組來(lái)說(shuō)代價(jià)是最少的徐勃。在這個(gè)環(huán)節(jié),測(cè)試人員憑借縝密的推演很魂、發(fā)散性的思維,往往能發(fā)現(xiàn)很多需求的漏洞檐涝,提高了項(xiàng)目的整體效率谁榜。
另外凡纳,測(cè)試人員在完成測(cè)試計(jì)劃、測(cè)試用例以后巷怜,會(huì)邀請(qǐng)開(kāi)發(fā)暴氏、產(chǎn)品一起評(píng)審測(cè)試用例,在這個(gè)環(huán)節(jié)关带,由于測(cè)試人員把每個(gè)需求如何細(xì)化測(cè)試都體現(xiàn)在了用例里面沼撕,就相當(dāng)于再次把需求分析了個(gè)透,往往還能發(fā)現(xiàn)很多需求的漏洞磨总。這也是提早發(fā)現(xiàn)需求漏洞的有效環(huán)節(jié)笼沥。
質(zhì)控二:下游工作質(zhì)控
在產(chǎn)品完成了測(cè)試以后娶牌,就是發(fā)布的環(huán)節(jié)了裙戏,測(cè)試人員在發(fā)布的環(huán)節(jié)也能發(fā)揮作用厕诡。首先,測(cè)試人員為了部署測(cè)試環(huán)境壹罚,研究自動(dòng)化部署的技術(shù),可以把上線部署的環(huán)節(jié)也自動(dòng)化猖凛,以前需要2個(gè)小時(shí)的部署環(huán)節(jié)壓縮到半個(gè)小時(shí)甚至更少辨泳,而且更加準(zhǔn)確可靠玖院。
如果有些版本修改比較多难菌,上線的質(zhì)量風(fēng)險(xiǎn)大试溯,測(cè)試人員會(huì)跟產(chǎn)品一起制定灰度發(fā)布的方案并在技術(shù)上進(jìn)行實(shí)現(xiàn),讓版本先面向一小部分用戶開(kāi)放遇绞,如果發(fā)現(xiàn)Bug了摹闽,影響的用戶也比較小荠耽,Bug改掉以后铝量,再逐漸擴(kuò)大用戶范圍倘屹。
另外,優(yōu)秀的測(cè)試人員還會(huì)發(fā)動(dòng)項(xiàng)目組的其他人一起來(lái)保證項(xiàng)目質(zhì)量纽匙,比如推動(dòng)開(kāi)發(fā)進(jìn)行代碼Review拍谐;引入冒煙自測(cè)流程,讓開(kāi)發(fā)先自測(cè)以后再提交給測(cè)試做冒煙測(cè)試院喜;通過(guò)在項(xiàng)目組分析Bug晕翠,讓開(kāi)發(fā)提高自測(cè),降低Bug數(shù)量等硫麻;引入策劃拿愧、交互浇辜、視覺(jué)在測(cè)試階段進(jìn)行走查等等各種措施唾戚。