走在自動(dòng)化軟件測(cè)試的道路上(二)------我們應(yīng)該做什么?
前言:
● 自動(dòng)化測(cè)試不只是測(cè)試的自動(dòng)化,應(yīng)當(dāng)是流程的自動(dòng)化
● 自動(dòng)化測(cè)試是一種軟件開發(fā)交付過程
● 自動(dòng)化測(cè)試成敗在于自動(dòng)化項(xiàng)目的質(zhì)量與可維護(hù)性
自動(dòng)化測(cè)試對(duì)于在黑盒與手工測(cè)試工作的大部分人來說,都會(huì)比較向往,因?yàn)樽詣?dòng)化測(cè)試很有成就感; 對(duì)于直接在自動(dòng)化測(cè)試行業(yè)工作的新人來說,會(huì)比較迷茫,因?yàn)檫@個(gè)較為新生的領(lǐng)域不像開發(fā)行業(yè)那么成熟;
其實(shí),自動(dòng)化測(cè)試和手工測(cè)試一樣,是一種測(cè)試方法,只是你智力與思維轉(zhuǎn)化的結(jié)果; 關(guān)鍵看你是否適合,心態(tài)是否正確。
同時(shí),它的發(fā)展前景不亞于任何開發(fā)行業(yè),你既可以接觸專業(yè)的自動(dòng)化測(cè)試技術(shù),又可以掌握相關(guān)的開發(fā)技術(shù),并且可以接觸專業(yè)的測(cè)試專家。
自動(dòng)化測(cè)試的范圍
一般我們很難直接限定自動(dòng)化測(cè)試的內(nèi)容,但以我的理解,先從不適合的方面排除之,你可以試著看一下。
在混亂的項(xiàng)目流程中,不適合推廣和試行自動(dòng)化測(cè)試。 自動(dòng)化測(cè)試也是一種項(xiàng)目交付過程。
如果被測(cè)項(xiàng)目流程不明確,過程責(zé)任不清,沒有準(zhǔn)確公平的數(shù)據(jù)度量,
● 開展了自動(dòng)化測(cè)試效果難于評(píng)估,做也白搭
● 沒有清晰的交付測(cè)試流程,自動(dòng)化測(cè)試經(jīng)常的變更成本,以及沒有開發(fā)支撐的自動(dòng)化只能從表面下手,導(dǎo)致維護(hù)成本過高。
● 自動(dòng)化測(cè)試能夠?qū)⒘鞒坦ぞ呋@點(diǎn)體現(xiàn)的效果易于得到整體研發(fā)的認(rèn)可與支撐,效果也是極顯著的。
打個(gè)比方,本來是在公路上(不完善的流程)運(yùn)行汽車,你非要改進(jìn)效率跑火車(自動(dòng)化),適得其反。
自動(dòng)化測(cè)試的關(guān)鍵點(diǎn)之一,在于流程,流程在于人去完善,去改進(jìn)。然而流程在年少時(shí)人的性格,在年長(zhǎng)時(shí)也改變不了太多,我們自動(dòng)化要符合流程去做,需要完善的我們?nèi)パa(bǔ)充完善。而完善流程,不是一味的提要求,而是合理的慣力的要求,更多的時(shí)候應(yīng)該建設(shè)平臺(tái)來支撐流程,讓人做到最簡(jiǎn)化。
一旦流程的完善,自動(dòng)化隨之正規(guī)化,可量化的自動(dòng)化需求,項(xiàng)目成員明確自動(dòng)化的成本與成果,以及相關(guān)自動(dòng)化約束(例如某個(gè)自動(dòng)化接口實(shí)現(xiàn))。 自動(dòng)化的成功自然隨之而然。
所以,自動(dòng)化測(cè)試不只是測(cè)試的自動(dòng)化,而應(yīng)當(dāng)是整個(gè)流程的一種自動(dòng)化與完善。
在實(shí)施自動(dòng)化的時(shí)候,處理流程相關(guān),最好遵尋:完成相關(guān)自動(dòng)化項(xiàng)目顯示效果 -> 要求改進(jìn)流程 -> 實(shí)現(xiàn)流程過程的自動(dòng)化
這樣帶來的項(xiàng)目壓力較小,容易獲得所需的資源。
自動(dòng)化測(cè)試的過程
有了流程不代表我們肯定會(huì)成功,更何況一般需要我們通過自動(dòng)化測(cè)試的成功來帶動(dòng)流程的推進(jìn)。
自動(dòng)化測(cè)試首先是一種軟件開發(fā)與交付過程,無論最后的執(zhí)行與維護(hù)是誰!
自動(dòng)化測(cè)試與軟件開發(fā)過程基本相同,也要經(jīng)歷: 需求->設(shè)計(jì)->編碼->交付 四個(gè)核心過程。 與普通的開發(fā)過程不一樣的是
● 自動(dòng)化需求并不是實(shí)際的強(qiáng)制性需求,能夠有彈性,最關(guān)鍵的是自動(dòng)化項(xiàng)目所定下的效果,各利益相關(guān)者必須在自動(dòng)化項(xiàng)目效果期望上達(dá)成一致。
● 一般自動(dòng)化設(shè)計(jì)過程相對(duì)較為簡(jiǎn)單,如果有可伸縮好的框架,這個(gè)設(shè)計(jì)過程可以在很短時(shí)間搞定。
● 自動(dòng)化的維護(hù)周期會(huì)比較長(zhǎng),所以設(shè)計(jì)高維護(hù)的自動(dòng)化腳本是必然的。
在實(shí)際中,從手工測(cè)試過程中學(xué)習(xí)自動(dòng)化的人,甚至有對(duì)版本管理工具如何管理代碼不清楚,那么他去做自動(dòng)化必然是失敗的。
當(dāng)項(xiàng)目經(jīng)理對(duì)自動(dòng)化效果期望很高時(shí)(這點(diǎn)可以理解,一般人對(duì)自動(dòng)化期望都比較高),而你沒有將實(shí)際的風(fēng)險(xiǎn)與效果評(píng)估展現(xiàn)與說服給他時(shí),就算自動(dòng)化再成功,這個(gè)項(xiàng)目依然得不到所得的效果。
我們?cè)诮y(tǒng)計(jì)自動(dòng)化成本時(shí),往往發(fā)現(xiàn)執(zhí)行維護(hù)階段最終會(huì)超過自動(dòng)化項(xiàng)目開發(fā)階段。
我們應(yīng)該怎么做自動(dòng)化項(xiàng)目
看下我們的目標(biāo):
● 快速開發(fā)與交付
● 高可用維護(hù)
選擇一門語言:
根據(jù)實(shí)際自動(dòng)化需求,我們選擇了ruby作為基礎(chǔ)開發(fā)語言。 實(shí)際運(yùn)用中,推薦使用ruby或python具備完備的模塊管理與純面向?qū)ο螅兄诮ㄔO(shè)高復(fù)用的框架與平臺(tái)。
實(shí)現(xiàn)快速迭代:
每天日結(jié),自動(dòng)化代碼要有完備的單元測(cè)試,這點(diǎn)通過ruby很容易實(shí)現(xiàn),通過極簡(jiǎn)潔的單元測(cè)試框架讓任何人都愿意做自動(dòng)化代碼的單元測(cè)試,這點(diǎn)很重要,因?yàn)槟愕拇a再也沒有人去手工測(cè)試了。
實(shí)現(xiàn)DRY與業(yè)務(wù)邏輯分離
DRY即Don't Repeat Yourself(不要重復(fù)自己), 永遠(yuǎn)不要讓相同的邏輯代碼復(fù)寫兩次。 一旦出現(xiàn),將其分離封裝,如果是公共代碼(可能大多數(shù)項(xiàng)目會(huì)用),將其獨(dú)立為gem包等形式。
業(yè)務(wù)邏輯分離,將用例業(yè)務(wù)層為獨(dú)立,邏輯處理再次封裝,MVC的思想作為參考點(diǎn)。
實(shí)際上,自動(dòng)化項(xiàng)目更適合做敏捷模式的開發(fā)過程,如果自動(dòng)化項(xiàng)目都沒有“敏捷”, 你的被測(cè)項(xiàng)目又如何“敏捷” ?
我們應(yīng)該關(guān)注什么?
除了自動(dòng)化項(xiàng)目完成時(shí)間是重點(diǎn)外,我們要去關(guān)注:
1、質(zhì)量問題
2、可維護(hù)性
質(zhì)量關(guān)乎自動(dòng)化項(xiàng)目的生命,
一旦自動(dòng)化項(xiàng)目的經(jīng)常跑失敗,失敗的原因經(jīng)常是由于腳本引發(fā),并且不收斂,那后果可想而知:
● 沒有人再相信自動(dòng)化的運(yùn)行結(jié)果
● 沒有人再愿意嘗試不斷的投入執(zhí)行與分析一個(gè)無法發(fā)現(xiàn)有效bug的自動(dòng)化測(cè)試項(xiàng)目中
● 沒有人再愿意投入下一個(gè)自動(dòng)化過程中
可維護(hù)性是指后續(xù)的產(chǎn)品變更引起的自動(dòng)化腳本更新快捷方便,做的好的自動(dòng)化是超前完成維護(hù)的,做的爛的自動(dòng)化是無法維護(hù)的。
可維護(hù)性表現(xiàn)可在于1,修復(fù)一處代碼即可完成相關(guān)所有邏輯的處理 2,便于增加新用例與復(fù)用代碼。
我們誰也不愿意將自動(dòng)化的腳步陷入不斷的無限的維護(hù)分析的泥潭中。
總結(jié)
上面一些感悟,例子不多,但將我認(rèn)為最重要的東西表達(dá)出來了,很多東西并不是死板的,呆滯的。
自動(dòng)化領(lǐng)域更講究創(chuàng)新思維。
能夠?qū)⒛闼吹阶罘爆崳顭o聊的事情通過自動(dòng)化解決了,這就是做好自動(dòng)化項(xiàng)目的最核心思想。
但自動(dòng)化之路不是一朝半夕可以掌握,很多彎路也許你是必須要走過。 <異類>一個(gè)觀點(diǎn)叫 1萬小時(shí)規(guī)律, 你不去認(rèn)真做一萬小時(shí)的事情,你是不可能成為高手的。 (1萬小時(shí)大概需要5-6年)
在這里共享一些心得,也與剛?cè)腴T的兄弟姐妹們共勉之。 共同進(jìn)步。
最后推薦一個(gè)最近文章<測(cè)試技術(shù)專家之路的成長(zhǎng)>,我想自動(dòng)化專家的發(fā)展也與此類同:http://www.51testing.com/html/09/n-247209.html
多實(shí)踐,找出與自己公司合適的自動(dòng)化發(fā)展之路,而不是好高鶩遠(yuǎn),更不是以技術(shù)牛人自居,只有這樣,才能腳踏實(shí)地,一步步走好適合自己的發(fā)展歷程。任何行業(yè)不都這樣嗎?
相關(guān)鏈接:
posted on 2012-05-16 09:27 順其自然EVO 閱讀(325) 評(píng)論(0) 編輯 收藏 所屬分類: qtp 、selenium and watir webdrivers 自動(dòng)化測(cè)試學(xué)習(xí)