軟件測試作為軟件功能和性能方面查漏補缺的最后一道工序,其已經(jīng)成為軟件開發(fā)領(lǐng)域不可或缺且越來越重要的工作。中培偉業(yè)《軟件自動化測試與持續(xù)集成》培訓(xùn)專家劉老師在這里介紹了軟件測試領(lǐng)域幾個常見的錯誤觀點。
一、測試就是保證軟件無故障運行
對這個,我只想說這個觀點只是出于測試人員美好愿望。再牛的測試員也不可能保證他所測的軟件就能無故障運行。只能說在他所測的范圍內(nèi),軟件能按預(yù)先定義的需求運行。
這個誤區(qū)的一個潛在問題是,秉承這一觀點的測試人員可能更期望自己的測試對象能“順利”運行,而不是盡力發(fā)現(xiàn)產(chǎn)品中的問題。
二、測試的環(huán)境就選用戶的環(huán)境
我想說的是:不可能!好吧,也許對于一些具有固定用戶,特別訂制的特定環(huán)境下的軟件產(chǎn)品,你很好找到用戶的環(huán)境。不過對于大部分的軟件產(chǎn)品而言,我想說即便你知道了用戶甲的環(huán)境,你也不一定搞清楚用戶乙的環(huán)境。即便同一個甲,可能他今天和明天的環(huán)境也不一定相同。那結(jié)果,你選擇哪個環(huán)境作你的測試環(huán)境呢?
這個問題我想說的是用戶的某些典型環(huán)境可以在測試中進(jìn)行優(yōu)先考慮,但真正的測試環(huán)境永遠(yuǎn)應(yīng)該是那個你認(rèn)為能更好暴露產(chǎn)品問題的環(huán)境。
三、測試自動化更為高效
說句心里話,我并不是反對這個觀點,不過這觀點是有商量余地的。自然,這里是拿自動化測試和手工測試作為對比的。也許自動化有諸多的優(yōu)點,比如能夠不厭其煩執(zhí)行枯燥的動作;能夠精確的定位時序動作;能夠長時間工作;能夠快速執(zhí)行等等。不過自動化測試的缺點也是有的,比如需要開發(fā)成本;需要對產(chǎn)品行為的明晰定義。
說到這點,也就是說采取測試自動化是有條件的。并不是它就一定適應(yīng)你的測試,何論高效。其實自動化測試更多的是應(yīng)用在回歸測試場合,更多的bug事實上是在手工測試中發(fā)現(xiàn)的。雖然這個事實不一定是你希望看到的:)
四、開發(fā)人員更適合做測試
測試圈內(nèi)的一個共同認(rèn)識是從事測試的人員技術(shù)上總比開發(fā)人員差,開發(fā)人員能更好的應(yīng)用技術(shù)去測試;開發(fā)人員更能了解開發(fā),所以更能了解問題的所在。
不過本人的經(jīng)歷而言,開發(fā)組轉(zhuǎn)過來從事測試的同事績效并不怎么理想。這個誤區(qū)的問題在于過于簡單的看待測試的技能需求。一般而言,測試工程師需要三維的技能:技術(shù),業(yè)務(wù)領(lǐng)域知識和軟技能。其中技術(shù)不僅僅是開發(fā),還包括測試技術(shù)。從開發(fā)轉(zhuǎn)作測試的人員,不一定具備這些能力,而且從某種程度,他們更專注在開發(fā)技能,可能更喜歡的是工具的實現(xiàn)和代碼的審核。從整體上來說,開發(fā)人員的技能并一定就能完全勝任測試工作。
五、Bug越多測試越有效
估計很多的經(jīng)理會有這個觀點,很多同行估計也深受這個指標(biāo)考核之苦。不過,如果打個不恰當(dāng)?shù)谋确剑f:GDP越高經(jīng)濟越有效。我想很多人也就明白個大概了。
Bug的出現(xiàn)有多方面的因素,并不一定需要多有效的測試。猶如上策伐謀一樣,有效地測試最好將bug消滅在未成的時候。對產(chǎn)品報bug已經(jīng)是到了最后的保障環(huán)節(jié),成本已經(jīng)相對變高——相對于需求分析和設(shè)計階段。只有到了最后階段,同樣情況下才是有效地。不過這并不一定是好度量的。