互聯(lián)網(wǎng)測(cè)試有什么不一樣
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/4/24 10:04:59 ] 推薦標(biāo)簽:互聯(lián)網(wǎng)
變和不變總是永恒的主題。先說說我看到的不一樣的地方。
1、大的不同是互聯(lián)網(wǎng)的產(chǎn)品很多都是自己來部署和運(yùn)營(yíng),用戶只要用一個(gè)瘦客戶端能使用。
這里的瘦客戶端是一個(gè)瀏覽器,一個(gè)App,或者一個(gè)需要安裝的client,但是核心的數(shù)據(jù)和業(yè)務(wù)邏輯主要在互聯(lián)網(wǎng)公司的機(jī)房里面,在IDC,在云端。這里和以前的C/S, B/S架構(gòu)的企業(yè)系統(tǒng)的主要區(qū)別在于為多大范圍的人來服務(wù)以及誰來運(yùn)營(yíng)和運(yùn)維這樣的系統(tǒng)。所以自然的,多了很多的這方面的工作。
縮小范圍到測(cè)試這個(gè)方面,需要考慮現(xiàn)網(wǎng)的問題。比如有下面的這些方面:
a、如何來監(jiān)控現(xiàn)網(wǎng)功能的可用性。
這個(gè)需要和運(yùn)維一起來做,但是運(yùn)維針對(duì)的是比較通用的部分,比如機(jī)器的資源使用情況、流量和帶寬的情況,但是偏產(chǎn)品業(yè)務(wù)層面的,比如哪些功能是否可用,可能需要業(yè)務(wù)測(cè)試人員來設(shè)計(jì)和開發(fā)自動(dòng)化的系統(tǒng)來監(jiān)控了。
b、如何來發(fā)布功能到現(xiàn)網(wǎng)
測(cè)試完了一般直接發(fā)布了,所以不像傳統(tǒng)的軟件有那么長(zhǎng)的測(cè)試周期,包括internal beta,external beta等過程,而且我了解到的情況,很多基于web的互聯(lián)網(wǎng)產(chǎn)品平均有多個(gè)發(fā)布,可大可小。所以發(fā)布可能成了測(cè)試人員的工作,當(dāng)然有相關(guān)的系統(tǒng)的支持。 這里還需要考慮的問題是常見的基于各種條件的灰度發(fā)布,先讓部分用戶用起來。發(fā)布完了之后還要做現(xiàn)網(wǎng)的驗(yàn)證。
c、如何來保證或者驗(yàn)證測(cè)試環(huán)境和現(xiàn)網(wǎng)是同步的
一旦是互聯(lián)網(wǎng)的這種模式,測(cè)試環(huán)境的問題會(huì)變得比較突出,因?yàn)槌3可娴南到y(tǒng)比較多,有些和外部系統(tǒng)的接口可能很難以自己搭建或者用mock。另一方面如果保證測(cè)試環(huán)境是好的,到現(xiàn)網(wǎng)也是好的。需要相應(yīng)的機(jī)制和工具來驗(yàn)證和同步。
2、互聯(lián)網(wǎng)產(chǎn)品的節(jié)奏都很快
不像傳統(tǒng)的一個(gè)客戶端或者服務(wù)器的軟件產(chǎn)品,可能周期是半年,一年,甚至更長(zhǎng)。這樣有比較充足的時(shí)間來做項(xiàng)目計(jì)劃,需求評(píng)審,然后是概要/詳細(xì)設(shè)計(jì),進(jìn)而有測(cè)試設(shè)計(jì)文檔,開大量的測(cè)試用例,然后有不同的測(cè)試cycle,同時(shí)也可以有很多的時(shí)間來準(zhǔn)備測(cè)試環(huán)境和自動(dòng)化測(cè)試。
目前來看,互聯(lián)網(wǎng)的產(chǎn)品這樣做不太現(xiàn)實(shí)。這樣對(duì)測(cè)試人員也是很大的挑戰(zhàn),可能看到一個(gè)需求過幾天要開測(cè)了,用例是臨時(shí)開出來的,根本來不及自動(dòng)化,也沒有很多的時(shí)間來做測(cè)試設(shè)計(jì),然后測(cè)兩天這個(gè)功能上線了。
不切身的感受很難體會(huì)到這種速度帶來的差異。所以如何在這么短的時(shí)間里面來保證測(cè)試的覆蓋度和質(zhì)量,如果減少遺漏?
這是現(xiàn)實(shí)的問題,或者說是要求,有一些措施,但是其實(shí)也沒有很好的答案。
3、有更多的人參與到測(cè)試?yán)锩鎭?/FONT>
互聯(lián)網(wǎng)公司里面,測(cè)試vs開發(fā)的比例都很低,1:6,1:7都是很常見的,甚至更高,在這樣的配比的情況下,如果來保證質(zhì)量?必須有更多的方法。比如:
a、開發(fā)人員的自測(cè)。
測(cè)試耗費(fèi)更多時(shí)間很多時(shí)候是因?yàn)榇a的質(zhì)量不夠好,有很多bug,有很多討論,很多的拉代碼的次數(shù)。所以提高開發(fā)提交的代碼質(zhì)量是一個(gè)很重要的方面。有些公司是通過開發(fā)人員的強(qiáng)制的單元測(cè)試來保證的,有些是通過功能級(jí)別的自測(cè)來保證的。這些可以借助一些數(shù)據(jù)來反映,比如同一個(gè)版本拉代碼的次數(shù),或者測(cè)試用例的通過率等等。
b、產(chǎn)品或者運(yùn)營(yíng)人員的體驗(yàn)。
很多互聯(lián)網(wǎng)的產(chǎn)品不像傳統(tǒng)軟件產(chǎn)品,不是一個(gè)產(chǎn)品經(jīng)理來提所有的需求。產(chǎn)品,或者稱為產(chǎn)品經(jīng)理,是一個(gè)團(tuán)隊(duì),每人負(fù)責(zé)一塊來提出需求。另外很多需求可能是來自于運(yùn)營(yíng)團(tuán)隊(duì),和business相關(guān),或者是不同系統(tǒng)的打通。每個(gè)產(chǎn)品經(jīng)理或者運(yùn)營(yíng),需要在開發(fā)人員實(shí)現(xiàn)了相應(yīng)的功能之后到體驗(yàn)環(huán)境里面來試用產(chǎn)品,是所謂的體驗(yàn),看這些功能是不是他們想要的。這樣可以在測(cè)試人員測(cè)試之前保證沒有明顯的需求理解的問題,避免浪費(fèi)測(cè)試的人力和時(shí)間。
c、發(fā)布之前的評(píng)審。
不同的角色進(jìn)來看對(duì)于一個(gè)已經(jīng)測(cè)完的工作還有沒有問題,以及發(fā)布的時(shí)候需要注意的問題,環(huán)境的問題,配置的問題,數(shù)據(jù)的問題等等。
上面的一些做法可能都有幫助,但是如何來推動(dòng),如果來檢驗(yàn)都是需要流程和工具來支撐。
4、有一些是免測(cè)試的
不是所有發(fā)布到現(xiàn)網(wǎng)的東西都需要測(cè)試,有些改動(dòng)是不需要測(cè)試的。這個(gè)沒有一定的標(biāo)準(zhǔn),取決于具體發(fā)布的情況,以及產(chǎn)品和團(tuán)隊(duì)的成熟度等因素。比如一些臨時(shí)活動(dòng)的頁(yè)面,一些小的圖片或者樣式的改動(dòng),一些小的修復(fù)等等。只需發(fā)布完了之后到外網(wǎng)去驗(yàn)證。
有哪些可以走免測(cè),這其實(shí)是一個(gè)很復(fù)雜的問題,當(dāng)然風(fēng)險(xiǎn)也是有的,但是因此而帶來的效率的提高也是很明顯。
5、海量的用戶帶來的挑戰(zhàn)
其實(shí)有很多,這里列舉幾個(gè)
a、如何來保證或者驗(yàn)證性能
傳統(tǒng)軟件的性能測(cè)試相對(duì)要單純一些,可以比較容易搭建一套環(huán)境,流量也比較容易模擬。而互聯(lián)網(wǎng)的一個(gè)產(chǎn)品可能有幾百上千臺(tái)甚至更多的服務(wù)器,多地多層部署,受到各種因素的影響,比如廣告促銷活動(dòng),一下子流量可以沖到很高。所以這方面的做法也會(huì)有所不同,全量的模擬不太現(xiàn)實(shí),而且如上面所說,發(fā)布非?,也沒有那么多的時(shí)間去反復(fù)的做性能測(cè)試。所以如何來做比較輕量級(jí)的性能測(cè)試也是一個(gè)很大的課題。
b、瀏覽器的兼容性。
用戶使用的瀏覽器種類可能非常多,包括大家都在罵的IE6,還有IE9的n種模式,版本更新速度火箭一般的Chrome和Firefox,以及很多種國(guó)產(chǎn)的瀏覽器。要一一覆蓋是一個(gè)很大的挑戰(zhàn),其實(shí)不可能,但是產(chǎn)品團(tuán)隊(duì)肯定希望測(cè)試能夠覆蓋更多。對(duì)于一些企業(yè)級(jí)的產(chǎn)品可以宣稱支持很少的幾種,但是互聯(lián)網(wǎng)產(chǎn)品很難這樣做,那等于放棄一些用戶。如何來設(shè)計(jì)策略?有沒有技術(shù)手段?
c、一個(gè)小的改動(dòng)引起的問題可以影響到無數(shù)的用戶,而且很多時(shí)候馬上會(huì)被發(fā)現(xiàn),那個(gè)壓力還是非常大的。整個(gè)修復(fù)的過程也是帶電操作,沒有那么多環(huán)境和時(shí)間來在內(nèi)部慢慢調(diào)整,如何來保證修復(fù)的質(zhì)量?
6、問題的修復(fù)
互聯(lián)網(wǎng)的產(chǎn)品相比傳統(tǒng)的產(chǎn)品的一個(gè)優(yōu)勢(shì)或者說是特性是問題的修復(fù)比較快,因?yàn)楹芸炜梢杂绊懙接脩,而不需要等用戶一個(gè)個(gè)去打hotfix或者patch,甚至安裝新版本。有很多時(shí)候,這種問題的發(fā)生到修復(fù)的時(shí)間很短,真是絕大部分用戶都沒有感知。有時(shí)候這個(gè)也會(huì)成為quick & dirty的一個(gè)借口,不過一般都會(huì)把現(xiàn)網(wǎng)的問題列為一個(gè)考核的指標(biāo)。而且有些問題不是小問題,會(huì)構(gòu)成事故。其實(shí)對(duì)于這樣的產(chǎn)品,測(cè)試人員對(duì)于漏測(cè)的壓力更大了。
7、測(cè)試工具和技術(shù)選擇上的差別
大概是因?yàn)榛ヂ?lián)網(wǎng)自身產(chǎn)品的一些特點(diǎn),各大公司都在大量的使用開源的,以及內(nèi)部開發(fā)的平臺(tái)和系統(tǒng)。相應(yīng)的,測(cè)試方面用到的平臺(tái)和工具主要也是這兩種,要么是開源的工具(也可能做一些改造),要么是內(nèi)部自己開發(fā)的工具。相比而言,傳統(tǒng)軟件行業(yè)更會(huì)去購(gòu)買一些商業(yè)的測(cè)試工具,比如用于性能測(cè)試、覆蓋率或者代碼檢查的工具,還有是測(cè)試用例和缺陷的管理平臺(tái)。 目前我了解到的情況,國(guó)內(nèi)幾大互聯(lián)網(wǎng)公司都是改造和自研的比較多,所以在簡(jiǎn)歷里面列一堆大的工具的使用經(jīng)驗(yàn)不一定有多大優(yōu)勢(shì)。而對(duì)于新人來說需要花不少時(shí)間來學(xué)習(xí)和熟悉這些平臺(tái)。
以上列舉了一些相比傳統(tǒng)軟件行業(yè)的不同的地方吧,但是對(duì)測(cè)試人員來說,也有很多相同或者類似的地方。
1、一樣的需要非常了解產(chǎn)品和業(yè)務(wù)
對(duì)于測(cè)試人員來說,如果不了解產(chǎn)品和業(yè)務(wù),測(cè)試工作很難開展,因?yàn)檫B基本的對(duì)錯(cuò)(是不是bug)都很難判斷,當(dāng)然除了一些明顯的錯(cuò)誤,比如js出錯(cuò)這樣的信息,這種缺陷產(chǎn)品體驗(yàn)的時(shí)候能夠發(fā)現(xiàn)或者等到被用戶發(fā)現(xiàn)了。所以我們還是需要花很多的時(shí)間和精力來熟悉產(chǎn)品業(yè)務(wù)。從這個(gè)角度看,沒有很大的變化,只是換了一個(gè)不同的領(lǐng)域而已,這個(gè)差別是不同的產(chǎn)品帶來的,而不是因?yàn)閭鹘y(tǒng)軟件或者互聯(lián)網(wǎng)的差別帶來的。
2、一樣的需要了解產(chǎn)品的技術(shù)
這個(gè)其實(shí)和上面有點(diǎn)類似,測(cè)試人員需要去了解產(chǎn)品開發(fā)用到的技術(shù),這對(duì)深度的測(cè)試,甚至和很多測(cè)試技術(shù)和工具的應(yīng)用有很大的關(guān)于,比如性能分析,內(nèi)存泄露的發(fā)現(xiàn),覆蓋率的分析等等。不去學(xué)習(xí)和了解這些,很多工作沒有辦法開展。從方向上來看沒有變化,我們也要去學(xué)習(xí)和實(shí)踐這些東西才能更好的了解。但是具體的技術(shù)可能有所不同,比如互聯(lián)網(wǎng)web的產(chǎn)品可能會(huì)常用到JS,PHP, Java, C++等語言,還有各種web服務(wù)器,cache,代理等等。
3、具體的測(cè)試技術(shù)
上面說到了一些產(chǎn)品開發(fā)的技術(shù),其實(shí)還有一塊是測(cè)試方面的技術(shù),其實(shí)這一塊細(xì)化來看和傳統(tǒng)的軟件開發(fā)有很多相似甚至相同的地方。比如如果來做靜態(tài)代碼的掃描、局部的性能測(cè)試方法和工具、覆蓋率的工具、自動(dòng)化的一些工具和框架、一些監(jiān)控的工具等等。
從這個(gè)角度來看,技術(shù)的差異并沒有很大,當(dāng)然互聯(lián)網(wǎng)有一些特別,比如很多基于web的系統(tǒng)、分布式的、多層的,會(huì)對(duì)工具提出一些要求,這個(gè)差別其實(shí)倒不是很大,因?yàn)楹芏鄠鹘y(tǒng)的服務(wù)器軟件也是這樣。
4、測(cè)試設(shè)計(jì)的方法
上面提到,因?yàn)楫a(chǎn)品發(fā)布節(jié)奏的差異,使得整個(gè)流程必須更輕更快,但是針對(duì)于一個(gè)具體功能的測(cè)試的時(shí)候,用例的設(shè)計(jì)和執(zhí)行上需要考慮的問題其實(shí)和傳統(tǒng)的沒有太大的差別。因?yàn)檫@個(gè)時(shí)候大家面臨的問題是一樣的,如何測(cè)這個(gè)軟件的這個(gè)功能。所以一些思路和方法還是能用得上。
綜合以上來看,局部的差異反而比較小,但是涉及到大的形態(tài)和流程方面的差異會(huì)比較大。
也可能正是因?yàn)檫@樣的原因,很多從傳統(tǒng)軟件到互聯(lián)網(wǎng)的人也很快能夠融入并開始發(fā)揮作用,而且退回幾年來看,現(xiàn)在各大互聯(lián)網(wǎng)公司里面的人大部分也都是來自于所謂的傳統(tǒng)軟件企業(yè)。
相關(guān)推薦

最新發(fā)布
性能測(cè)試之測(cè)試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測(cè)試是從什么時(shí)候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測(cè)試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測(cè)試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測(cè)試工具測(cè)評(píng)
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測(cè)試基本概念是怎么來的?軟件測(cè)試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10