最近新接手一個(gè)項(xiàng)目C,跟蹤了一個(gè)迭代,首次迭代就遇到項(xiàng)目延期,雖然只延期了半天,但是復(fù)盤整個(gè)過(guò)程,還是有很多值得思考和改進(jìn)的地方。
簡(jiǎn)述下項(xiàng)目C的背景,項(xiàng)目C是一個(gè)Web類項(xiàng)目,分為前臺(tái)和后臺(tái),前臺(tái)面向用戶,后臺(tái)面向公司內(nèi)部人員。
本期迭代的參與人員:一個(gè)產(chǎn)品同學(xué),一個(gè)前端開發(fā)同學(xué),一個(gè)后端開發(fā)同學(xué),一個(gè)測(cè)試同學(xué)。
本次的測(cè)試策略:分階段提測(cè)。后臺(tái)優(yōu)先提測(cè),測(cè)試時(shí)間計(jì)劃為4天,前臺(tái)后續(xù)提測(cè),測(cè)試時(shí)間計(jì)劃為4天。
最終結(jié)果:延期半天,Bug總計(jì)44個(gè)。
看起來(lái)時(shí)間是非常充足的,但是最后還是延期了半天,復(fù)盤了整個(gè)過(guò)程,延期的主要原因如下:
一、測(cè)試同學(xué)個(gè)人原因
1、對(duì)項(xiàng)目的整體進(jìn)度把控不到位
純粹根據(jù)以往的項(xiàng)目經(jīng)驗(yàn),過(guò)度樂(lè)觀的評(píng)估項(xiàng)目進(jìn)度和質(zhì)量,沒(méi)有考慮到一些外部因素。
2、對(duì)項(xiàng)目功能的優(yōu)先級(jí)沒(méi)有把控好
本項(xiàng)目C有兩個(gè)功能點(diǎn)是依賴于外部項(xiàng)目F的,沒(méi)有在前期就介入測(cè)試,而是放到最后來(lái)進(jìn)行測(cè)試,最后發(fā)現(xiàn)這兩個(gè)功能點(diǎn)的問(wèn)題比較多,隨之耗時(shí)就很長(zhǎng)了。
時(shí)間主要花在與外部項(xiàng)目F的相關(guān)同學(xué)確認(rèn)對(duì)接方案和測(cè)試同學(xué)驗(yàn)證功能上了。
外部項(xiàng)目F由于歷史架構(gòu)原因,無(wú)法很好的支持該功能,最后經(jīng)過(guò)多次討論,雙方選擇了一個(gè)折中的臨時(shí)方案進(jìn)行解決,中間的溝通成本和時(shí)間成本很大。
測(cè)試同學(xué)由于首次接觸該項(xiàng)目C和項(xiàng)目F,中間驗(yàn)證的過(guò)程,需要開發(fā)的不斷支持,中間的時(shí)間成本也很大。
要是能優(yōu)先測(cè)試,提前暴露問(wèn)題,最后就不會(huì)在ddl前趕著溝通修改和驗(yàn)證了。
3、造數(shù)據(jù)過(guò)度依賴于開發(fā)同學(xué)
前臺(tái)有3個(gè)數(shù)據(jù)報(bào)告頁(yè)面,但是測(cè)試環(huán)境沒(méi)有任何數(shù)據(jù),需要在測(cè)試環(huán)境造數(shù)據(jù)進(jìn)行測(cè)試。
起初,開發(fā)同學(xué)說(shuō)幫忙造數(shù)據(jù),我就沒(méi)管,直接等著開發(fā)同學(xué)造數(shù)據(jù)了。
最后發(fā)現(xiàn)開發(fā)同學(xué)幫忙造的是最簡(jiǎn)單的場(chǎng)景,并沒(méi)有考慮數(shù)據(jù)的真實(shí)性,例如一個(gè)用戶一天到底產(chǎn)生幾條數(shù)據(jù),最終到底取和值還是均值等等。
等到我意識(shí)這個(gè)問(wèn)題的時(shí)候,又耽誤了半天。最終,趕緊熟悉了4個(gè)數(shù)據(jù)庫(kù)的6張表,自己寫SQL覆蓋了用戶可能出現(xiàn)的多個(gè)測(cè)試場(chǎng)景,發(fā)現(xiàn)完整的場(chǎng)景好多問(wèn)題。
如果自己能不過(guò)度依賴開發(fā)同學(xué),提前熟悉數(shù)據(jù)庫(kù)的各個(gè)表,早點(diǎn)造數(shù)據(jù),測(cè)試時(shí)間就可以縮短一點(diǎn)了。
二、外部原因
1、團(tuán)隊(duì)磨合
由于是新項(xiàng)目,團(tuán)隊(duì)也是首次合作,平時(shí)的溝通,Bug流轉(zhuǎn),需求確認(rèn)等都需要時(shí)間進(jìn)行磨合,測(cè)試估期的時(shí)候沒(méi)有考慮到。
關(guān)于修復(fù)Bug,本團(tuán)隊(duì)的開發(fā)同學(xué)喜歡批量修改Bug后提交代碼,最后導(dǎo)致的結(jié)果就是中間會(huì)漏掉幾個(gè)Bug沒(méi)有修改,但是狀態(tài)已經(jīng)標(biāo)記為已解決,最終測(cè)試同學(xué)得重新激活,轉(zhuǎn)給開發(fā)同學(xué),中間其實(shí)是有溝通成本的。
從開發(fā)同學(xué)來(lái)說(shuō),批量提代碼,可能會(huì)更方便些,不用修一個(gè)Bug提一次代碼,但是從測(cè)試同學(xué)來(lái)說(shuō),不太贊同批量提代碼的方式,主要有以下兩點(diǎn)原因:
(1)批量提代碼,容易漏修復(fù)某些Bug
比如一次修復(fù)10個(gè)Bug,中間在修復(fù)第6個(gè)Bug的時(shí)候,開發(fā)同學(xué)被其他同學(xué)打斷,后續(xù)再接著修復(fù)的時(shí)候,可能就漏掉了。
(2)批量提代碼,不利于測(cè)試同學(xué)回歸Bug
在測(cè)試前期,時(shí)間相對(duì)充足的情況下,影響不大。
但是在測(cè)試后期,時(shí)間非常緊急,測(cè)試同學(xué)大多時(shí)候都是等著驗(yàn)證Bug的,前期一直在等,突然來(lái)了好多個(gè)Bug,全部壓在一起了,是不利于項(xiàng)目風(fēng)險(xiǎn)控制的。
如果轉(zhuǎn)過(guò)來(lái)10個(gè)Bug,前面7個(gè)都是通過(guò)的,第8個(gè)修復(fù)后引進(jìn)了一個(gè)大Bug,項(xiàng)目的最后節(jié)點(diǎn)出現(xiàn)大問(wèn)題,對(duì)項(xiàng)目來(lái)說(shuō)風(fēng)險(xiǎn)是很大的。
如果分散點(diǎn),按照Bug優(yōu)先級(jí)來(lái)進(jìn)行修復(fù),重要Bug早修復(fù),修復(fù)后即更新代碼,測(cè)試同學(xué)驗(yàn)證后,有問(wèn)題早暴露,對(duì)整個(gè)項(xiàng)目推進(jìn)是十分有利的。
2、其他項(xiàng)目的穿插
在測(cè)試該項(xiàng)目的過(guò)程中,插入了另外一個(gè)小項(xiàng)目的測(cè)試,大概耽誤了一天半的時(shí)間,中間沒(méi)有考慮到該問(wèn)題。
在最后一天的測(cè)試中,開發(fā)同學(xué)參與討論了下一期的需求以及其他項(xiàng)目的問(wèn)題,整個(gè)下午都在開會(huì),一直無(wú)法修復(fù)Bug,中間也耽誤了半天。
三、經(jīng)驗(yàn)總結(jié)
1、合理把控被測(cè)功能的優(yōu)先級(jí)。
與外部系統(tǒng)有交互的功能,優(yōu)先介入測(cè)試,盡早暴露問(wèn)題。
2、造數(shù)據(jù)盡量真實(shí)。
有需要造數(shù)據(jù)的模塊,不要過(guò)度依賴開發(fā)同學(xué),測(cè)試同學(xué)早點(diǎn)造數(shù)據(jù),完整的數(shù)據(jù)更能暴露出問(wèn)題。
3、合理估期。
對(duì)于新項(xiàng)目的測(cè)試估期,除了考慮項(xiàng)目本身的測(cè)試時(shí)間外,還要考慮外部因素,例如團(tuán)隊(duì)磨合,外部項(xiàng)目插入等等。
每個(gè)版本復(fù)盤下,挺好~
ps:我是lc馨馨紫,全網(wǎng)名稱統(tǒng)一,期待優(yōu)秀的你關(guān)注我~
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處~