????????二十多年來糕非,軟件測試工具供應(yīng)商一直在誘惑企業(yè)實現(xiàn)測試自動化。然而球榆,事實上大多數(shù)公司從來沒有能夠?qū)崿F(xiàn)他們的自動化計劃所期望的業(yè)務(wù)成果朽肥。最近的研究報告顯示,測試自動化率平均為20%左右持钉,敏捷采用者為26-30%衡招。
我認(rèn)為,這些令人沮喪的自動化結(jié)果有幾個因素...
1.??傳統(tǒng)的軟件測試平臺是舊時代的產(chǎn)物
????????目前最常用的軟件測試工具是基于老的技術(shù)而構(gòu)建的每强,但企業(yè)架構(gòu)多年來一直在不斷演化與發(fā)展始腾。開發(fā)不再按季度發(fā)布周期來構(gòu)建C/S桌面應(yīng)用程序——每次發(fā)布之前都有一個月的測試窗口(譯者注:這樣長的時間窗口沒有了,迫切需要極限測試空执、精確測試窘茁、高速的自動化測試)。
????????有了測試自動化工具(如Mercury脆烟,HP山林,Micro Focus,Segue,Borland和IBM)之后驼抹,幾乎一切都已經(jīng)發(fā)生了變化桑孩。將新功能裝入已有的舊平臺中,與那些基于新需求的原生解決方案是迥然不同的框冀。
2.?傳統(tǒng)的基于腳本的測試很難維護(hù)
????????當(dāng)開發(fā)人員正在積極地開發(fā)應(yīng)用程序時流椒,腳本很難維護(hù)。應(yīng)用程序迭代演化的頻率越來越快明也,腳本保持同步就越來越困難宣虾。團(tuán)隊經(jīng)常處在“創(chuàng)建新測試(腳本)速度比更新已有測試(腳本)更快”的境界。這導(dǎo)致一個更加笨重的測試套件温数,仍然(最終)產(chǎn)生令人沮喪的绣硝、大量的錯誤,因為應(yīng)用程序不可避免地繼續(xù)改變撑刺。維護(hù)挑戰(zhàn)的加劇是腳本與代碼一樣容易受到缺陷的影響鹉胖,并且腳本中的缺陷可能會導(dǎo)致誤報和/或中斷測試的執(zhí)行。
? ??????誤報率够傍、腳本錯誤和膨脹的測試套件等一同造成的負(fù)擔(dān)甫菠,很少有QA小組可以克服。這是一個永遠(yuǎn)不能完成的任務(wù)(Sisyphean effort)——只有巨石不斷增長冕屯、且越來越大寂诱。
3.?軟件架構(gòu)已經(jīng)改變
????????軟件架構(gòu)發(fā)生了巨大變化,與現(xiàn)代企業(yè)應(yīng)用相關(guān)的技術(shù)組合已經(jīng)迅速擴(kuò)展安聘。隨著我們轉(zhuǎn)向云計算痰洒、云服務(wù)和微服務(wù),我們正在努力遷移搞挣,遠(yuǎn)離大型機和C/S架構(gòu)带迟。這產(chǎn)生了兩個明顯的挑戰(zhàn):
????????測試這些技術(shù)需要高度的技術(shù)專長/專業(yè)化或高水平的業(yè)務(wù)抽象音羞,允許測試人員在不涉及底層技術(shù)細(xì)節(jié)的情況下進(jìn)行測試囱桨。應(yīng)用程序的不同部分正在以不同的速度發(fā)展,從而導(dǎo)致開發(fā)節(jié)奏不匹配嗅绰。
4.??軟件開發(fā)流程發(fā)生了變化
????????雖然今天大多數(shù)企業(yè)仍然擁有一些瀑布流程舍肠,但是,“交付的東西越來越小窘面、迭代越來越快”是不可抗拒的發(fā)展趨勢翠语。我們已經(jīng)從季度發(fā)布轉(zhuǎn)為每周一次或每日一次——甚至像這種特別的實例:亞馬遜每11.6秒發(fā)布一次新的代碼。發(fā)布周期的這種極端壓縮對測試來說是一場災(zāi)難——特別是當(dāng)大多數(shù)測試人員必須等待幾天或幾周才能使用合適的測試環(huán)境和測試數(shù)據(jù)财边。(譯者注:今天有虛擬技術(shù)肌括、Docker技術(shù),還有測試數(shù)據(jù)自動生成智能/模糊工具等酣难,情況不會那么糟糕)
5.??質(zhì)量的責(zé)任發(fā)生了變化
????????為了響應(yīng)更快的發(fā)布周期的需求谍夭,人們推崇“測試左移”黑滴。創(chuàng)建代碼的開發(fā)人員對質(zhì)量承擔(dān)更多的責(zé)任,因為他們的任務(wù)及時達(dá)到“完成的標(biāo)準(zhǔn)(DoD)”變得非常迫切紧索。然而袁辈,對于從事復(fù)雜應(yīng)用的大型企業(yè),開發(fā)人員主導(dǎo)的測試主要集中在非常窄的珠漂、一小部分代碼和組件上晚缩。開發(fā)人員通常缺乏測試能力和時間,完成現(xiàn)實中端到端業(yè)務(wù)交易的測試媳危。雖然質(zhì)量的職責(zé)已經(jīng)向左移動荞彼,但是植根于瀑布過程的遺留依舊有明顯的“朝右”偏見。這使得難以混合這兩種方法济舆。
6.??開源測試工具已經(jīng)改變了行業(yè)
????????像Selenium和SoapUI等開源軟件測試工具的興起卿泽,已經(jīng)產(chǎn)生了積極和消極的影響。傳統(tǒng)上滋觉,開源測試工具像激光那樣——專注于為單個用戶解決一個非常具體的特定問題签夭。例如,Selenium已經(jīng)成為極受歡迎的椎侠、基于腳本的Web UI測試工具第租。雖然Selenium提供了速度和靈活性,但它不支持跨越應(yīng)用程序我纪、API慎宾、數(shù)據(jù)庫、移動UI浅悉、主機應(yīng)用等端到端的測試趟据。毫無疑問,今天的大多數(shù)企業(yè)應(yīng)用程序都肯定有Web UI的測試术健。然而汹碱,在大型企業(yè)中,Web UI僅僅是端到端業(yè)務(wù)流程的許多元素之一荞估。同樣的限制(問題)適用于SoapUI和API測試咳促。
那么現(xiàn)在怎么辦?
????????軟件測試必須改變勘伺。昨天的ALM工具無法應(yīng)對今天的軟件測試挑戰(zhàn)跪腹。隨著擴(kuò)展到所有行業(yè)領(lǐng)域的DevOps、持續(xù)交付和敏捷等突破性的創(chuàng)新飞醉,軟件測試成為數(shù)據(jù)驅(qū)動軟件發(fā)布決策的核心冲茸。SDLC成熟度的新浪潮需要組織來改造過時的測試過程和工具。這意味著組織必須擁有能夠進(jìn)行持續(xù)測試的技術(shù),否則創(chuàng)新的想法只會止步于昨天的重量級測試工具轴术。
????????如果對軟件測試有興趣蹲盘,想了解更多的測試知識,可以加入我的QQ群 ?高級測試學(xué)習(xí)大家庭:652068511