轉(zhuǎn)帖|其它|編輯:鄭恭琳|2020-06-03 11:32:33.177|閱讀 279 次
概述:在與Coveros測(cè)試自動(dòng)化總監(jiān)Max Saperstone的第二部分對(duì)話中,我們深入了解了如何建立有效的測(cè)試策略以及他對(duì)商業(yè)測(cè)試自動(dòng)化工具的想法。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
在與Coveros測(cè)試自動(dòng)化總監(jiān)Max Saperstone的第二部分對(duì)話中(第一部分在這里),我們深入了解了如何建立有效的測(cè)試策略以及他對(duì)商業(yè)測(cè)試自動(dòng)化工具的想法。
Max在他的客戶中發(fā)現(xiàn)的情況與Parasoft在我們這里遇到的情況相同。許多組織在測(cè)試以及如何在每個(gè)測(cè)試階段分配資源方面都面臨挑戰(zhàn)。Max隨后討論了他對(duì)商用工具的看法,并圍繞無代碼測(cè)試進(jìn)行了更多討論。
Mark Lambert:制定API測(cè)試策略意味著您可以在流程中盡早發(fā)現(xiàn)問題,并且盡早隔離問題顯然是業(yè)界所追求的。但是,當(dāng)我與人們交談時(shí),他們將測(cè)試策略描述為更像蛋卷冰淇淋或倒金字塔。那也是你看到的嗎?如果是這樣,那么您看到軟件團(tuán)隊(duì)面對(duì)這種冰激凌類型的情況有哪些挑戰(zhàn)?
Max Saperstone:我在倒金字塔上看到了各種各樣的變化。有些差不多是一個(gè)沙漏,底部有很多活動(dòng),頂部有很多活動(dòng),而中間卻很少。
確實(shí),問題歸結(jié)為成本和速度,老實(shí)說,速度也流入成本。單元測(cè)試很便宜,應(yīng)該在幾秒鐘內(nèi)即可完成。這些單元測(cè)試確實(shí)應(yīng)該構(gòu)成金字塔的底部。它們創(chuàng)建起來應(yīng)該相對(duì)便宜,維護(hù)起來也相對(duì)便宜。如果它們不是快速,可維護(hù)的東西,那么它們要么不是真正的單元測(cè)試,要么就是您做的不好。
我要做的很多事情都是與開發(fā)人員,測(cè)試人員和需求分析人員一起工作。我需要了解在不同區(qū)域進(jìn)行真正測(cè)試的必要條件,并且每個(gè)人都在同一頁面上。例如,當(dāng)您測(cè)試數(shù)據(jù)庫時(shí),它不再是單元測(cè)試,而是真正的組件測(cè)試。我看到團(tuán)隊(duì)中有很多單元測(cè)試,但也有很多集成測(cè)試。隔離差和復(fù)雜的單元測(cè)試會(huì)減慢單元測(cè)試過程。
您希望單元測(cè)試更快的原因是即使在代碼編譯之前也要迅速獲得反饋。您要確保代碼至少能達(dá)到開發(fā)人員想要的功能。因?yàn)槿绻鼪]有按照開發(fā)人員的意愿進(jìn)行操作,則沒有任何理由進(jìn)一步發(fā)展。
通常以UI測(cè)試的形式進(jìn)行的功能測(cè)試本質(zhì)上是脆弱的,它們更難以維護(hù)。那么,為什么一個(gè)團(tuán)隊(duì)想要更多呢?我進(jìn)入不同的組織,他們說:“嗯,自動(dòng)化對(duì)我們沒有用。”我說:“好吧,讓我們看看您的測(cè)試。”我發(fā)現(xiàn)這是三件事的結(jié)合:它們有太多的UI測(cè)試,它們太難以維護(hù),并且編寫得不好。我告訴他們他們可以減少UI測(cè)試的數(shù)量,因?yàn)樗衅渌@些測(cè)試層(單元和組件)都可以支持它們,并且當(dāng)他們改進(jìn)它們時(shí),我可以幫助他們編寫比目前更好的功能測(cè)試。
Mark Lambert:您提到了我想回到的話題,因?yàn)樽?5年前加入Parasoft以來,我就一直看到這個(gè)問題。當(dāng)有人說“是的,我正在進(jìn)行單元測(cè)試”,但是當(dāng)您進(jìn)入那里時(shí),他們實(shí)際上并未在進(jìn)行單元測(cè)試,實(shí)際上他們?cè)诮鹱炙细摺H缒f,僅使用單元測(cè)試框架并不一定意味著他們正在進(jìn)行單元測(cè)試。你為什么這么認(rèn)為呢?有人要?jiǎng)?chuàng)建正確的或真實(shí)的單元測(cè)試有什么挑戰(zhàn)?
Max Saperstone:這絕對(duì)不是我在一兩個(gè)地方見過的孤立事件。坦白地說,與集成或系統(tǒng)測(cè)試相比,編寫好的單元測(cè)試很困難。如果要進(jìn)行良好的單元測(cè)試,則必須模擬單元依賴的所有內(nèi)容。
編寫模擬并不容易。這需要更多的工作;它需要更多的庫。開發(fā)人員實(shí)際上為此苦苦掙扎。他們可能不知道該怎么做,或者可能沒有時(shí)間去做。由于這些原因,他們可能決定采取捷徑來快速連接數(shù)據(jù)庫,例如,這是短期解決方案。一周后,其他所有人都在使用相同的代碼,現(xiàn)在更改它已為時(shí)已晚。當(dāng)我指出這些問題時(shí),對(duì)此的回答是“嗯,我們正在編寫測(cè)試。總比沒有好。”確實(shí)如此,但是這些團(tuán)隊(duì)很快就進(jìn)入了他們的測(cè)試效果不佳的地方。
我實(shí)際上并不認(rèn)為這大部分都是無知。我真的認(rèn)為在大多數(shù)情況下,這是一個(gè)時(shí)間緊縮。當(dāng)涉及到這一點(diǎn)時(shí),我在每個(gè)組織中都看到了這一點(diǎn),與最初做正確的事情相比,管理層更關(guān)心的是發(fā)布產(chǎn)品。因此,這些團(tuán)隊(duì)積累了技術(shù)債務(wù),并且在短期內(nèi)沒有問題。但是,真正的問題在于,當(dāng)他們不找回并減少債務(wù)時(shí),當(dāng)他們重構(gòu)代碼或進(jìn)行某些更改時(shí),這些復(fù)雜的,非隔離的“單元測(cè)試”變得越來越脆弱,并且事情越來越多,開始崩潰。盡管起初他們有良好的意愿,但不良測(cè)試和技術(shù)債務(wù)的累積卻造成了我所看到的問題。
Mark Lambert:在幫助客戶部署其測(cè)試策略并確定要在何處應(yīng)用自動(dòng)化時(shí),他們必須做出一些技術(shù)決策。例如,他們需要決定是否要使用開源或商業(yè)解決方案?還是只是建立自己的框架?您建議他們從哪里開始決策過程?
Max Saperstone:這是一個(gè)很好的問題,Mark。這實(shí)際上是我最常被問到的問題之一:我應(yīng)該使用哪種工具?我應(yīng)該使用什么框架?客戶通常將開始進(jìn)行自動(dòng)化或進(jìn)入API測(cè)試。不幸的是,我總是給出的答案是“哦,我不知道”,因?yàn)?我不喜歡工具優(yōu)先方法。
我非常希望客戶退后一步,考慮他們的要求是什么。他們從測(cè)試結(jié)果分析和可追溯性角度看什么?他們想要完成什么?他們希望工具支持什么級(jí)別的測(cè)試金字塔?只是在UI,API和單元測(cè)試上進(jìn)行測(cè)試?總體測(cè)試策略是什么?
一旦我回答了所有這些問題。然后我將研究市場(chǎng)上存在的一些框架和工具,并根據(jù)研究客戶的需求做出決策。我總是建議先使用開源工具。我非常樂于嘗試做盡可能敏捷的事情,其中很大一部分是實(shí)驗(yàn)。眾所周知,有時(shí)候失敗是實(shí)驗(yàn)的一部分。您可能會(huì)找到正確的工具,并且一開始可能工作正常,也可能無法正常工作。如果您必須為這些工具付費(fèi),那么實(shí)驗(yàn)會(huì)變得很昂貴,而且您可能無法獲得所需的東西。
在嘗試了開放源代碼工具之后,我建議我的客戶看一下具有免費(fèi)試用期的商業(yè)工具來嘗試檢查。在這一點(diǎn)上,我建議他們開始對(duì)商業(yè)解決方案進(jìn)行更多分析。
在考慮開放源代碼工具時(shí),要考慮的一大問題是支持。那里有不同的開源框架和工具,僅僅因?yàn)樗鼈兪敲赓M(fèi)的,并不意味著它們是垃圾,但這也不意味著它們也很不錯(cuò)。例如,Selenium周圍存在一種污名,人們質(zhì)疑免費(fèi)工具是否有好處。現(xiàn)在有一個(gè)龐大的社區(qū)對(duì)此做出了貢獻(xiàn),盡管您可以繼續(xù)免費(fèi)下載它,但它是用于UI測(cè)試的第一大自動(dòng)化工具。
知道那里提供了哪些支持對(duì)于開源工具很重要。這也是區(qū)分優(yōu)秀開源項(xiàng)目的關(guān)鍵因素之一;社區(qū)的支持。您提出問題,人們會(huì)相對(duì)迅速地得到答案。Selenium有很多人專門在那里回答問題。這樣的社區(qū)支持,無論是付費(fèi)工具還是免費(fèi)工具,都非常重要。
開源工具的危險(xiǎn)在于可能會(huì)陷入錯(cuò)誤或使用問題,并且項(xiàng)目會(huì)被放棄,盡管這在商業(yè)工具中也可能發(fā)生。但是,如果我沒有將測(cè)試便攜式化,那就是我創(chuàng)建的問題。
當(dāng)您查看所有這些不同的工具和方法時(shí),都需要權(quán)衡取舍。對(duì)我而言,有了適當(dāng)水平的支持和支持,這總是會(huì)使開源社區(qū)更有價(jià)值。
Mark Lambert:如果擔(dān)心供應(yīng)商鎖定,您是否正在尋找可以輕松在不同框架之間移植測(cè)試的技術(shù)?換句話說,評(píng)估商業(yè)解決方案的一個(gè)關(guān)鍵方面是能否在工具之間切換并確保您不被其平臺(tái)鎖定?
Max Saperstone:是的,這確實(shí)。對(duì)于許多供應(yīng)商而言,互換性支持是一件好事,而對(duì)于某些工具,它確實(shí)運(yùn)作良好。但是,當(dāng)您最初進(jìn)行首次實(shí)驗(yàn)時(shí),您不一定要從商業(yè)工具開始。如果我不得不重寫六個(gè)不同的測(cè)試套件以僅嘗試六個(gè)不同的軟件,那將是一件痛苦的事情。
Mark Lambert:因此,首先開放源代碼,直到遇到障礙,然后尋找可以幫助您超越障礙的東西?
Max Saperstone:可能吧。有很多不同的解決方案,它們有免費(fèi)版本或“免費(fèi)增值”模型,您可以在上面付費(fèi)購(gòu)買其他功能。除此之外,還有付費(fèi)版本。我非常喜歡這些工具,因?yàn)橐坏┭芯克鼈儯揖鸵庾R(shí)到我可以做所有這些很棒的事情。對(duì)我來說,很多時(shí)候值得這樣做,因?yàn)槿绻摴ぞ呔哂兴姓_的功能,并且我可以事先進(jìn)行很多開發(fā),則在構(gòu)建期間只需要一兩個(gè)許可證即可運(yùn)行該工具。還算不錯(cuò)
同樣,這也取決于團(tuán)隊(duì)的技術(shù)水平。付費(fèi)產(chǎn)品的好處是,它們通常會(huì)為您準(zhǔn)備好支持。如果該小組在技術(shù)上不熟練使用測(cè)試工具,并且他們需要更多支持,則可以使用該工具。對(duì)于Parasoft的產(chǎn)品,支持是客戶要付費(fèi)的事情之一,這在戰(zhàn)略上很有意義。
Mark Lambert:針對(duì)您對(duì)非技術(shù)用戶的評(píng)論,例如,對(duì)Selenium編碼不滿意的人,無編碼測(cè)試工具是否可以解決?無代碼測(cè)試對(duì)您意味著什么?你怎么看?
Max Saperstone:大約五年來,我已經(jīng)看到無代碼測(cè)試自動(dòng)化工具。我回想起我最初意識(shí)到它們的時(shí)候,它們真的很光滑。我喜歡它們可以使很多事情變得相對(duì)簡(jiǎn)單,并且其中一些超越了無代碼方面。例如,有些工具使您可以在需要時(shí)開始學(xué)習(xí)并開始用Java或Python編寫東西。當(dāng)您的技術(shù)團(tuán)隊(duì)較少時(shí),具備無代碼測(cè)試能力和必要時(shí)添加代碼的能力就很重要。
在我看來,每種單一類型的工具都有其成本。您必須為具有編碼背景的人員支付更多的費(fèi)用,而為技術(shù)測(cè)試人員較少的人員支付更少的費(fèi)用。但是,這可能會(huì)被技術(shù)抵消并向供應(yīng)商支持付出更多。因此,我認(rèn)為無代碼測(cè)試確實(shí)為此提供了一個(gè)很好的解決方案。
我看到的最大挑戰(zhàn)是在這個(gè)領(lǐng)域中存在許多不同的參與者。我還沒有真正看到一個(gè)供應(yīng)商領(lǐng)先于其他供應(yīng)商。供應(yīng)商似乎仍然站不住腳。盡管這肯定意味著測(cè)試自動(dòng)化工具的市場(chǎng)正在增長(zhǎng),但是這些工具可能無法解決我們?cè)跍y(cè)試自動(dòng)化領(lǐng)域中存在的主要問題。
前面我提到過,我通常認(rèn)為有兩件事是問題:團(tuán)隊(duì)花太多時(shí)間來維護(hù)他們的測(cè)試,因?yàn)樗鼈兒艽嗳醪⑶液苋菀讚p壞。另一個(gè)是人們正在編寫糟糕的測(cè)試。通常,這些就是我認(rèn)為測(cè)試自動(dòng)化的主要痛點(diǎn)。我認(rèn)為無代碼自動(dòng)化實(shí)際上不能解決這些問題。它們確實(shí)使編寫測(cè)試變得容易得多,但是我認(rèn)為這不是最常見的問題。這些工具可能會(huì)更容易編寫相同的不良測(cè)試。
這些問題很多,自動(dòng)化缺乏成功,這可以歸結(jié)為缺乏測(cè)試策略。我認(rèn)為工具和自動(dòng)化還沒有真正爆發(fā),它們確實(shí)在解決問題,但是并沒有解決該領(lǐng)域最大的問題。
在下一篇文章中,我們與Max談?wù)勊跍y(cè)試和測(cè)試自動(dòng)化方面的失敗和成功經(jīng)驗(yàn)。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn