之前看了一些互聯(lián)網(wǎng)公司的測(cè)試經(jīng)驗(yàn)和技術(shù)介紹。最近又翻出來(lái)重新看了一遍著摔,感觸還是挺多的缓窜,可能也是由于工作時(shí)間長(zhǎng)了后有了一些新的感悟。 主要有百度谍咆,騰訊禾锤,阿里下屬的幾個(gè)子公司,內(nèi)容比較雜摹察,有介紹測(cè)試經(jīng)驗(yàn)和測(cè)試技術(shù)的恩掷,也有介紹自己的測(cè)試工具和自動(dòng)化平臺(tái)的。 總結(jié)了一下供嚎,主要優(yōu)點(diǎn)體現(xiàn)在以下幾個(gè)方面:第一黄娘,盡早測(cè)試;第二克滴,盡可能深入逼争,測(cè)試從最底層開始,逐步上升集成劝赔;第三誓焦,盡量減少手工執(zhí)行用例的工作量,大量使用自動(dòng)化測(cè)試着帽;第四杂伟,各種測(cè)試工具的開發(fā)和應(yīng)用移层;第五,測(cè)試人員可以直接接觸到線上系統(tǒng)和最終用戶稿壁,這個(gè)渠道是暢通的幽钢。
第一點(diǎn):盡早測(cè)試
這個(gè)是測(cè)試行業(yè)公認(rèn)的準(zhǔn)則,一個(gè)BUG發(fā)現(xiàn)的越早傅是,修復(fù)的成本就越低(說(shuō)到這里匪燕,我非常佩服《軟件測(cè)試的藝術(shù)》這本書的作者們,這些大師們?cè)谏蟼€(gè)世紀(jì)提出的思想現(xiàn)在依然適用)喧笔。
最快最省事的就是程序員在編碼階段中發(fā)現(xiàn)并修改的帽驯,這個(gè)在目前最主要的保證手段就是單元測(cè)試。
看了好幾家公司的介紹书闸,對(duì)單元測(cè)試都非衬岜洌看重,甚至在淘寶網(wǎng)的文檔中有一個(gè)表格浆劲,專門對(duì)代碼質(zhì)量從各個(gè)角度進(jìn)行打分嫌术,其中單元測(cè)試的覆蓋率就是一項(xiàng)很重要的指標(biāo)。
另外在以前聽一個(gè)講座的時(shí)候也講到牌借,一個(gè)正確的測(cè)試體系應(yīng)該是金字塔形狀的度气,單元測(cè)試是最底層,同時(shí)占測(cè)試的比例也是最大的膨报,大量的基本功能和編碼錯(cuò)誤應(yīng)該在這個(gè)階段就暴漏出來(lái)磷籍,而不是延遲到后端。
第二點(diǎn):盡可能深入
測(cè)試從最底層開始现柠,逐步上升集成院领。
這個(gè)其實(shí)和第一點(diǎn)有類似的地方,同樣也是強(qiáng)調(diào)單元測(cè)試的價(jià)值和重要性够吩。除此之外又強(qiáng)調(diào)把測(cè)試的工作和思想融入到整個(gè)開發(fā)過(guò)程中比然,這其實(shí)又包含了全功能研發(fā)團(tuán)隊(duì)的思想。
開發(fā)人員在編碼時(shí)就開始考慮如何測(cè)試并進(jìn)行測(cè)試废恋,測(cè)試人員從單元測(cè)試開始谈秫,依次到白盒測(cè)試,模塊級(jí)別的接口測(cè)試鱼鼓,系統(tǒng)級(jí)別的集成測(cè)試拟烫,場(chǎng)景級(jí)別的驗(yàn)收測(cè)試。
在每個(gè)級(jí)別有不同的測(cè)試策略和側(cè)重點(diǎn)迄本,越向上測(cè)試的角度越高硕淑,同時(shí)發(fā)現(xiàn)的問(wèn)題也應(yīng)該越少,如果到集成測(cè)試或者驗(yàn)收測(cè)試還發(fā)現(xiàn)有基本功能問(wèn)題,那是應(yīng)該好好分析下原因了置媳。
我始終堅(jiān)持一個(gè)觀點(diǎn):測(cè)試人員應(yīng)該深入了解產(chǎn)品于樟,深入到代碼級(jí)別,只有這樣才能夠發(fā)現(xiàn)產(chǎn)品的潛在問(wèn)題拇囊,或者說(shuō)才有資格去和開發(fā)人員PK迂曲。只是做黑盒測(cè)試,很多場(chǎng)景是考慮不到的寥袭,很多問(wèn)題也是無(wú)法想到的路捧。
這一點(diǎn)上和我們的領(lǐng)導(dǎo)有沖突,他們認(rèn)為測(cè)試應(yīng)該站的層次更高传黄,視野更開闊杰扫。我只想說(shuō),我覺得我們現(xiàn)在欠缺的是基本功膘掰,閱讀代碼章姓,分析代碼,理解業(yè)務(wù)识埋,先把這些能力培養(yǎng)起來(lái)再說(shuō)凡伊,如果基本功能都保證不了,何來(lái)的高大上窒舟?
第三點(diǎn):盡量減少手工執(zhí)行用例的工作量
大量使用自動(dòng)化測(cè)試
這些自動(dòng)化測(cè)試框架有業(yè)界通用的如jenkins窗声,RF等,也有自己開發(fā)的平臺(tái)辜纲。目標(biāo)和功能基本都是相同的,周期性的有持續(xù)集成的版本拦耐。
代碼修改和提交后能夠第一時(shí)間啟動(dòng)構(gòu)建驗(yàn)證正確性耕腾,絕大部分的回歸測(cè)試自動(dòng)化執(zhí)行。
甚至有篇文檔中說(shuō)驗(yàn)收測(cè)試是唯一需要手工執(zhí)行用例的階段杀糯,雖然我不太相信這樣是否真的可行扫俺,不過(guò)也可以看出他們對(duì)自己產(chǎn)品質(zhì)量和自動(dòng)化測(cè)試能力的自信。
第四點(diǎn):各種測(cè)試工具的開發(fā)和應(yīng)用
我印象最深的有兩個(gè)固翰,一個(gè)是自己開發(fā)的持續(xù)集成狼纬,自動(dòng)化執(zhí)行用例并輸出測(cè)試報(bào)告的平臺(tái),類似于jenkins骂际。
另一個(gè)是支付寶開發(fā)的外部支付系統(tǒng)的模擬器疗琉,為了模擬各種不同銀行的支付場(chǎng)景,方便測(cè)試歉铝。這個(gè)模擬工具和我之前開發(fā)并且一直在用的模擬器比較像盈简,都是被測(cè)產(chǎn)品和外部系統(tǒng)有強(qiáng)交互關(guān)系,而外部系統(tǒng)又無(wú)法控制。
所以自己開發(fā)工具來(lái)模擬這些外部系統(tǒng)柠贤,來(lái)方便構(gòu)造各種真實(shí)環(huán)境中存在香浩,但是研發(fā)過(guò)程中又很難產(chǎn)生的場(chǎng)景。
第五點(diǎn):測(cè)試人員可以直接接觸到線上系統(tǒng)和最終用戶
這個(gè)渠道是暢通的臼勉。這個(gè)真的非常重要邻吭,像我們現(xiàn)在的產(chǎn)品,將來(lái)發(fā)布出去如何部署宴霸,用戶的使用場(chǎng)景是什么囱晴,整個(gè)研發(fā)內(nèi)部都是很模糊的,僅有的一些信息都要經(jīng)過(guò)好幾層中轉(zhuǎn)猖败,往往是已經(jīng)用到現(xiàn)場(chǎng)出現(xiàn)問(wèn)題了以后速缆,這才知道用戶原來(lái)是這么用的。
而像淘寶恩闻,他們的研發(fā)人員自己就是自己產(chǎn)品的用戶艺糜,可以直接接觸到線上系統(tǒng),直接對(duì)線上系統(tǒng)的運(yùn)行狀態(tài)和日志進(jìn)行分析幢尚,這樣可以最真實(shí)的了解到產(chǎn)品的使用場(chǎng)景和最終用戶的需求破停,更好的完善優(yōu)化產(chǎn)品。
最后還有一點(diǎn)尉剩,測(cè)試人員的價(jià)值體現(xiàn)在什么地方呢真慢?有一篇文檔中說(shuō)的很好,原話我記不太清了理茎,大概意思是:測(cè)試人員的價(jià)值體現(xiàn)在發(fā)現(xiàn)設(shè)計(jì)和編碼人員思維狹隘的地方黑界,幫助他們修正這個(gè)期間產(chǎn)生的錯(cuò)誤,提出自己的建議皂林,還有提前識(shí)別可能的風(fēng)險(xiǎn)和問(wèn)題朗鸠,預(yù)防缺陷的產(chǎn)生。
從這個(gè)角度來(lái)講础倍,測(cè)試人員的工作不僅僅是發(fā)現(xiàn)BUG烛占,向后一步包括如何修改BUG,向前一步包括如何預(yù)防BUG沟启。