測(cè)試能力分層的組織架構(gòu)下锅论,一提到效率提升,可能大多數(shù)人楣号,首先想到的是測(cè)試開發(fā)團(tuán)隊(duì)最易,亦或是成敗在于此。假如我們也是這樣想炫狱,我想我們可以嘗試換一個(gè)角度藻懒,也許會(huì)有更多的收獲。
兩個(gè)必要問題
解決效率問題视译,其本身包含兩個(gè)必要問題嬉荆,二者缺一不可:
1. “適不適合”做
2. “能不能夠”做
“適不適合做” 衡量的是意義價(jià)值,即必要性酷含,引入自動(dòng)化測(cè)試是為了能夠切實(shí)解決某些問題鄙早,而不是單純?yōu)榱俗詣?dòng)化而做自動(dòng)化。
“能不能夠做”衡量的是能力水平椅亚,即可行性限番,重點(diǎn)關(guān)注的是具體開展過程中的自動(dòng)化設(shè)計(jì)、開發(fā)呀舔、維護(hù)弥虐、使用等問題,如何通過更優(yōu)雅的方式降低開發(fā)媚赖、維護(hù)成本霜瘪,比如數(shù)據(jù)驅(qū)動(dòng)等等。
結(jié)合以往經(jīng)驗(yàn)省古,在只解決上述問題中的其一或者二者不解決的情況下粥庄,可能會(huì)出現(xiàn)以下情況:
只解決“適不適合做”的問題,可能會(huì)導(dǎo)致:
沒有掌握完整的自動(dòng)化測(cè)試技術(shù)棧豺妓,開發(fā)成本高惜互。
沒有選擇合適的框架或解決方案布讹,無法從整體上降低用例的編寫、維護(hù)成本训堆,在持續(xù)投入下描验,投入產(chǎn)出比大概率為負(fù)。
只解決“能不能夠做”的問題坑鱼,可能會(huì)導(dǎo)致:
傳統(tǒng)瀑布開發(fā)模式下膘流,迭代周期長(zhǎng),次數(shù)少鲁沥。幾個(gè)版本下來呼股,等同測(cè)試覆蓋下,自動(dòng)化測(cè)試投入可能大于手動(dòng)測(cè)試投入画恰。
頻繁的需求變更彭谁,自動(dòng)化用例維護(hù)成本高,自動(dòng)化測(cè)試逐漸廢棄允扇。
“適不適合做”缠局、“能不能夠做”的問題都不解決,可能會(huì)導(dǎo)致:
如果是這樣考润,那這只能是 “鬧著玩”狭园,也許曇花一現(xiàn)、也許半途而廢糊治。
因此唱矛,在我們的自動(dòng)化開展過程中,引入了自動(dòng)化需求澄清環(huán)節(jié)俊戳,主要研判的就是上述兩個(gè)問題揖赴。這個(gè)過程,業(yè)務(wù)方作為需求提出方主要研判“適不適合做“的問題抑胎,測(cè)開方作為需求承接方主要研判“能不能夠做的問題”燥滑,根據(jù)以往經(jīng)驗(yàn),前者問題難度更高更復(fù)雜阿逃。
因此铭拧,我們不難發(fā)現(xiàn),要做到有效的提升恃锉、這兩個(gè)問題是繞不過去搀菩。在解決這兩個(gè)問題的前提下,我們才能夠正確地明確其目標(biāo)破托,才有了目標(biāo)才能正確制定其具體實(shí)施方案肪跋。
為何而做(目標(biāo)度量)
接下來,聊一聊目標(biāo)土砂,自動(dòng)化測(cè)試度量指標(biāo)州既,我們近幾年嘗試過很多種維度去度量谜洽,例如,從自動(dòng)化用例數(shù)量吴叶、到覆蓋率阐虚、再到ROI、效率提升率蚌卤,我們發(fā)現(xiàn)這些度量維度不難計(jì)算实束,通過自動(dòng)或手動(dòng)統(tǒng)計(jì)的方式都可以統(tǒng)計(jì)計(jì)算出結(jié)果,但度量數(shù)據(jù)反映的情況與實(shí)際情況存在較大的差異性(效率逊彭、質(zhì)量)咸灿,例如 度量數(shù)據(jù)呈現(xiàn)出的效率提升率在變高,但實(shí)際業(yè)務(wù)測(cè)試周期似乎沒有變化侮叮,等等析显。
那么這個(gè)問題出在哪里?—— 當(dāng)我們與真相一步步靠近時(shí)签赃,這其中每一步都是有意義的。
問題也許出在 “目標(biāo)” 本身分尸,目標(biāo)即導(dǎo)向锦聊。那么效率提升的本質(zhì)是不是“用例數(shù)量多“、”覆蓋率多”箩绍、”ROI高”孔庭? 好像也并不是,差一點(diǎn)意思材蛛。我認(rèn)為本質(zhì)應(yīng)該是簡(jiǎn)單的圆到、直接的 :
在定時(shí)任務(wù)的背景下,快 → 時(shí)間縮短
在定量任務(wù)的背景下卑吭,快 → 人數(shù)減少
我們可以嘗試以效率提升最本質(zhì)的目標(biāo)作為驅(qū)動(dòng)芽淡,也許將更有效、更直接豆赏。
在具體指標(biāo)設(shè)定時(shí)挣菲,除了“定性”、不可避免的還要“定量”掷邦,“定量”一方面是為了度量其絕對(duì)值白胀,另一方面是與其“定性”相互佐證。
定性: 時(shí)間縮短 → 例如抚岗,平均項(xiàng)目測(cè)試周期縮短 X % 或杠。
定量: 累計(jì)節(jié)省人力投入(或累計(jì)節(jié)省額外人力投入) → 例如,累計(jì)節(jié)省額外人力投入X 人月宣蔚。
如何去做
這是萬(wàn)事俱備向抢,只欠東風(fēng)的一步认境,當(dāng)然這也是最重要的一步。有一些項(xiàng)目可能會(huì)有疑問笋额,上述的問題元暴,我們都一定程度解決掉了,但自動(dòng)化測(cè)試仍然沒有達(dá)到預(yù)期的效果兄猩。
大概可能是以下原因?qū)е拢?/p>
缺乏整體測(cè)試用例執(zhí)行設(shè)計(jì)茉盏,用例覆蓋目的性弱,具有隨機(jī)性枢冤、隨意性鸠姨,低覆蓋,無法真正的縮短執(zhí)行效率淹真。
只做到了自動(dòng)執(zhí)行讶迁,但沒有做到自動(dòng)驗(yàn)證,無法真正的在保證質(zhì)量的提前下核蘸,提高執(zhí)行效率巍糯。
“自動(dòng)化孤島”,缺乏持續(xù)性客扎、未引入到流程當(dāng)中祟峦。
“缺乏整體測(cè)試用例執(zhí)行設(shè)計(jì)”的問題 解決思路
我們?cè)谑謩?dòng)執(zhí)行測(cè)試用例時(shí),為了縮短執(zhí)行時(shí)間徙鱼,避免某些操作的重復(fù)執(zhí)行宅楞,通常,我們會(huì)先設(shè)計(jì)執(zhí)行場(chǎng)景袱吆,一個(gè)場(chǎng)景下厌衙,盡可能根據(jù)執(zhí)行順序,覆蓋更多的測(cè)試用例绞绒。
比如婶希,結(jié)合上述業(yè)務(wù)流程Demo,我們需要自動(dòng)化測(cè)試覆蓋所有功能服務(wù)接口,我們的會(huì)怎樣設(shè)計(jì)測(cè)試用例蓬衡?從單接口的角度還是場(chǎng)景的角度饲趋?
對(duì)于這種包含業(yè)務(wù)流程或是用戶使用場(chǎng)景的功能測(cè)試分析,建議從場(chǎng)景的角度去覆蓋撤蟆,通過場(chǎng)景的流程分解奕塑,逐步拆分,然后對(duì)拆分后的流程環(huán)節(jié)進(jìn)行測(cè)試分析家肯,提取測(cè)試點(diǎn)龄砰。
最后,根據(jù)流程串聯(lián)各個(gè)環(huán)節(jié)的測(cè)試點(diǎn),最大程度地復(fù)用流程换棚,降低測(cè)試覆蓋過程的重復(fù)性操作式镐,以覆蓋一個(gè)場(chǎng)景為最小有效單位。例如固蚤,1-2-4-5-7, 1-3-6-7 娘汞。
假如,我們?cè)谧詣?dòng)化覆蓋的時(shí)候夕玩,不按照?qǐng)鼍暗姆绞侥阆遥瑔蝹€(gè)接口逐一覆蓋,此時(shí)若“關(guān)注商品”暫時(shí)沒有進(jìn)行覆蓋燎孟,還是采用手動(dòng)執(zhí)行的方式驗(yàn)證該功能禽作,單從自動(dòng)化覆蓋率、用例數(shù)量等指標(biāo)看揩页,與場(chǎng)景的方式無異旷偿。但在實(shí)際手動(dòng)執(zhí)行時(shí),會(huì)發(fā)現(xiàn)在有意或無意地在操作自動(dòng)化已經(jīng)覆蓋的“查詢商品”等功能爆侣,那么從提效的角度來看萍程,手動(dòng)執(zhí)行自動(dòng)化已經(jīng)覆蓋的測(cè)試點(diǎn),相當(dāng)于自動(dòng)化的提效作用被抵消兔仰。
因此尘喝,無論我們?cè)诿盁煖y(cè)試、回歸測(cè)試的用例設(shè)計(jì)中斋陪,盡可能保障覆蓋功能點(diǎn)在操作上的閉環(huán),以覆蓋一個(gè)場(chǎng)景為最小有效單位置吓,這個(gè)場(chǎng)景的定義就是連續(xù)性操作的閉環(huán)无虚,可能是N個(gè)功能、也可能是一個(gè)功能衍锚。
只做到了自動(dòng)執(zhí)行友题,但沒有做到自動(dòng)驗(yàn)證
翻閱平臺(tái)的自動(dòng)化用例,不乏只有驗(yàn)證響應(yīng)狀態(tài)的用例出現(xiàn)戴质,也許是在手動(dòng)測(cè)試的時(shí)候度宦,只是關(guān)注了下狀態(tài),剩余的一掃而過告匠。
一條嚴(yán)謹(jǐn)有效的測(cè)試用例戈抄,需要對(duì)響應(yīng)內(nèi)容全面覆蓋,考慮到響應(yīng)內(nèi)容可能存在一些非冪等性的屬性后专,比如當(dāng)前時(shí)間划鸽,目前提供的關(guān)鍵字中,也靈活的支持過濾掉哪些屬性不校驗(yàn)的功能。
避免在提升效率的過程中裸诽,忽略了質(zhì)量的基本要求嫂用。這也是今年自動(dòng)化平臺(tái)需要延展的功能—— 測(cè)試用例設(shè)計(jì)風(fēng)險(xiǎn)預(yù)警。
“自動(dòng)化孤島”丈冬,缺乏持續(xù)性嘱函、未引入到流程當(dāng)中。
這個(gè)大家應(yīng)該都明白埂蕊,那就是引入到持續(xù)集成中往弓,是最直接、有效的解決方法粒梦。
同時(shí)亮航,在流程中的提測(cè)環(huán)節(jié)、在系統(tǒng)集成前匀们,做好自動(dòng)化測(cè)試通過率缴淋、代碼覆蓋率的卡點(diǎn)。
最后
自動(dòng)化測(cè)試泄朴,起初的定義是用于回歸測(cè)試等操作具備重復(fù)性重抖,且對(duì)象具備穩(wěn)定的場(chǎng)景中,主要考慮到功能的穩(wěn)定性和投入成本的問題祖灰,前期項(xiàng)目功能變更的風(fēng)險(xiǎn)較高钟沛、同時(shí)周期往往緊張,自動(dòng)化覆蓋存在一定的開發(fā)局扶、維護(hù)成本恨统。
這其中的主要矛盾是“成本問題”,試想自動(dòng)化覆蓋成本在不斷降低時(shí)三妈,矛盾在逐漸弱化畜埋,那么這個(gè)局限性就會(huì)被打破。自動(dòng)化測(cè)試同樣可以用于首輪測(cè)試畴蒲、甚至是在與研發(fā)功能設(shè)計(jì)有良好的契約下悠鞍,在提測(cè)前也可以完成。
上述模燥,我們?cè)谔接懽詣?dòng)化測(cè)試如何做到有效的效率提升咖祭,除此之外,還可以去嘗試結(jié)合代碼覆蓋率蔫骂,不斷提高自動(dòng)化覆蓋率么翰;結(jié)合代碼改動(dòng)范圍,精準(zhǔn)運(yùn)行對(duì)應(yīng)測(cè)試用例辽旋,從機(jī)器逐漸演變成智能...
看了這篇內(nèi)容后硬鞍,堅(jiān)信以下兩件事,也會(huì)對(duì)你的自我提升有一定的幫助:
1、點(diǎn)贊固该,讓更多人能看到锅减,同時(shí)你的認(rèn)可也會(huì)鼓勵(lì)我創(chuàng)作更多優(yōu)質(zhì)內(nèi)容。
2伐坏、要讓自己變得更強(qiáng):想想怔匣,假如你是要在測(cè)試這個(gè)行業(yè)長(zhǎng)期做下去,你的工作經(jīng)驗(yàn)和測(cè)試技術(shù)是絕對(duì)不夠的桦沉,你需要提升每瞒,你需要豐富你的技術(shù)棧!還等什么纯露!
最后:【可能給你帶來幫助的教程】
這一些資料剿骨,對(duì)做【軟件測(cè)試】的朋友而言應(yīng)該是較為完整了,這類學(xué)習(xí)資料也陪伴我走過了最艱難的路程埠褪,希望也可以幫助到你浓利!萬(wàn)事要盡早,尤其是技術(shù)行業(yè)钞速,一定要提升技術(shù)功底贷掖。