博為峰老師直接接聽

400-029-09** 400-029-0997 轉(zhuǎn) 28316
查看完整號(hào)碼
掃碼撥號(hào)
微信掃碼撥號(hào)

牢記這7點(diǎn),掌握寫好自動(dòng)化測(cè)試用例的法寶!

作者:博為峰 來(lái)源:博為峰 2023/4/23 9:39:47

之前我們介紹 了 寫好黑盒測(cè)試用例的一些相關(guān)因素 ---- ...

之前我們介紹 了 寫好黑盒測(cè)試用例的一些相關(guān)因素 ---- 為什么學(xué)完黑盒測(cè)試用例設(shè)計(jì)方法,還是寫不好用例? 相信大家應(yīng)該能從其中或多或少的感悟到各自對(duì)于黑盒測(cè)試的全新理解與思路拓展。 那么緊接著之前的內(nèi)容,我們就該詳細(xì)的聊一聊另一種形式的測(cè)試用例了,它在我們的自動(dòng)化測(cè)試活動(dòng)中也扮演著舉足輕重的角色。 因自動(dòng)化測(cè)試的種類比較繁多,故相關(guān)的自動(dòng)化測(cè)試用例的設(shè)計(jì)方法、呈現(xiàn)方式、執(zhí)行過(guò)程也是五花八門。那我們就在其中挑幾種比較主流的來(lái)進(jìn)行討論,其中也可能不免會(huì)有一些不同之處,大家可以按需斟酌閱讀。 自動(dòng)化的意義 那么開正式開始介紹之前,我們需要搞明白自動(dòng)化測(cè)試的必要性和存在意義。 其中*淺顯的一點(diǎn)就是可以提高我們的測(cè)試效率,因?yàn)槭菣C(jī)器來(lái)幫我們執(zhí)行測(cè)試活動(dòng),這個(gè)觀點(diǎn)當(dāng)然沒(méi)錯(cuò),但也還是有很多的公司仍然停留在這個(gè)認(rèn)知層面中,就如我之前闡述過(guò),很多公司或團(tuán)隊(duì)仍然會(huì)以KPI或晉升目標(biāo)作為動(dòng)機(jī)來(lái)開展自動(dòng)化測(cè)試和與之相關(guān)的建設(shè)活動(dòng),這個(gè)也就是我們?nèi)?nèi)說(shuō)的,“為了自動(dòng)化而自動(dòng)化”。 在這樣的大基調(diào)下,自動(dòng)化能帶給我們的益處與提升是什么,也就不得而知了,更多的則是人力與時(shí)間成本的大幅消耗與極為不成正比的投入產(chǎn)出比。 博主自己所理解的自動(dòng)化測(cè)試的存在意義就四個(gè)層面來(lái)說(shuō)分為:公司、產(chǎn)品、團(tuán)隊(duì)、個(gè)人。 0 1 公司 首先就公司而言,投入自動(dòng)化測(cè)試的本質(zhì)其實(shí)是要降本增效,這里大概會(huì)有人提出疑問(wèn),怎么會(huì)是降本呢?無(wú)論是招聘專業(yè)人員還是投入對(duì)應(yīng)硬件,怎么看都是增本呀。 其實(shí)這里有一個(gè)誤區(qū),就我們個(gè)人而言,看到的現(xiàn)象的確如此,但對(duì)于公司來(lái)說(shuō),只要是有明確的戰(zhàn)略目標(biāo)、長(zhǎng)足的遠(yuǎn)見(jiàn)規(guī)劃以及一定的投入,從長(zhǎng)遠(yuǎn)來(lái)看這其實(shí)是一筆穩(wěn)賺不虧的決定。 0 2 產(chǎn)品 這里就要結(jié)合我們的第二個(gè)層面的“產(chǎn)品”來(lái)說(shuō)一說(shuō)了。眾所周知,在互聯(lián)網(wǎng)行業(yè)中,無(wú)論是同行業(yè)亦或是跨行業(yè),軟件的激烈競(jìng)爭(zhēng)從來(lái)就未停歇過(guò),一款產(chǎn)品的及時(shí)面世與穩(wěn)定迭代更新,更是搶占有效市場(chǎng)的先決條件。 試想一下,一家僅靠純手工測(cè)試的產(chǎn)品,能做到上述的要求嗎?畢竟人為的工作還是具有一定的不確定性的,這個(gè)和執(zhí)行者的情緒、環(huán)境、主觀想法、惰性有著密不可分的關(guān)系,任何一個(gè)因素都有可能影響整個(gè)產(chǎn)品的質(zhì)量表現(xiàn)。 所以公司的前期投入是顯性投入,但后期的自動(dòng)化測(cè)試亦或是更近一層的CI/CD帶來(lái)的收益則都是隱性的,可能最后大家真正能見(jiàn)到的將會(huì)是產(chǎn)品銷量、收益的增長(zhǎng)。 當(dāng)然,不是投入了自動(dòng)化測(cè)試就一定會(huì)讓產(chǎn)品的質(zhì)量與銷量取得成功,其中的很多因素都必須明確并選擇正確。諸如投入后解決什么樣的問(wèn)題或矛盾、技術(shù)棧的選擇、框架的設(shè)計(jì)、日常維護(hù)、專人專崗、硬件支撐、投入產(chǎn)出比的審查、后期優(yōu)化等等等等。 0 3 團(tuán)隊(duì) 對(duì)于團(tuán)隊(duì)來(lái)說(shuō),擁有自動(dòng)化測(cè)試能力無(wú)疑會(huì)讓團(tuán)隊(duì)的外界評(píng)價(jià)更上一個(gè)層次,現(xiàn)在業(yè)界內(nèi)對(duì)于測(cè)試人員的要求越來(lái)越高,大家都有目共睹。 一個(gè)只有手工測(cè)試人員的團(tuán)隊(duì)與可長(zhǎng)期穩(wěn)定支撐開發(fā)人員且能自主執(zhí)行自動(dòng)化測(cè)試活動(dòng)的團(tuán)隊(duì),不用我說(shuō)也就高下立見(jiàn)了。 也正因如此,專業(yè)的團(tuán)隊(duì)可以在公司內(nèi)拿到更多更好的資源也就無(wú)可厚非,有了這些實(shí)質(zhì)性的支撐,相信團(tuán)隊(duì)的規(guī)模亦或是實(shí)力也將會(huì)是越來(lái)越強(qiáng)。 0 4 個(gè)人 那么在個(gè)人層面上,掌握了自動(dòng)化測(cè)試能力,無(wú)疑是增加了自己的一份核心競(jìng)爭(zhēng)力,增強(qiáng)競(jìng)爭(zhēng)力的根本出發(fā)點(diǎn),無(wú)非就是讓我們可以在測(cè)試的道路上走的更穩(wěn)更遠(yuǎn),升職加薪自不必多說(shuō)。再則加上如今AI、大數(shù)據(jù)依然成為了主流趨勢(shì),一個(gè)沒(méi)有編程能力并且沒(méi)有設(shè)計(jì)理念的測(cè)試,必然會(huì)被社會(huì)與時(shí)代淘汰。 寫好自動(dòng)化用例的因素 0 1 萬(wàn)物皆對(duì)象 學(xué)過(guò)java或python的同學(xué)應(yīng)該都知道這句話吧,沒(méi)錯(cuò),在我們?cè)O(shè)計(jì)自動(dòng)化測(cè)試用例的時(shí)候也需要這個(gè)理念。 畢竟和黑盒測(cè)試用例不同,自動(dòng)化測(cè)試用例不是給人類執(zhí)行的,我們需要使用對(duì)應(yīng)的開發(fā)語(yǔ)言來(lái)進(jìn)行用例的編寫。在編寫測(cè)試用例腳本的時(shí)候,時(shí)時(shí)刻刻需要把這個(gè)理念貫徹其中。 當(dāng)然,編寫用例的過(guò)程與其他開發(fā)人員的編碼工作沒(méi)有什么本質(zhì)上的區(qū)別,也別指望用例腳本可以一次性的編寫到位,腳本大多數(shù)都是需要一次又一次的優(yōu)化,起初寫的效率低一點(diǎn)也沒(méi)關(guān)系,我們先確保可以跑通,復(fù)用性和健壯性可以稍微差點(diǎn)。 但是跑通之后,我們就應(yīng)該著眼于性能方面,如果你用的python,跑幾條用例是完全沒(méi)有問(wèn)題的,因?yàn)閜ython是動(dòng)態(tài)語(yǔ)言,變量指向?qū)ο蟮臅r(shí)候編譯器無(wú)法做任何預(yù)測(cè),另外加上他本身是解釋執(zhí)行,所以是在跑大量測(cè)試用例的情況下,一定會(huì)出現(xiàn)運(yùn)行周期時(shí)間長(zhǎng)與意外報(bào)錯(cuò)的情況出現(xiàn),此時(shí)提高代碼的性能就成為了重中之重,算法時(shí)間復(fù)雜度的優(yōu)化、內(nèi)置方法的合理使用、避免全局變量、減少循環(huán)等等都可以為我們的代碼提供相應(yīng)的性能提升。 0 2 業(yè)務(wù)強(qiáng)關(guān)聯(lián) 與黑盒測(cè)試用例不同,自動(dòng)化測(cè)試用例內(nèi)的業(yè)務(wù)關(guān)聯(lián)性會(huì)很強(qiáng)。其實(shí)我們從其本質(zhì)形態(tài)來(lái)考慮的話也就能探究一二,它需要解決的本來(lái)就是一些功能穩(wěn)定、業(yè)務(wù)路徑明確的正向測(cè)試場(chǎng)景,測(cè)試用例腳本不可能只操作某個(gè)業(yè)務(wù)界面中的某一個(gè)功能,這樣就太浪費(fèi)了。 一般來(lái)說(shuō)測(cè)試腳本都需要覆蓋某一個(gè)正常業(yè)務(wù)的整條流程,這樣我們才可以在其運(yùn)行的過(guò)程中,加入自己所需的各類斷言,來(lái)驗(yàn)證多條用例中的測(cè)試預(yù)期結(jié)果。另外由于和黑盒測(cè)試用例的本質(zhì)不同,也就更好的印證了自動(dòng)化測(cè)試用例可以快速進(jìn)行業(yè)務(wù)驗(yàn)證與歸回、冒煙。 0 3 正向場(chǎng)景 對(duì)于自動(dòng)化測(cè)試來(lái)說(shuō),*恐怖的情形就是將所有的正向、逆向測(cè)試場(chǎng)景一股腦的塞進(jìn)自動(dòng)化測(cè)試框架。有些人會(huì)本能的認(rèn)為既然是自動(dòng)化執(zhí)行,為什么不可以執(zhí)行逆向測(cè)試用例呢?只要設(shè)計(jì)好合適的參數(shù)、編寫進(jìn)測(cè)試用例真的就萬(wàn)無(wú)一失了嗎? 其實(shí)逆向測(cè)試場(chǎng)景與測(cè)試用例被適合放入自動(dòng)化測(cè)試的原因就在于它本身的不確定性,這種不確定性會(huì)影響自動(dòng)化測(cè)試的最終運(yùn)行結(jié)果。 做過(guò)自動(dòng)化測(cè)試的同學(xué)都知道,對(duì)于執(zhí)行自動(dòng)化測(cè)試來(lái)說(shuō)真正可怕的不是逆向測(cè)試用例,而是那種不知道什么時(shí)候就會(huì)報(bào)錯(cuò)的測(cè)試場(chǎng)景和用例,而這種測(cè)試用例的所在場(chǎng)景,絕大多數(shù)會(huì)出現(xiàn)在逆向測(cè)試場(chǎng)景中。 我們要知道自動(dòng)化測(cè)試不是幫測(cè)試人員把什么事情都干了。所以針對(duì)功能穩(wěn)定、需求變動(dòng)不多的正向測(cè)試場(chǎng)景,我們可以放心的將自動(dòng)化測(cè)試投入其中,但逆向的測(cè)試場(chǎng)景就不建議如此操作了。 如果真的要放,也只建議放入比較不重要的功能模塊,一些業(yè)務(wù)復(fù)雜和重要的功能模塊的逆向場(chǎng)景還是需要經(jīng)驗(yàn)豐富的測(cè)試人員去進(jìn)行手工確認(rèn)來(lái)的更為的穩(wěn)妥。 一般來(lái)說(shuō)自動(dòng)化測(cè)試主要覆蓋產(chǎn)品的主體happy path即可,無(wú)需設(shè)計(jì)過(guò)多的逆向場(chǎng)景在其中,影響自動(dòng)化測(cè)試活動(dòng)的穩(wěn)定性。不要忘記了,自動(dòng)化測(cè)試的主要作用還是讓我們的測(cè)試人員從繁雜重復(fù)的測(cè)試工作中脫離出來(lái),把精力投入更重要、更復(fù)雜的模塊和業(yè)務(wù)測(cè)試中去。 0 4 多場(chǎng)景構(gòu)建 這里的多場(chǎng)景構(gòu)建理念是希望可以充分的利用自動(dòng)化測(cè)試的優(yōu)勢(shì),以更少的運(yùn)行次數(shù)來(lái)盡可能的覆蓋更多的測(cè)試場(chǎng)景。 舉個(gè)例子,一個(gè)自動(dòng)化測(cè)試腳本中存在多條測(cè)試用例,那么我們?cè)谠O(shè)計(jì)用例的過(guò)程中需要充分的利用腳本中的業(yè)務(wù)界面,來(lái)進(jìn)行多個(gè)場(chǎng)景的組合構(gòu)建。 諸如CRM,我們都會(huì)在客戶信息界面中驗(yàn)證客戶的各類信息、增刪改查操作,而這些操作如果可能盡量放在頁(yè)面的一次性操作中,除非和后面的業(yè)務(wù)有強(qiáng)關(guān)聯(lián)(后續(xù)操作的必要數(shù)據(jù)),否則基本都是按照這個(gè)原則。 這也就是上面說(shuō)的盡量在一遍中將可以驗(yàn)證的業(yè)務(wù)場(chǎng)景組合在一起,而非跑多輪同樣的業(yè)務(wù)線卻只是驗(yàn)證的測(cè)試點(diǎn)不同。 0 5 強(qiáng)針對(duì)性 一般來(lái)說(shuō),我們?cè)O(shè)計(jì)自動(dòng)化測(cè)試用例,來(lái)源的基礎(chǔ)都是我們之前設(shè)計(jì)的黑盒測(cè)試用例,普遍的做法是將P0與P1級(jí)別的正向測(cè)試用例加入到自動(dòng)化測(cè)試用例中。 這樣做是完全沒(méi)有問(wèn)題的,不過(guò)我們還需要注意的是,針對(duì)不同的測(cè)試類型,我們的自動(dòng)化測(cè)試用例不是一成不變的。例如自動(dòng)化測(cè)試中*常配到的冒煙和回歸測(cè)試,這兩類的自動(dòng)化測(cè)試用例就不應(yīng)該相同。 冒煙測(cè)試的測(cè)試用例應(yīng)該更傾向于快速的將主流程進(jìn)行驗(yàn)證,確保當(dāng)前版本的提測(cè)質(zhì)量值得開展接下去的測(cè)試活動(dòng),也更注重于老用例的套用。 回歸測(cè)試則是針對(duì)部分功能修復(fù)后對(duì)于整體功能與延展部分模塊的正常運(yùn)行是否會(huì)有影響,這塊需要在已修復(fù)的功能模塊和測(cè)試認(rèn)為有必要開展的相關(guān)模塊間開展自動(dòng)化測(cè)試,所以自動(dòng)化測(cè)試用例會(huì)有和冒煙部分重疊的情況出現(xiàn),同時(shí)也會(huì)新增用于確認(rèn)相關(guān)延展部分的功能正常運(yùn)行的用例。 0 6 獨(dú)立測(cè)試功能點(diǎn) 這個(gè)也很好理解,和黑盒測(cè)試用例沒(méi)有區(qū)別,雖然腳本里會(huì)設(shè)計(jì)某個(gè)頁(yè)面當(dāng)前整體的線性業(yè)務(wù)操作,但是我們?nèi)耘f要確保好每條自動(dòng)化測(cè)試用例中只驗(yàn)證一個(gè)功能點(diǎn),切不可圖方便把一條用例中放入多個(gè)功能點(diǎn)進(jìn)行確認(rèn)。 這時(shí)一定有人會(huì)問(wèn),我多放幾個(gè)斷言不就可以進(jìn)行多功能確認(rèn)了嗎?其實(shí)這個(gè)觀點(diǎn)是違背了測(cè)試用例設(shè)計(jì)的初衷的,多個(gè)斷言自然可以判斷多個(gè)功能點(diǎn),但大家試想一下,一條測(cè)試用例中有多個(gè)驗(yàn)證點(diǎn)是否會(huì)讓用例本身的步驟變多,且無(wú)法拆解,這個(gè)和寫黑盒測(cè)試用例不一樣的地方就在于你的代碼是無(wú)法獨(dú)立拆解出來(lái)的。 那么接下來(lái)的問(wèn)題就是同樣是測(cè)試用例,是一堆組合后的測(cè)試用例復(fù)用度高?還是獨(dú)立測(cè)試功能點(diǎn)的用例復(fù)用度高?大家都不用細(xì)想,答案就已經(jīng)很明顯了。就好比是樂(lè)高積木,如果需要你設(shè)計(jì)一座城堡,是一整塊不規(guī)則形狀的大積木好還是一小塊一小塊規(guī)整的小積木好? 0 7 完整設(shè)計(jì) 我們除了設(shè)計(jì)基本的測(cè)試用例之外,同樣也可以利用自動(dòng)化的優(yōu)勢(shì)來(lái)進(jìn)行一些額外的用例擴(kuò)展設(shè)計(jì)。 在日常工作中,我們的自動(dòng)化測(cè)試也不是只要設(shè)計(jì)相關(guān)的功能測(cè)試點(diǎn)即可的,這里還包括了相關(guān)的一些測(cè)試數(shù)據(jù)操作。那么測(cè)試數(shù)據(jù)的前后置操作也就理所當(dāng)然的變成了設(shè)計(jì)測(cè)試用例中必須的步驟之一了。 在黑盒測(cè)試中,我們的測(cè)試數(shù)據(jù)都會(huì)在我們執(zhí)行前定義或創(chuàng)建好,在執(zhí)行的過(guò)程中就會(huì)比較的順暢。而自動(dòng)化測(cè)試中,這個(gè)操作我們就無(wú)需再手動(dòng)提前進(jìn)行操作了,一般來(lái)說(shuō)我們會(huì)把需要生成的測(cè)試數(shù)據(jù)提前的放入某個(gè)獨(dú)立的測(cè)試用例內(nèi)進(jìn)行預(yù)先創(chuàng)建,這個(gè)稱為前置操作,其實(shí)也就是我們所說(shuō)的前提條件。 而同樣的,我們?cè)趫?zhí)行完某些操作或業(yè)務(wù)流之后,也可以將這些測(cè)試數(shù)據(jù)進(jìn)行回收、刪除,這被稱為后置操作。這樣我們就可以時(shí)刻保證我們的測(cè)試環(huán)境可以重復(fù)的進(jìn)行同樣的測(cè)試用例而不會(huì)擔(dān)心環(huán)境或數(shù)據(jù)等因素發(fā)生改變。 另外,因?yàn)槲覀兊臏y(cè)試過(guò)程是“過(guò)不留痕”,所以在重要的用例與斷言處可以使用截圖函數(shù)、打印日志等方式留下測(cè)試證據(jù),以便在出現(xiàn)Bug時(shí)方便排查與定位。 好了,以上就是關(guān)于自動(dòng)化測(cè)試用例的一些設(shè)計(jì)因素與心得,希望可以幫助到大家更好的總結(jié)出各自的心得體驗(yàn)。 鏈接: https://austin.blog.csdn.net/article/details/129028864 本文為經(jīng)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載文章所包含的文字來(lái)源于原作者。如因內(nèi)容或版權(quán)等問(wèn)題,請(qǐng)聯(lián)系刪除

點(diǎn)擊下方 “閱讀原文” ,了解 職業(yè)新風(fēng)向~

“杭州博為峰”是杭州博為峰軟件技術(shù)有限公司在教育寶平臺(tái)開設(shè)的店鋪,若該店鋪內(nèi)信息涉嫌虛假或違法,請(qǐng)點(diǎn)擊這里向教育寶反饋,我們將及時(shí)進(jìn)行處理。

機(jī)構(gòu)評(píng)分

環(huán)境:5.0師資:5.0服務(wù):5.0效果:5.0

公示信息

店鋪名稱:杭州博為峰

單位名稱:杭州博為峰軟件技術(shù)有限公司

賬號(hào)名稱:hzbwfjy(180******75)

所屬城市:浙江杭州

入駐時(shí)長(zhǎng):21年

在線客服:在線聊

微信咨詢

返回頂部