唯信產(chǎn)品分類Product Classification
4常見問題
您的位置:
首頁 ->
常見問題 -> 避開自動(dòng)化測(cè)試的誤區(qū)
避開自動(dòng)化測(cè)試的誤區(qū)
(1)必須信任自動(dòng)化測(cè)試
自動(dòng)化雖然已經(jīng)經(jīng)歷了10來年的發(fā)展歷史,但是很多同事潛意識(shí)里還是更愿意相信手工測(cè)試的真實(shí)可靠性。他們其中一部分認(rèn)為自動(dòng)化測(cè)試是不錯(cuò)的方法和思想,但是相比來說機(jī)器永遠(yuǎn)代替不了人的大腦,不夠靈活、不懂得變通;另外一部分從根本上就不信任自動(dòng)化測(cè)試所做的測(cè)試執(zhí)行,認(rèn)為執(zhí)行結(jié)果不可靠,根本無法節(jié)約成本,而且反而會(huì)降低測(cè)試質(zhì)量。 對(duì)自動(dòng)化測(cè)試到底怎么看還是受站在什么角度想問題、考慮問題是否全面等因素的影響。這些不看好自動(dòng)化的想法很可能是來自沒有自動(dòng)化實(shí)踐經(jīng)歷的憑空想象或者是有過失敗的自動(dòng)化經(jīng)歷;他們這種失敗的經(jīng)歷中自動(dòng)化測(cè)試沒有選取合適的應(yīng)用范圍、方法不得當(dāng)所占比重非常大,并且他們?cè)谑≈鬀]有進(jìn)一步思考,沒有總結(jié)出這些導(dǎo)致失敗的誘因。比如,認(rèn)為不夠靈活的往往是因?yàn)橐筇叨夹g(shù)實(shí)現(xiàn)又達(dá)不到預(yù)期;為什么想要變通呢?想必是因?yàn)樾枨鬀]有達(dá)到足夠細(xì)致的程度,測(cè)試設(shè)計(jì)太模糊從而導(dǎo)致執(zhí)行實(shí)際結(jié)果很容易產(chǎn)生一定的偏差:如果測(cè)試分析、設(shè)計(jì)上下了足夠的功夫,那么所謂的變通是完全不必要的。自動(dòng)化測(cè)試腳本或者工具為什么要替代人的頭腦呢?換個(gè)角度思考一下,被測(cè)系統(tǒng)是否達(dá)到了替代人腦的功能呢?當(dāng)然沒有!自動(dòng)化測(cè)試只是在對(duì)被測(cè)系統(tǒng)進(jìn)行操作,每一處驗(yàn)證點(diǎn)的檢查都是針對(duì)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行的,從根本上說,如果被測(cè)系統(tǒng)無法替代人腦的存在,自動(dòng)化測(cè)試也沒有這個(gè)必要去考慮這個(gè)問題。無法節(jié)約成本的看法是因?yàn)椴欢米詣?dòng)化的成本效益如何分析,一味的單從自動(dòng)化開發(fā)投入時(shí)間和運(yùn)行時(shí)長作比較;認(rèn)為自動(dòng)化會(huì)降低測(cè)試質(zhì)量的看法則是由于不懂自動(dòng)化測(cè)試?yán)碚?、不懂測(cè)試?yán)碚搶?dǎo)致的。
對(duì)自動(dòng)化測(cè)試作用的徹底信任是自動(dòng)化測(cè)試開始的必要條件,抱著半信半疑的態(tài)度去嘗試只會(huì)帶來很多的困擾。猶猶豫豫地總是懷疑自動(dòng)化測(cè)試是否值得很可能就會(huì)導(dǎo)致人力投入、其他設(shè)備資源支持上的問題,認(rèn)識(shí)上的誤差——尤其是管理者的誤解會(huì)給自動(dòng)化的策略和發(fā)展帶來很大的障礙。不要把自動(dòng)化作為一種資本或者實(shí)力的體現(xiàn),從項(xiàng)目管理的角度來說,它只是在測(cè)試過程中實(shí)現(xiàn)測(cè)試周期調(diào)控和測(cè)試質(zhì)量把控的手段而已,而在整個(gè)測(cè)試過程中是起到輔助手工測(cè)試的作用還是主導(dǎo)著測(cè)試主要是看自動(dòng)化使用的水平和程度。
(2)了解測(cè)試開發(fā)的模式
前面也談到開發(fā)模式略有不同,測(cè)試自動(dòng)化開發(fā)也隨著不一樣,一般說來自動(dòng)化開發(fā)有下面幾種模式,我們來看下他們各自的特點(diǎn)。
1、超前式,在項(xiàng)目設(shè)計(jì)編碼的同時(shí)就開始了自動(dòng)化腳本開發(fā),依賴系統(tǒng)開發(fā)過程中的高度復(fù)用;是一種比較先進(jìn)的自動(dòng)化設(shè)計(jì)開發(fā)模式,能夠在系統(tǒng)移交初期就完成自動(dòng)化開發(fā),并且得到很好的應(yīng)用,但是極少有公司能達(dá)到這種水平。
2、尾隨式,在系統(tǒng)開發(fā)環(huán)境緊隨編碼進(jìn)度去做自動(dòng)化的開發(fā),需要投入人力較多,開發(fā)進(jìn)度稍滯后與系統(tǒng)編碼進(jìn)度,但是總體來說測(cè)試開發(fā)、調(diào)試完成之后還是能夠得到較好的應(yīng)用。
3、基線式,在SIT或者FAT完成之后的某個(gè)較為穩(wěn)定的版本上進(jìn)行自動(dòng)化腳本、程序的開發(fā)。開發(fā)的時(shí)候需要有一套獨(dú)立的自動(dòng)化開發(fā)環(huán)境(也可以是Staging環(huán)境),界面比較穩(wěn)定;但是在后期需要同步更新的地方較多,測(cè)試運(yùn)行基本只能夠應(yīng)用在ST的冒煙測(cè)試和回歸測(cè)試。
這幾種只是幾種相比其它方式較為正常、普遍的模式,也有一些不為筆者所了解的方法,如果大家能夠補(bǔ)充一下就更好了。
在第一、第二種模式里,比較容易出現(xiàn)的問題是沒有滿足相應(yīng)的條件又去使用對(duì)應(yīng)的自動(dòng)化開發(fā)方法;比如在第二種方式里人力投入較少,那么自動(dòng)化開發(fā)進(jìn)度可能嚴(yán)重滯后,并不能達(dá)到預(yù)期的效果,這在第一章已有闡述。基線式最常見的問題是在測(cè)試過程中不斷的更新項(xiàng)目版本,在不斷更新的項(xiàng)目版本上進(jìn)行不斷地進(jìn)行自動(dòng)化更新。乍一看這種操作沒有什么問題,可實(shí)際上系統(tǒng)開發(fā)過程中有缺陷修復(fù)帶來的反反復(fù)復(fù),UI變動(dòng)也存在A-B-C-A的過程。由于測(cè)試腳本開發(fā)較晚,這種測(cè)試運(yùn)行基本只能夠應(yīng)用在ST的冒煙測(cè)試和回歸測(cè)試,中途的更新并不能帶來什么實(shí)際的好處,不斷地隨項(xiàng)目版本的變更去進(jìn)行自動(dòng)化的更新反而會(huì)消耗更多的時(shí)間和人力。我們經(jīng)常聽到的是:“這個(gè)系統(tǒng)不適合做自動(dòng)化測(cè)試”這種說法,究
其原因,卻是因?yàn)樽兏ㄐ枨螅┨鄬?dǎo)致的。同時(shí)這種不適合做自動(dòng)化的抱怨也是一種誤解,只要調(diào)整對(duì)應(yīng)的自動(dòng)化開發(fā)策略,問題還是能夠得到一定程度上的緩解的。
那有些同事可能說“剛經(jīng)過SIT或者FAT的版本和經(jīng)過ST的版本有著天壤之別,后期的更新可能跟重新開發(fā)消耗一樣的時(shí)間和人力,那最初的自動(dòng)化開發(fā)不是一種浪費(fèi)嗎?!”很簡單,拿出需求規(guī)格來看看,為什么有這么多的變更呢?這些變更如果沒有對(duì)應(yīng)的流程記錄,那毫無疑問項(xiàng)目經(jīng)理或者你的直接主管要為這么多的人力浪費(fèi)買單;如果有已經(jīng)明確知會(huì)的變更,那么請(qǐng)記得在自動(dòng)化開發(fā)過程中要跟蹤每次變更,同步更新測(cè)試需求和自動(dòng)化開發(fā)需求。軟件開發(fā)成熟度評(píng)估標(biāo)準(zhǔn)中有一項(xiàng)是對(duì)需求管理的指標(biāo),上文之所以強(qiáng)調(diào)軟件開發(fā)成熟度對(duì)自動(dòng)化的影響,其中一部分原因就在這個(gè)地方了。
(3)莫為自動(dòng)化而自動(dòng)化
無論是項(xiàng)目測(cè)試還是運(yùn)營測(cè)試中,自動(dòng)化測(cè)試的目的是測(cè)試而不是自動(dòng)化,自動(dòng)化測(cè)試應(yīng)該是先進(jìn)的測(cè)試手段,是提高測(cè)試質(zhì)量、測(cè)試速度的手段,而并不是單純?yōu)榱思夹g(shù)研究而做的事情。在這一點(diǎn)上犯形式主義錯(cuò)誤的人和事屢見不鮮,筆者總結(jié)有以下三種情況:
1、主觀上崇拜技術(shù),只是為了要證明自己有做自動(dòng)化測(cè)試的實(shí)力,進(jìn)行自動(dòng)化的出發(fā)點(diǎn)錯(cuò)誤。把自動(dòng)化測(cè)試技術(shù)作為第一要義,不注重測(cè)試的需求內(nèi)容,盲目追求測(cè)試自動(dòng)化實(shí)現(xiàn)的華麗程度,但事實(shí)上沒有給系統(tǒng)測(cè)試做太多的貢獻(xiàn)。費(fèi)時(shí)費(fèi)力并不可怕,可怕的是費(fèi)時(shí)費(fèi)力之后卻沒有得到應(yīng)該得的東西;你可以鼓吹自己的自動(dòng)化平臺(tái)、技術(shù)多先進(jìn),但是卻沒有資格對(duì)別人說自己的自動(dòng)化能來帶什么樣的收益。例如有很多人在有QC和QTP的情況下,喜歡舍近求遠(yuǎn),放棄QC的預(yù)留接口和它與QTP之間非常好的兼容性,另起爐灶去開發(fā)難度較大的測(cè)試框架。這樣技術(shù)投入上消耗了更多的資源,但是效果卻并不一定有已有的東西好。
2、偏離測(cè)試主旨,長期運(yùn)作但是沒有實(shí)際產(chǎn)出物。試想一下,每天上萬的測(cè)試腳本反復(fù)運(yùn)行,但是從未見有發(fā)現(xiàn)任何缺陷或者從來就沒有對(duì)“每日回歸”發(fā)現(xiàn)的缺陷進(jìn)行統(tǒng)計(jì)分析,這是一種什么概念。按理說能進(jìn)行每日回歸并且我們這種幾近無甄選的“每日回歸”是非常強(qiáng)大的,即便是大家津津樂道的持續(xù)集成中的高頻度構(gòu)建也是能支持的;但是我們這里缺失了一個(gè)重要的環(huán)節(jié):對(duì)當(dāng)前版本上運(yùn)行結(jié)果的分析。其實(shí)高頻度的運(yùn)行涵蓋兩個(gè)方面,一是冒煙測(cè)試,這是版本每次發(fā)布Staging之后的運(yùn)行,另一個(gè)是回歸測(cè)試,也就是版本定版之前的運(yùn)行。那么有可能哪個(gè)版本移交過來之后就沒有缺陷么?當(dāng)然幾乎沒有!既然有缺陷,那么自動(dòng)化運(yùn)行失敗而置缺陷不理,一味追求測(cè)試腳本的修復(fù)、更新又是所謂何來呢?那只能理解為你只求把自動(dòng)化的運(yùn)行用在回歸測(cè)試上,但事實(shí)上回歸測(cè)試的時(shí)候版本基本已經(jīng)穩(wěn)定,一般自動(dòng)化運(yùn)行是很難發(fā)現(xiàn)什么問題的。最終自動(dòng)化測(cè)試成了回歸測(cè)試時(shí)增加測(cè)試人員信心的手段,目的只是為了證明沒有缺陷,而不是爭(zhēng)取發(fā)現(xiàn)缺陷,這也就從根本上偏離了測(cè)試的主旨。如果能形成每次運(yùn)行之后的報(bào)告分析機(jī)制,那么種情況或許能夠得到改善,缺陷提交是自動(dòng)化運(yùn)行失敗必須要做的,缺陷關(guān)閉是版本移交生產(chǎn)必須做的,這樣卡住過程的首尾,自動(dòng)化測(cè)試方能起到它該起的作用。