
????????二十多年來,軟件測(cè)試工具供應(yīng)商一直在誘惑企業(yè)實(shí)現(xiàn)測(cè)試自動(dòng)化。然而,事實(shí)上大多數(shù)公司從來沒有能夠?qū)崿F(xiàn)他們的自動(dòng)化計(jì)劃所期望的業(yè)務(wù)成果。最近的研究報(bào)告顯示,測(cè)試自動(dòng)化率平均為20%左右,敏捷采用者為26-30%。


我認(rèn)為,這些令人沮喪的自動(dòng)化結(jié)果有幾個(gè)因素...
1.??傳統(tǒng)的軟件測(cè)試平臺(tái)是舊時(shí)代的產(chǎn)物
????????目前最常用的軟件測(cè)試工具是基于老的技術(shù)而構(gòu)建的,但企業(yè)架構(gòu)多年來一直在不斷演化與發(fā)展。開發(fā)不再按季度發(fā)布周期來構(gòu)建C/S桌面應(yīng)用程序——每次發(fā)布之前都有一個(gè)月的測(cè)試窗口(譯者注:這樣長(zhǎng)的時(shí)間窗口沒有了,迫切需要極限測(cè)試、精確測(cè)試、高速的自動(dòng)化測(cè)試)。
????????有了測(cè)試自動(dòng)化工具(如Mercury,HP,Micro Focus,Segue,Borland和IBM)之后,幾乎一切都已經(jīng)發(fā)生了變化。將新功能裝入已有的舊平臺(tái)中,與那些基于新需求的原生解決方案是迥然不同的。
2.?傳統(tǒng)的基于腳本的測(cè)試很難維護(hù)
????????當(dāng)開發(fā)人員正在積極地開發(fā)應(yīng)用程序時(shí),腳本很難維護(hù)。應(yīng)用程序迭代演化的頻率越來越快,腳本保持同步就越來越困難。團(tuán)隊(duì)經(jīng)常處在“創(chuàng)建新測(cè)試(腳本)速度比更新已有測(cè)試(腳本)更快”的境界。這導(dǎo)致一個(gè)更加笨重的測(cè)試套件,仍然(最終)產(chǎn)生令人沮喪的、大量的錯(cuò)誤,因?yàn)閼?yīng)用程序不可避免地繼續(xù)改變。維護(hù)挑戰(zhàn)的加劇是腳本與代碼一樣容易受到缺陷的影響,并且腳本中的缺陷可能會(huì)導(dǎo)致誤報(bào)和/或中斷測(cè)試的執(zhí)行。
? ??????誤報(bào)率、腳本錯(cuò)誤和膨脹的測(cè)試套件等一同造成的負(fù)擔(dān),很少有QA小組可以克服。這是一個(gè)永遠(yuǎn)不能完成的任務(wù)(Sisyphean effort)——只有巨石不斷增長(zhǎng)、且越來越大。

