您好,登錄后才能下訂單哦!
我們知道,只要有軟件就會(huì)有bug。一者,再嚴(yán)格的測(cè)試也只是抽樣活動(dòng),總會(huì)有bug被遺留下來。再者,做軟件也是一種商業(yè)行為,對(duì)質(zhì)量的投入要看ROI?;谝陨蟽煞N原因,軟件或者系統(tǒng)發(fā)布時(shí)總會(huì)或多或少帶點(diǎn)bug。對(duì)于這些bug,我們要看它的影響程度是什么樣的。對(duì)于生命周期比較長(zhǎng)的系統(tǒng),這些bug只要產(chǎn)生了影響都是要修改的。要知道,bug的檢測(cè)也是需要成本的,并且檢測(cè)成本也會(huì)隨著時(shí)間向后推移水漲船高。對(duì)于開發(fā)者來說,已發(fā)布版本的bug如何檢測(cè)才能成本低且有效呢?顯然已發(fā)布的軟件會(huì)直面用戶,從用戶身上打主意是正途。 再雞賊一些,如何讓用戶在發(fā)布前就參與測(cè)試呢?在IT行業(yè)蓬勃發(fā)展的幾十年間,涌現(xiàn)了大量讓用戶幫助開發(fā)者做測(cè)試的方法。下面就讓我們一一道來。
α測(cè)試和β測(cè)試是上個(gè)世紀(jì)較為流行的兩種用戶測(cè)試方法。兩者都是請(qǐng)用戶真實(shí)的來使用系統(tǒng),并反饋錯(cuò)誤。兩者最大的不同是,前者是請(qǐng)用戶到開發(fā)者的環(huán)境中做測(cè)試;后者是用戶在自己的環(huán)境中做測(cè)試。由于不同的用戶所有的軟硬件環(huán)境千差萬別,因此在β測(cè)試中可能發(fā)現(xiàn)更多的兼容性問題。另一個(gè)稍小的區(qū)別就是α測(cè)試有可能是開發(fā)公司內(nèi)部人員(微軟流行的“吃你自己的狗食”),β測(cè)試則更傾向于外部的真實(shí)用戶。β測(cè)試的測(cè)試成本較高,尤其是在互聯(lián)網(wǎng)普及以前。我中學(xué)時(shí)代就做過β測(cè)試,那時(shí)候某家軟件廠商在《電腦報(bào)》上招聘測(cè)試人員,被選中后會(huì)把被測(cè)軟件寄來,你把測(cè)試結(jié)果寫信寄回去,測(cè)試幾乎不會(huì)給錢。但是當(dāng)時(shí)唯一吸引我的是:軟件裝在6張3.5寸軟盤里,當(dāng)時(shí)對(duì)于我可是筆客觀的財(cái)富。 但不這么做的成本會(huì)更高!在互聯(lián)網(wǎng)能夠幾乎無成本分發(fā)軟件之前,未經(jīng)測(cè)試的軟件需要以光盤或者軟盤的形式發(fā)布,如果出現(xiàn)大錯(cuò)誤,那損失可就大了。這錯(cuò)誤就連偉大的暴雪公司也犯過,他們的游戲《魔獸爭(zhēng)霸1》,沒有經(jīng)過很好的測(cè)試就在圣誕節(jié)發(fā)布了。由于兼容性等問題,很多客戶拿到光盤后連裝都裝不上,這讓暴雪賠了幾百萬美刀,差點(diǎn)丟了命
微軟臭名昭著的 有效做法。那自己或者自己的兄弟當(dāng)小白鼠。內(nèi)部人發(fā)現(xiàn)bug理應(yīng)反饋,還不能拿酬勞,大家都是命運(yùn)共同體嘛。這樣,上班是員工,下班就變成了最終用戶,甚至上班時(shí)候也變成了最終用戶。原來有個(gè)同學(xué)在網(wǎng)易,有段時(shí)間工作時(shí)間聯(lián)系他只能用網(wǎng)易泡泡,據(jù)說QQ被強(qiáng)制卸載了(不過泡泡現(xiàn)在還活著么?)。
互聯(lián)網(wǎng)時(shí)代來了。用戶報(bào)bug的成本低了,因?yàn)殄e(cuò)誤信息可以很方便的傳回去。所以在非常多的軟件中你可以在它們崩潰后得到一個(gè)提示框:“您愿意幫助我們改進(jìn)產(chǎn)品么?您的反饋對(duì)我們非常重要blablabla。。?!?只要一點(diǎn),調(diào)試信息就回傳到開發(fā)者那里了。當(dāng)然會(huì)有客戶以在論壇,微博等平臺(tái)上吐槽的形式推送bug。
發(fā)布特性、版本上有些許不同的軟件給不同的用戶。然后比較這些特性的造成的不同影響。A/B測(cè)試其實(shí)取自科學(xué)實(shí)驗(yàn)中的對(duì)照法。在實(shí)踐中A/B測(cè)試的主要目的是為了改進(jìn)軟件特性、提高轉(zhuǎn)化率等,發(fā)現(xiàn)bug反倒在其次了。想對(duì)A/B測(cè)試有跟深入了解可以google A/B測(cè)試的網(wǎng)站,或者買這本書。
灰度發(fā)布本質(zhì)上是A/B測(cè)試的一種變種。其實(shí)施方法是:某個(gè)軟件的新特性推出或者特性進(jìn)行升級(jí)的時(shí)候不是一下子發(fā)布給所有用戶,而是按照一定的策略,逐步發(fā)布給所有用戶。例如:某電商網(wǎng)站的推薦算法升級(jí),先發(fā)布到一個(gè)二級(jí)城市,然后比較這個(gè)城市的推薦轉(zhuǎn)化率是否提高了。當(dāng)然現(xiàn)在很多互聯(lián)網(wǎng)公司利用灰度發(fā)布來快速發(fā)布軟件,比如某游戲升級(jí),先選取一定比例的ip,比如1%的ip發(fā)布。如果出現(xiàn)問題,客戶很快會(huì)在平臺(tái)上以各種形式反饋(包括在游戲大廳或者論壇內(nèi)吐槽),這時(shí)候開發(fā)者就知道有問題了,馬上進(jìn)行修復(fù),然后繼續(xù)灰度發(fā)布。等功能或者性能穩(wěn)定了以后,繼續(xù)提高發(fā)布比率,直至100%。這樣做的好處是:能夠迅速得到真實(shí)用戶的反饋,且如果出現(xiàn)問題,不會(huì)大面積影響用戶。
灰度發(fā)布是一種非常好的策略,但是它有時(shí)候也對(duì)少量用戶造成了影響。有沒有不影響用戶,還能讓用戶做測(cè)試的方案么?這就是生產(chǎn)引流:從生產(chǎn)系統(tǒng)上將用戶所有請(qǐng)求復(fù)制下來,引入到測(cè)試系統(tǒng)進(jìn)行測(cè)試。這種方法尤其適合互聯(lián)網(wǎng)軟件,客戶端越瘦,就越不用關(guān)注客戶端的軟硬件環(huán)境。生產(chǎn)引流可以用作性能測(cè)試和功能測(cè)試?,F(xiàn)在性能測(cè)試用得比較廣泛的是TCPCOPY,目前網(wǎng)易,百度,阿里都有廣泛應(yīng)用。想詳細(xì)了解可以參見下面網(wǎng)站: http://changelog.ca/log/2012/07/19/dark_launching_software_features 功能測(cè)試的實(shí)現(xiàn)手段根據(jù)被測(cè)系統(tǒng)的技術(shù)架構(gòu)不同會(huì)有很大區(qū)別,根據(jù)被測(cè)系統(tǒng)的業(yè)務(wù)流程不同也會(huì)有很大區(qū)別,根據(jù)測(cè)試的意圖也會(huì)有很大區(qū)別。后續(xù)我將舉一個(gè)詳細(xì)的例子來描述生產(chǎn)引流的測(cè)試方法。
黑暗部署的詞是facebook的工程團(tuán)隊(duì)起的,但其實(shí)很多團(tuán)隊(duì)早已經(jīng)這么做了,只是沒有總結(jié)出來而已。其主要思路是:把新開發(fā)的特性部署到生產(chǎn)系統(tǒng)上,并有一個(gè)開關(guān)來快速的控制這個(gè)特性是否讓用戶可見,在部署的初期,這個(gè)開關(guān)是關(guān)閉的。有人要問,這么做有啥用?其實(shí)可以結(jié)合生產(chǎn)引流配合測(cè)試,也可以查看新上的特性是否影響原有系統(tǒng)的正常運(yùn)行。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。