近來被派到XX公司學(xué)習(xí),我很奇怪筷登,一個快被淘汰剃根,干什么都不讓人滿意的人,還會被拍出來學(xué)習(xí)前方。有覺得浪費公共資源的羞愧感狈醉。
昨日按計劃原定是想找測試部門的負(fù)責(zé)人,學(xué)習(xí)了解XX公司測試流程镣丑、如何提升測試質(zhì)量舔糖、如何對測試人員進(jìn)行考核等問題。經(jīng)協(xié)調(diào)莺匠,與一個叫*姐的人對接金吗。
*姐在了解的我的來意后,問道:“你知道我的職位是什么嗎趣竣?”我說:“我的要求是和測試團(tuán)隊的負(fù)責(zé)人進(jìn)行交流學(xué)習(xí)摇庙,所以我認(rèn)為您是測試團(tuán)隊的負(fù)責(zé)人”,*姐說:“你都不知道我的職位是什么遥缕,你就來找我卫袒?”場面一度非常尷尬。然后*姐問我单匣,你現(xiàn)在遇到了什么問題夕凝。我說,我?guī)ьI(lǐng)著一直研發(fā)團(tuán)隊户秤,研發(fā)的效率和質(zhì)量如何提升是我直接面臨的問題码秉。我們的產(chǎn)品迭代過程中,測試周期很長鸡号,經(jīng)常和開發(fā)周期相當(dāng)转砖,而且上線后經(jīng)常會發(fā)生一些質(zhì)量問題,追究下來測試和我說沒測試到鲸伴,也沒辦法全測試到府蔗,研發(fā)說寫代碼本來也就無法保證100%不出問題晋控,無人承擔(dān)責(zé)任。如何解決這個問題姓赤,如何對測試過程進(jìn)行管理赡译,如何考核?
*姐輕蔑的笑了笑模捂,開始了他犀利但深刻的方法論:
產(chǎn)品的質(zhì)量把控捶朵,不在于測試。測試是整個產(chǎn)研周期的最后一個環(huán)節(jié)狂男,它對產(chǎn)品的理解是最低的综看,對產(chǎn)品理解最深的是產(chǎn)品經(jīng)理,然后是研發(fā)岖食,最后才是測試红碑。所以要解決研發(fā)效率和質(zhì)量是一個環(huán)環(huán)相扣的體系,要從最開始說起泡垃,也就從產(chǎn)品經(jīng)理開始析珊。
*姐詢問我們是否有需求評審環(huán)節(jié),研發(fā)測試是否參與蔑穴,并在了解崗位配置情況后渐白,*姐再次輕蔑的笑了笑催训,你們的產(chǎn)品經(jīng)理太好當(dāng)了。也許你們的產(chǎn)品經(jīng)理在產(chǎn)品和邏輯思維上確實很出色,但是在項目管理菇用,落地執(zhí)行的環(huán)節(jié)上出了問題在扰。由研發(fā)來拆解需求功能點宪躯,是錯誤的厨内。這是你工作糊涂,領(lǐng)導(dǎo)搞不清你到底在做什么茄袖,對效率不滿意的關(guān)節(jié)點操软。需求拆解成功能點,必須由產(chǎn)品經(jīng)理來執(zhí)行宪祥。當(dāng)一個需求拆解成功能點后聂薪,大致的開發(fā)周期其實就已經(jīng)出來了。
需求拆解成功能點蝗羊,一般分為三級:
[if !supportLists]1.?[endif]一級是功能模塊胆建,例如你做APP,需要有用戶注冊、消息推送模塊肘交,這個是一級需求。
[if !supportLists]2.?[endif]用戶注冊需要有用戶信息填寫扑馁、短信驗證等功能涯呻,這是二級功能凉驻。
[if !supportLists]3.?[endif]短信驗證有具體的驗證邏輯,例如手機(jī)號驗證复罐、重復(fù)提交等涝登,這是三級功能點。
一般來說效诅,在XX公司胀滚,二級功能,執(zhí)行時間一般是1-2天乱投,你們要弱一些咽笼,但不能超過3-5天。
所以戚炫,通過需求文檔的功能拆解有四個好處:
[if !supportLists]1.?[endif]方案清晰剑刑,評估準(zhǔn)確,評審起來很舒服双肤,不會遺漏功能施掏。
[if !supportLists]2.?[endif]在你大致清楚一個功能點的開發(fā)周期后,研發(fā)也沒有太多扯皮的余地茅糜。當(dāng)然你要相信你的研發(fā)團(tuán)隊七芭,具體情況還是要具體評估的。1-2天或3-5天只是一個大致的標(biāo)準(zhǔn)蔑赘。
[if !supportLists]3.?[endif]便于測試編寫測試用例狸驳,測試覆蓋面會很清晰很全面。
[if !supportLists]4.?[endif]需求拆解顆粒度越細(xì)米死,約便于你統(tǒng)計研發(fā)質(zhì)量锌历。但是和執(zhí)行效率要找到一個平衡點。所以推薦最多不不超過三級峦筒,二級對于你們來說也可以究西。
基于產(chǎn)品需求文檔對功能點的拆解,我們可以通過一個公式物喷,構(gòu)建一個概念卤材,來評估研發(fā)質(zhì)量,這個概念叫缺陷密度:
缺陷密度=∑(測試提交缺陷*缺陷權(quán)重)/需求總數(shù)
缺陷密度越大峦失,研發(fā)質(zhì)量就越低扇丛。所以通過這個指標(biāo)來了解你的研發(fā)團(tuán)隊開發(fā)質(zhì)量情況,對比不同團(tuán)隊的執(zhí)行情況尉辑。但是*姐再三強(qiáng)調(diào)帆精,缺陷密度是一個浮動很大的范圍,你可以作為了解研發(fā)團(tuán)隊質(zhì)量的一個感性認(rèn)識,但不合適做為KPI進(jìn)行考核卓练,因為這里有一個漏洞隘蝎,需求總數(shù)越大,缺陷密度也就越低襟企。但我反過來想嘱么,研發(fā)為了降低缺陷密度,在固定的時間里顽悼,完成了更多的需求曼振,也達(dá)到了驅(qū)動研發(fā)提高開發(fā)效率的目的。
然后*姐問蔚龙,你們研發(fā)做單元測試嗎冰评?我說,我要求研發(fā)做冒煙測試府蛇。*姐再次輕蔑的笑一下集索,你是不是不懂?你們總共做幾輪測試汇跨?我被問懵了务荆,我說,測到bug,就改穷遂,改完接著測函匕,還有問題接著改,直到測試通過蚪黑。*姐說盅惜,你們太不專業(yè)了!
測試不應(yīng)該是一個功能一個功能的提測,而應(yīng)該是一輪一輪的集中測試忌穿,并且最多不應(yīng)該操作三輪:
[if !supportLists]1.?[endif]首輪測試發(fā)現(xiàn)問題抒寂,提交研發(fā)修改。這里是要指出的是掠剑,測試出的問題屈芜,不用等所有功能測試完。發(fā)現(xiàn)問題就提交研發(fā)修改朴译,但研發(fā)修改完成后井佑,必須是提交的所有問題修改完后,在提交新一輪的測試眠寿。
[if !supportLists]2.?[endif]研發(fā)全部修改完成后提交測試進(jìn)行第二輪回歸測試躬翁,這個時候可能還有一些小問題,提交研發(fā)最終調(diào)整盯拱。
[if !supportLists]3.?[endif]最后一輪盒发,研發(fā)調(diào)整完成后例嘱,提交測試再做最終測試。這個時候應(yīng)該沒有太大問題了宁舰。如果還有問題蝶防,視情況就要對研發(fā)進(jìn)行處理了。
通過三輪測試明吩,有三個好處:
[if !supportLists]1.?[endif]約束了研發(fā)的態(tài)度。我們現(xiàn)在經(jīng)常出現(xiàn)一個問題殷费,研發(fā)做完印荔,也不管做得怎么樣,他們奉行一個理論:開發(fā)出Bug是正常的详羡,測試就是負(fù)責(zé)找Bug的仍律,找到我再改就是了。于是就出現(xiàn)我做你測实柠,測完我再改水泉,改完你再測,無數(shù)次重復(fù)窒盐。測試疲于應(yīng)付草则,研發(fā)沒有管控。
[if !supportLists]2.?[endif]提高了測試效率蟹漓。輪測制度炕横,其實給測試空出了很多時間,這些時間首先是研發(fā)自己做單元測試葡粒,以免超出輪測次數(shù)份殿,提升了研發(fā)的責(zé)任心。其次測試空出來的時間還可以做很多其他事情嗽交。*姐說卿嘲,你以為測試就是做測試嗎?測試要做用例設(shè)計夫壁、需求評審拾枣、自動化代碼編寫、然后才是測試執(zhí)行掌唾。
[if !supportLists]3.?[endif]提高了測試質(zhì)量放前。因為是輪測,測試就有了明確的測試范圍糯彬,不會被幾個細(xì)節(jié)給干擾凭语,碎片化的測試會導(dǎo)致測試系統(tǒng)性不夠,對測試質(zhì)量會有很大的影響撩扒。
談到這似扔,*姐說吨些,最后才是你的問題,當(dāng)線上產(chǎn)品出了問題炒辉,你要追責(zé)豪墅,“你的測試說我沒測試到,我也不可能什么問題都測試到黔寇。研發(fā)說偶器,我的代碼也不可能100%不出BUG,于是不知道該誰來承擔(dān)責(zé)任缝裤。只能自己頂著頭挨罵“屏轰,這個時候,你就很好處理了憋飞,你問測試兩個問題:
[if !supportLists]1.?[endif]你的測試用例覆蓋了沒霎苗?
[if !supportLists]2.?[endif]產(chǎn)品的需求寫到了沒?
測試根據(jù)產(chǎn)品的需求編寫測試用例榛做,如果產(chǎn)品寫了這個功能唁盏,定義清楚,那么就是測試用例沒有覆蓋到检眯,是測試負(fù)責(zé)厘擂。如果產(chǎn)品需求連這個功能點都沒有定義,那就是產(chǎn)品的鍋轰传。很好界定驴党。
*姐說,你不是學(xué)計算機(jī)的吧获茬,我說我是計算機(jī)科學(xué)專業(yè)的港庄,*姐說那你這么連這個都不知道。你哪個學(xué)校的恕曲?
*姐說鹏氧,我有個問題想問你,今天你是遇到了我佩谣,你掌握了這套流程把还,要是今天你沒遇到我呢?你還要花多少時間來掌握茸俭?這些東西不是我原創(chuàng)的吊履,它就在網(wǎng)上!
侮辱性不高调鬓,但傷害性極大艇炎!
*姐說,聊下來腾窝,我們兩的崗位很像缀踪,你要學(xué)兩個方向居砖,第一軟件工程能力,工程能力很重要驴娃。第二是質(zhì)量管理奏候。我說哦。
當(dāng)*姐聽到我在準(zhǔn)備考項目經(jīng)理的時候唇敞,*姐說蔗草,很好,可以去考疆柔,對你會有幫助蕉世,但是你們不要招項目經(jīng)理,對于自研產(chǎn)品的互聯(lián)網(wǎng)團(tuán)隊來說婆硬,產(chǎn)品經(jīng)理其實就涵蓋了項目經(jīng)理的職責(zé)。
然后我說奸例,我問問關(guān)于CI/CD的情況你會說嗎彬犯?郭姐輕蔑的大笑起來,不客氣的說查吊,你們現(xiàn)在就是個小作坊谐区,基本流程機(jī)制都沒整明白,硬套CI/CD逻卖,不會對你們的效率有任何幫助宋列,反而是個拖累。我再說一遍评也,今天你是遇到了我炼杖,你掌握了這套流程,要是今天你沒遇到我呢盗迟?你還要花多少時間來掌握呢坤邪?這些東西不是我原創(chuàng)的,它就在網(wǎng)上罚缕!你懂吧艇纺?
我說我懂,我之前就是到處撲火邮弹,疲于奔命黔衡,我知道我要跳出來,才能徹底解決問題腌乡,可是我一直跳不出來盟劫,認(rèn)知層面太低。*姐輕蔑的笑了导饲。
*姐最后說捞高,你還是很有領(lǐng)悟能力的氯材,一般人,聽我說這些硝岗,根本領(lǐng)悟不了氢哮,你剛才總結(jié)的很到位,我說型檀,因為這一切就是我每天都在面臨的問題冗尤,所以你一說我就特別有感觸。
*姐說胀溺,再見裂七。就不送了!