3.?軟件架構(gòu)已經(jīng)改變
????????軟件架構(gòu)發(fā)生了巨大變化,與現(xiàn)代企業(yè)應(yīng)用相關(guān)的技術(shù)組合已經(jīng)迅速擴(kuò)展。隨著我們轉(zhuǎn)向云計(jì)算、云服務(wù)和微服務(wù),我們正在努力遷移,遠(yuǎn)離大型機(jī)和C/S架構(gòu)。這產(chǎn)生了兩個(gè)明顯的挑戰(zhàn):
????????測(cè)試這些技術(shù)需要高度的技術(shù)專長(zhǎng)/專業(yè)化或高水平的業(yè)務(wù)抽象,允許測(cè)試人員在不涉及底層技術(shù)細(xì)節(jié)的情況下進(jìn)行測(cè)試。應(yīng)用程序的不同部分正在以不同的速度發(fā)展,從而導(dǎo)致開發(fā)節(jié)奏不匹配。
4.??軟件開發(fā)流程發(fā)生了變化
????????雖然今天大多數(shù)企業(yè)仍然擁有一些瀑布流程,但是,“交付的東西越來越小、迭代越來越快”是不可抗拒的發(fā)展趨勢(shì)。我們已經(jīng)從季度發(fā)布轉(zhuǎn)為每周一次或每日一次——甚至像這種特別的實(shí)例:亞馬遜每11.6秒發(fā)布一次新的代碼。發(fā)布周期的這種極端壓縮對(duì)測(cè)試來說是一場(chǎng)災(zāi)難——特別是當(dāng)大多數(shù)測(cè)試人員必須等待幾天或幾周才能使用合適的測(cè)試環(huán)境和測(cè)試數(shù)據(jù)。(譯者注:今天有虛擬技術(shù)、Docker技術(shù),還有測(cè)試數(shù)據(jù)自動(dòng)生成智能/模糊工具等,情況不會(huì)那么糟糕)
5.??質(zhì)量的責(zé)任發(fā)生了變化
????????為了響應(yīng)更快的發(fā)布周期的需求,人們推崇“測(cè)試左移”。創(chuàng)建代碼的開發(fā)人員對(duì)質(zhì)量承擔(dān)更多的責(zé)任,因?yàn)樗麄兊娜蝿?wù)及時(shí)達(dá)到“完成的標(biāo)準(zhǔn)(DoD)”變得非常迫切。然而,對(duì)于從事復(fù)雜應(yīng)用的大型企業(yè),開發(fā)人員主導(dǎo)的測(cè)試主要集中在非常窄的、一小部分代碼和組件上。開發(fā)人員通常缺乏測(cè)試能力和時(shí)間,完成現(xiàn)實(shí)中端到端業(yè)務(wù)交易的測(cè)試。雖然質(zhì)量的職責(zé)已經(jīng)向左移動(dòng),但是植根于瀑布過程的遺留依舊有明顯的“朝右”偏見。這使得難以混合這兩種方法。
6.??開源測(cè)試工具已經(jīng)改變了行業(yè)
????????像Selenium和SoapUI等開源軟件測(cè)試工具的興起,已經(jīng)產(chǎn)生了積極和消極的影響。傳統(tǒng)上,開源測(cè)試工具像激光那樣——專注于為單個(gè)用戶解決一個(gè)非常具體的特定問題。例如,Selenium已經(jīng)成為極受歡迎的、基于腳本的Web UI測(cè)試工具。雖然Selenium提供了速度和靈活性,但它不支持跨越應(yīng)用程序、API、數(shù)據(jù)庫(kù)、移動(dòng)UI、主機(jī)應(yīng)用等端到端的測(cè)試。毫無疑問,今天的大多數(shù)企業(yè)應(yīng)用程序都肯定有Web UI的測(cè)試。然而,在大型企業(yè)中,Web UI僅僅是端到端業(yè)務(wù)流程的許多元素之一。同樣的限制(問題)適用于SoapUI和API測(cè)試。
那么現(xiàn)在怎么辦?
????????軟件測(cè)試必須改變。昨天的ALM工具無法應(yīng)對(duì)今天的軟件測(cè)試挑戰(zhàn)。隨著擴(kuò)展到所有行業(yè)領(lǐng)域的DevOps、持續(xù)交付和敏捷等突破性的創(chuàng)新,軟件測(cè)試成為數(shù)據(jù)驅(qū)動(dòng)軟件發(fā)布決策的核心。SDLC成熟度的新浪潮需要組織來改造過時(shí)的測(cè)試過程和工具。這意味著組織必須擁有能夠進(jìn)行持續(xù)測(cè)試的技術(shù),否則創(chuàng)新的想法只會(huì)止步于昨天的重量級(jí)測(cè)試工具。
????????如果對(duì)軟件測(cè)試有興趣,想了解更多的測(cè)試知識(shí),可以加入我的QQ群 ?高級(jí)測(cè)試學(xué)習(xí)大家庭:652068511