先表明觀點(diǎn):自動(dòng)化測(cè)試是手工測(cè)試的有效補(bǔ)充,這個(gè)觀點(diǎn)我很認(rèn)同丁鹉。
但是自動(dòng)化測(cè)試能主導(dǎo)甚至取代手工測(cè)試妒潭,小編覺(jué)得是不可能的。
自動(dòng)化測(cè)試是什么呢揣钦?
自動(dòng)化測(cè)試是按照我們事先編寫好的腳本雳灾,按照一定順序或隨機(jī)順序,執(zhí)行腳本步驟冯凹,并對(duì)比預(yù)期結(jié)果谎亩,得到測(cè)試實(shí)際結(jié)果的一種測(cè)試手段。
既然是事先編寫好的腳本宇姚,那么自動(dòng)化測(cè)試其實(shí)就是為了驗(yàn)證當(dāng)前邏輯分支或黑盒功能是否存在問(wèn)題匈庭。
用例覆蓋代碼分支,是存在一定遺漏的浑劳,在數(shù)家公司驗(yàn)證過(guò)阱持,用例最多覆蓋70%的代碼邏輯;而用例發(fā)現(xiàn)bug的比例魔熏,不會(huì)超過(guò)60%衷咽。那剩下的40%,依賴于測(cè)試人員的經(jīng)驗(yàn)和對(duì)業(yè)務(wù)的熟悉程度蒜绽,所以手工的自由測(cè)試或者探索測(cè)試兵罢,仍然有必要存在。
這么說(shuō)也沒(méi)錯(cuò)滓窍,絕對(duì)可行卖词。但是帶來(lái)了第二個(gè)問(wèn)題:自動(dòng)化測(cè)試維護(hù)成本相比手工測(cè)試,會(huì)高多少吏夯?如果持平此蜈,那么你全部寫成自動(dòng)化腳本,還是很合理噪生。如果過(guò)高裆赵,很多工程師只會(huì)把一些大量重復(fù)性的用例轉(zhuǎn)換成自動(dòng)化。
軟件測(cè)試中手工測(cè)試重要還是自動(dòng)化測(cè)試重要跺嗽?
這個(gè)問(wèn)題好像好多人都問(wèn)過(guò)战授。手工測(cè)試页藻、自動(dòng)化測(cè)試哪個(gè)更重要? 答:都重要,不存在孰輕孰重的問(wèn)題植兰。
對(duì)軟件測(cè)試而言份帐,如果軟件功能邏輯、界面等變更較頻繁楣导,自動(dòng)化腳本往往不一定適配下一個(gè)版本废境,需要每個(gè)版本花時(shí)間進(jìn)行調(diào)試,這樣對(duì)測(cè)試工程師來(lái)說(shuō)就叫維護(hù)成本筒繁。
如果調(diào)試時(shí)間太長(zhǎng)噩凹,靠自己手工測(cè)試早就完成了,那么自動(dòng)化測(cè)試的價(jià)值就不存在了毡咏。
所以綜上所述驮宴,我認(rèn)為自動(dòng)化和手工測(cè)試,都同樣重要呕缭,而且相對(duì)而言幻赚,在產(chǎn)品研發(fā)初期或者一些小公司,手工測(cè)試一定占據(jù)主導(dǎo)地位臊旭。
手工測(cè)試和自動(dòng)化測(cè)試都基于對(duì)用戶需求落恼、功能需求的正確理解,對(duì)測(cè)試對(duì)象進(jìn)行充分測(cè)試設(shè)計(jì)的基礎(chǔ)上開展的离熏。
按照測(cè)試階段或者功能穩(wěn)定程度來(lái)劃分佳谦,手工測(cè)試更適合軟件模塊、集成測(cè)試階段或者功能穩(wěn)定性低(缺陷多滋戳、變動(dòng)快等)钻蔑,如果這個(gè)時(shí)候開展自動(dòng)化會(huì)引入過(guò)多的自動(dòng)化開發(fā)、維護(hù)成本奸鸯。
自動(dòng)化測(cè)試更適合在產(chǎn)品迭代后期或者功能相對(duì)穩(wěn)定的時(shí)候開展咪笑,通常應(yīng)用于回歸測(cè)試場(chǎng)景下
按照不同的測(cè)試對(duì)象來(lái)劃分,如測(cè)試百萬(wàn)級(jí)的元數(shù)據(jù)遷移娄涩、匯聚處理時(shí)窗怒,由于數(shù)據(jù)的多樣性,很難通過(guò)用手工測(cè)試保障質(zhì)量蓄拣,自然而然需要考慮自動(dòng)化的方式提高測(cè)試效率扬虚,進(jìn)而保障測(cè)試質(zhì)量。時(shí)間有限的情況下球恤,使用自動(dòng)化盡可能覆蓋重復(fù)性高的操作辜昵。
同時(shí)自動(dòng)化并不是生搬硬套,根據(jù)不同的業(yè)務(wù)場(chǎng)景選擇合適的自動(dòng)化框架十分重要咽斧,可以有效的提高測(cè)試開發(fā)效率和降低維護(hù)成本堪置。如躬存,對(duì)于一個(gè)含有強(qiáng)流程的業(yè)務(wù)模塊,采用關(guān)鍵字驅(qū)動(dòng)測(cè)試框架更利于用例的組織和維護(hù)舀锨。通常常用的自動(dòng)化框架還包含數(shù)據(jù)驅(qū)動(dòng)測(cè)試框架岭洲、模塊化測(cè)試框架。
自動(dòng)化測(cè)試的類型也要因地制宜雁竞,如ui自動(dòng)化、接口自動(dòng)化等等拧额,也需要結(jié)合業(yè)務(wù)特點(diǎn)碑诉、底層架構(gòu)選擇合適的類型開展。
軟件測(cè)試中侥锦,手工測(cè)試是基礎(chǔ)
自動(dòng)化測(cè)試是提升效率的手段进栽,也是未來(lái)的趨勢(shì)。想要做好測(cè)試恭垦,二者都很重要快毛,不可或缺。手工測(cè)試一次完整的測(cè)試行為中番挺,可能不包含自動(dòng)化測(cè)試唠帝,但一定會(huì)包含手工測(cè)試。
手工測(cè)試是對(duì)被測(cè)產(chǎn)品的總體需求進(jìn)行全面驗(yàn)證玄柏,把真實(shí)用戶所有可能輸入的數(shù)據(jù)分類后進(jìn)行等價(jià)測(cè)試襟衰,容易查出程序中的錯(cuò)誤。
也就是說(shuō)粪摘,手工測(cè)試是以用戶的角度瀑晒,從輸入和輸出的對(duì)應(yīng)關(guān)系為出發(fā)點(diǎn),進(jìn)行測(cè)試的徘意,注重軟件的功能正確性苔悦。
手工測(cè)試主要試圖發(fā)現(xiàn)以下幾類錯(cuò)誤:
1、用戶可能輸入的數(shù)據(jù)千奇百怪椎咧,所以手工測(cè)試的時(shí)候玖详,不僅要測(cè)試所有合法的輸入,還要測(cè)試那些不合法勤讽,但是可能會(huì)出現(xiàn)的輸入竹宋。這就需要引入測(cè)試用例,來(lái)量化管理這些輸入的類型地技,比如等價(jià)類蜈七,邊界值,因果圖等莫矗,都是常見的用例設(shè)計(jì)方法飒硅。
但幾個(gè)測(cè)試人員砂缩,在規(guī)定時(shí)間內(nèi),就算不吃不喝不睡的測(cè)試三娩,也不能涵蓋所有可能發(fā)生的用戶使用場(chǎng)景庵芭,這個(gè)時(shí)候就要引入自動(dòng)化測(cè)試的手段啦。
2雀监、比如上線一個(gè)新版本双吆,除了驗(yàn)證新功能的正確與否,還必須保證舊功能的正常運(yùn)作会前。但是針對(duì)舊功能好乐,沒(méi)有必要每次都手工跑一遍測(cè)試用例,太費(fèi)時(shí)間瓦宜。
我們可以針對(duì)舊功能蔚万,寫一個(gè)自動(dòng)化腳本(比如登錄注冊(cè)頁(yè)、用戶反饋?lái)?yè)這些很少去碰去改動(dòng)的頁(yè)面)临庇,每次都讓腳本自己運(yùn)行一遍反璃,一般沒(méi)什么大問(wèn)題。
3假夺、現(xiàn)在移動(dòng)端測(cè)試淮蜈,要涵蓋的機(jī)型很多,蘋果還好已卷,安卓的機(jī)子簡(jiǎn)直數(shù)不過(guò)來(lái)礁芦,手工去兼容幾個(gè),再多就顧不過(guò)來(lái)了悼尾,耽誤進(jìn)度了柿扣。寫一個(gè)自動(dòng)化腳本,可以運(yùn)行在所有你要兼容的機(jī)型上面闺魏,就會(huì)節(jié)省很多人力和時(shí)間店溢。
自動(dòng)化當(dāng)然也有缺點(diǎn)锯仪,就是大多數(shù)時(shí)候栈拖,腳本只能是一次性的败京,如果針對(duì)某個(gè)功能寫了一個(gè)腳本,下次這個(gè)功能改動(dòng)了泡仗,這個(gè)腳本基本就作廢了埋虹。
小tip:寫自動(dòng)化腳本,一定要到版本穩(wěn)定了娩怎,再去寫搔课,跟性能測(cè)試道理是一樣的。版本不穩(wěn)定的時(shí)候截亦,去測(cè)性能爬泥,去執(zhí)行自動(dòng)化柬讨,會(huì)造成大量的無(wú)用功。