摘要:?本期作者簡介:高翔,天貓技術(shù)部測試開發(fā)專家。 很久沒寫文章了,之前測試十年,也是在自己有變化的時候 ,強(qiáng)迫自己寫了一篇文章,說了自己的困惑和痛苦和思考,也得到一些共鳴?,F(xiàn)在測試十二年了,相當(dāng)于一個輪回,也有一些新的痛苦和感悟,趁還在這個圈子里面,紀(jì)念一下,當(dāng)然了,YY比較多,干貨也不多,反正紀(jì)念下,或許我是真的不太可能寫測試15年的文章了。
本期作者簡介:高翔,天貓技術(shù)部測試開發(fā)專家。
很久沒寫文章了,之前測試十年,也是在自己有變化的時候 ,強(qiáng)迫自己寫了一篇文章,說了自己的困惑和痛苦和思考,也得到一些共鳴。現(xiàn)在測試十二年了,相當(dāng)于一個輪回,也有一些新的痛苦和感悟,趁還在這個圈子里面,紀(jì)念一下,當(dāng)然了,YY比較多,干貨也不多,反正紀(jì)念下,或許我是真的不太可能寫測試15年的文章了。大家有任何問題,歡迎討論,歡迎吐槽。
其實(shí)寫這篇文章之前,我一直是猶豫的,感覺寫不出啥花樣來,一是因?yàn)樗接邢蓿硗饩褪且驗(yàn)闇y試這個圈子里面說不出啥新花樣出來,還是老生常談的那些,而且不同水平的讀者想看的內(nèi)容也不一樣,很難寫的深入人心,反正真的差點(diǎn)放棄了;但是我內(nèi)心是渴望的,想說些那些不一樣的,了解我的人都知道,我是不甘平庸的,是有自己的思考和底線的,很多時候可能被現(xiàn)實(shí)打敗,但是我還會站起來,繼續(xù)戰(zhàn)斗。
12年 / 這兩年我干了啥
我是一個很懷舊的人,簡單說說這2年干啥了,這兩年做天貓新零售的業(yè)務(wù),這是一個新業(yè)務(wù),大家應(yīng)該理解新業(yè)務(wù)的背后的意義吧,我這里就不贅述了,團(tuán)隊(duì)成員都非常給力,拿到了不錯的結(jié)果;其實(shí)大家都知道,測試在一個業(yè)務(wù)的發(fā)展過程中,自己能起到了哪些作用,不管這個業(yè)務(wù)是發(fā)展了多長時間,我們都是會經(jīng)過三步走,很多時候我們就是在平衡這三步的比例和深度。
【質(zhì)量】
測試人員核心的產(chǎn)出,發(fā)現(xiàn)bug,提升產(chǎn)品質(zhì)量和用戶體驗(yàn),盡量少的把bug遺漏到線上去,讓用戶或者監(jiān)控發(fā)現(xiàn);是的,這兩年來,對于一個新業(yè)務(wù)來說,我們在這么多、這么變、這么復(fù)雜的需求和迭代項(xiàng)目中,我們拼勁了全力,新業(yè)務(wù)的質(zhì)量有了穩(wěn)步的提升,線下bug的數(shù)量、線上bug的數(shù)量和趨勢、系統(tǒng)的穩(wěn)定性等各個角度來看結(jié)果,都說明了我們真的不錯,是的,這是我們的基本工作,也就那樣吧。
【效率】
對于一個新業(yè)務(wù),對測試效率的要求也是更加考驗(yàn),新零售是鏈接線上和線下、商家和消費(fèi)者之間的橋梁,我們在測試效率上也是面對很大的考驗(yàn);是的,這兩年來,對于一個新業(yè)務(wù)來說,我們在這么多、這么變、這么復(fù)雜的需求和迭代項(xiàng)目中,我們繼續(xù)拼勁了全力,新業(yè)務(wù)的研發(fā)效率有了穩(wěn)步的提升,開發(fā)自測質(zhì)量提升、初級bug、ISV對接效率、全網(wǎng)回歸效率、10+測試數(shù)據(jù)工具等各個角度來看結(jié)果,都說明了我們真的不錯,是的,這好像也是我們的基本工作,有了一些進(jìn)步,還不錯的,不過也就那樣吧。
【技術(shù)驅(qū)動業(yè)務(wù)】
你是開玩笑吧,是的,我沒有開玩笑,對于測試來說,驅(qū)動業(yè)務(wù)簡直是難如登天,開發(fā)是天生的,測試是后天養(yǎng)的;天貓智慧門店在線下業(yè)務(wù)的拓展過程中,我們對每一個商家、每一個線下門店都會有質(zhì)量的責(zé)任,我們經(jīng)歷過雙11,經(jīng)歷了痛點(diǎn)。是的,這兩年來,對于一個新業(yè)務(wù)來說,我們在這么多、這么變、這么復(fù)雜的需求和迭代項(xiàng)目中,我們再次拼勁了全力,我們在商家業(yè)務(wù)配置檢查、商家ISV驗(yàn)收、線下門店預(yù)演等一系列的結(jié)果上來驅(qū)動天貓新零售商家和門店的規(guī)?;l(fā)展,我覺得我們是技術(shù)驅(qū)動業(yè)務(wù)了,為業(yè)務(wù)高速發(fā)展提供了保護(hù)傘,都說明了我們真的不錯,是的,這好像也可能是我們的基本工作,有了更多進(jìn)步,還不錯的,不過好像技術(shù)含量比較低,擴(kuò)展性一般,其實(shí)也就那樣吧。
好吧,剛剛都是自夸,看不下去了吧;其實(shí)我想說的是,這兩年,我們做的還不錯,各個層面都有結(jié)果,特別是第三個層面的,有的時候是可遇不可求的,總體上團(tuán)隊(duì)能力和技術(shù)都有提升,但是在某些結(jié)果上的確不讓人滿意,我們的一些測試大佬們既要、也要、還要、反正什么都要,你要是哪個沒有,不好意思,只能這樣了。說實(shí)話,我有時候也能理解他們,真的理解。
12年 / 國內(nèi)測試都在關(guān)注啥?
這個話題有點(diǎn)大,其實(shí)真的不敢寫,但是無知者無畏,雖然在阿里干測試9年多了,自我感覺蠻了解的,比起”阿里測試都在關(guān)注什么”,我覺得我更敢寫這個,其實(shí)也有點(diǎn)心虛的。這些年,我一直專注在我們自己的業(yè)務(wù)和系統(tǒng)、測試問題,這些細(xì)節(jié)非常多,我們的目標(biāo)和規(guī)劃都圍繞這個來,非常接地氣;是的,說這個就說明我對國內(nèi)測試在發(fā)生什么,在追求什么,其實(shí)對細(xì)節(jié)了解不多,但是在微博、在大會的主題、在相關(guān)的ppt和群討論中,還是能感知到一些的,接下來就說說,很多理解不一定對和全面的,歡迎大家補(bǔ)充討論。
在正式的說之前,大家回想我之前說的一句話,我們干測試的,很多時候就是在平衡這三步的比例和深度,在質(zhì)量、效率、驅(qū)動業(yè)務(wù)上不斷的調(diào)整策略和戰(zhàn)術(shù),根據(jù)不同的業(yè)務(wù)階段、根據(jù)不同的目標(biāo)、根據(jù)當(dāng)前的大事件驅(qū)動等。
我們最怕干的是就是平衡,因?yàn)槠胶獾暮茫巴竟饷?,平衡的不好,萬丈深淵。大家都知道我們干測試的,雜活特別多,很多事情都需要投入一點(diǎn),很多事情做起來很多人看來也沒有亮點(diǎn),那我們很多時候就是在不斷的平衡一些事情,但是不管怎么樣,我們的目標(biāo)還是比較聚焦的,就是對應(yīng)自己的業(yè)務(wù)和開發(fā)技術(shù),以及未來的業(yè)務(wù)發(fā)展,在質(zhì)量和效率上如何做的更好,成本上越來越低,解決方案也越來越有技術(shù)含量。
大家都知道,不同行業(yè)對應(yīng)測試的要求是不一樣的,那么測試技術(shù)和要解決的問題也是不一樣的,但是有幾個套路其實(shí)是差不多的,大體上分這幾個方向。
基于模型的測試:這塊領(lǐng)域很多人不太熟悉,而且在不同的行業(yè)的實(shí)踐和效果是差異比較大的,但是不能否定這個方向帶來的價值,在通訊、IOT、嵌入式等領(lǐng)域都有非常多的實(shí)踐,效果也不錯,我認(rèn)為是測試前移比較重要的一塊;但是很多人對于這塊只是基本的了解,很多時候都有可能直接放棄;最后的結(jié)果,可能是我們的開發(fā)同學(xué)先開始業(yè)務(wù)建模,先開始各種模型抽象,提升開發(fā)效率,然后再到測試的模型和效率提升,很顯然,我們是被動的,而且很多時候我們錯過了一些風(fēng)景,可能感知不到呢。
可測試性:這塊話題,其實(shí)是大家聊的比較少的,因?yàn)楹芏喾矫媸瞧碚摰?,真正落到?shí)踐到項(xiàng)目過程中,和業(yè)務(wù)項(xiàng)目的技術(shù)架構(gòu)、技術(shù)能力、技術(shù)人員思維都有比較大的關(guān)系;而這塊對于大公司是比較看重的,特別是微軟、google級別的重視技術(shù)體現(xiàn)的公司,我們作為測試開發(fā)工程師的重點(diǎn)是從開發(fā)角度去做測試工作,會把主要精力投入在系統(tǒng)設(shè)計(jì)和編碼階段。開發(fā)人員關(guān)注某個功能最優(yōu)實(shí)現(xiàn)方案,而我們測試要有整體產(chǎn)品的視野。所以測試在設(shè)計(jì)階段,幫助開發(fā)人員完成代碼復(fù)用和模塊交互方面的設(shè)計(jì),在設(shè)計(jì)review的時候,保持目的性:完整性、正確性、一致性、設(shè)計(jì)、接口與協(xié)議、測試(可測試性)。還有一個明顯的,就是做這塊,需要沉下心來,慢慢積累和思考,對于很多急功近利的公司來看,績效和沉淀方面難說了,而且這塊的確是我們測試的短板,接下來我覺得還是有可能會重新重視起來。
自動化測試:這個是很明顯的提升測試效率的手段,這里面不同的行業(yè)的自動化測試策略和框架也可能不一樣,但是的確是互聯(lián)網(wǎng)企業(yè)發(fā)揚(yáng)光大的,包括分層自動化測試實(shí)踐,其效果也是非常顯著的,不管是什么行業(yè)領(lǐng)域,都是逃不掉的;不管你是采用流量錄制和回放、頁面錄制和回放、關(guān)鍵字驅(qū)動、數(shù)據(jù)驅(qū)動的自動化腳本運(yùn)行,這些經(jīng)驗(yàn)和沉淀目前也是國內(nèi)的公司強(qiáng)烈關(guān)注的,為什么非要關(guān)注這塊,說實(shí)話,這些能帶來XX平臺的沉淀,XX平臺的開發(fā)和技術(shù)品牌、XX平臺的能力透出;如果我們加上功能依賴分析、系統(tǒng)依賴分析、代碼覆蓋率等各個因素的影響,我們可以加上精準(zhǔn)測試的方向,進(jìn)一步提升自動化測試效率,這塊上國內(nèi)有一些公司都在沉淀和探索,也有一些不錯的結(jié)果。
灰度&監(jiān)控:這塊話題,是測試右移的核心思路,基本上也是互聯(lián)網(wǎng)和移動互聯(lián)網(wǎng)企業(yè)的測試策略的標(biāo)配,測試和開發(fā)一起共建,來加強(qiáng)灰度的落地,監(jiān)控覆蓋率和提升;但是測試在其中的體現(xiàn)到底多少,價值多少,這個就很難說了,我們的沉淀的方向到底是什么呢?我們開發(fā)有沒有加上這塊的監(jiān)控、開發(fā)為什么沒有加上這塊的監(jiān)控、我們測試是不是要監(jiān)控開發(fā)是否加上了某塊的監(jiān)控、我們測試是不是要來Review開發(fā)是否加了某些監(jiān)控、監(jiān)控的方法和策略的沉淀開發(fā)和測試的關(guān)系在哪里。這也是測試自己沒辦法的策略,很多時候我們不怕出現(xiàn)線上bug,我們就怕不能快速fix bug;我們就怕我們的系統(tǒng)監(jiān)控沒有發(fā)現(xiàn)這樣的線上bug,反而讓客戶主動報了相關(guān)線上bug;但是這個策略是不是唯一的,依賴它的程度到底是多少,我們測試線下需要做到什么樣的程度,又是一個平衡的問題了,這塊上,我們可以再思考多一點(diǎn),想想測試在這里面的定位是什么,是和開發(fā)綁在一起,分享系統(tǒng)穩(wěn)定性的結(jié)果,還是思考它對于測試體系的位置到底什么樣的。
大數(shù)據(jù)測試:有兩種情況,一種是大數(shù)據(jù)產(chǎn)品的本身的測試體系的建設(shè),包括常態(tài)化的測試策略和大數(shù)據(jù)的數(shù)據(jù)監(jiān)控策略,這里面的監(jiān)控可能是測試工程師的重點(diǎn)產(chǎn)出;另外一個情況是利用大數(shù)據(jù)的手段來提升測試效率,來監(jiān)控線上質(zhì)量,反過來驅(qū)動線下測試覆蓋率和效率。第一個應(yīng)該有比較成熟的體系了;第二個也是在探索階段,對于產(chǎn)品特點(diǎn)、體系架構(gòu)有一定關(guān)聯(lián),同時配合多個手段來提升,如果加上某些機(jī)器學(xué)習(xí)、和算法、精準(zhǔn)測試策略、可能會包裝成AI智能化測試,解決大數(shù)據(jù)量情況下的功能測試問題。但是這方面可能不僅僅是測試這個領(lǐng)域,包括運(yùn)維和體系化架構(gòu)設(shè)計(jì)等一個閉環(huán)的打造,測試其中啟到什么關(guān)鍵的作用,還是值得期待的。
探索式測試:4-5年前比較火,目前基本上是冷卻了一大半了,現(xiàn)在是邰曉梅老師一個人獨(dú)立堅(jiān)守著,在國內(nèi)各個公司和線下活動不斷的布道和實(shí)踐,目前來看,國內(nèi)的很多公司都有了解和參與,在測試的本身價值上,測試本身的能力建設(shè)上還是有很多的進(jìn)步的,這些對于持續(xù)在測試能力上有特定思考(包括和敏捷測試的結(jié)合)的同學(xué),他們的體感會非常強(qiáng),但是對于一些開發(fā)技術(shù)為核心套路的可能覺得偏理論,不夠技術(shù)含量,很難繼續(xù)深挖,很難形成平臺化效應(yīng),是的,我本人也是最近幾年都沒有在這方面進(jìn)行學(xué)習(xí)和探索,很是愧疚和遺憾,但這就是現(xiàn)實(shí)。
總體上來看,國內(nèi)測試技術(shù)和方向也是解決部分的問題,還有些可能是大趨勢中找到自己的位置,到底有幾分是自己獨(dú)立思考的,有幾分是在真正的研究和探索的,目前看到的不多,很多都是在圍城里面走套路,大家一起走,反正現(xiàn)實(shí)有很多的問題需要解決。另外就是很多行業(yè)領(lǐng)域里面的測試技術(shù)探索,比如游戲測試領(lǐng)域、IOT領(lǐng)域、AI領(lǐng)域、區(qū)塊鏈領(lǐng)域、三方生態(tài)領(lǐng)域等。
12年 / 國外測試在走什么方向?
好了,我們的所有測試技術(shù)和方向的探索,國外基本上前幾年都已經(jīng)開搞了,有些領(lǐng)域可能領(lǐng)先十幾年,有些大家都在同步探索階段。我們需要更大視野去看國外測試技術(shù)和體系的發(fā)展,不僅僅是某個框架或工具的角度去看,甚至不是某個行業(yè)的測試解決方案來看。我們知道某一個技術(shù)的開始和發(fā)展,不僅僅是和企業(yè)的工程領(lǐng)域有關(guān)系,很多時候和學(xué)術(shù)領(lǐng)域有關(guān);國外測試領(lǐng)域里面包括很多學(xué)派,它們分別代表了不同的測試領(lǐng)域的思考和沉淀,不僅僅是不同的測試類型,還包括很多測試?yán)碚撋系乃伎?,包括自動化測試學(xué)派、質(zhì)量保障和規(guī)范學(xué)派、上下文驅(qū)動學(xué)派、開發(fā)測試學(xué)派等,每個學(xué)派都有自己主張的觀點(diǎn)、方法、實(shí)踐方案、工具體系等,而且每年都是有序的討論和發(fā)展(有那種百家爭鳴的感覺,在工程和學(xué)術(shù)領(lǐng)域同步開花結(jié)果);在這里,我們在看看一個很明顯的區(qū)別點(diǎn),國外的測試大會上和國內(nèi)的測試大會上的topci就可以看到一些區(qū)別了。
這里面有一些共性的topic包括敏捷測試、Test in ops、性能測試、監(jiān)控、安全測試、自動化測試、國際化本地化測試;但是國外的很多topic是強(qiáng)調(diào)測試本身的思考的,包括測試信息輸入論、探索式測試、基于風(fēng)險的測試、測試管理、測試策略和計(jì)劃、某領(lǐng)域的測試設(shè)計(jì)方法。這里,很多人其實(shí)都看到了不同點(diǎn),國內(nèi)這方面的沉淀相對來說少很多,很多人都不感興趣的,覺得都是理論的多,對我的技術(shù)沒有幫助。
另外一個層面來看國外測試就是測試大師們,國內(nèi)從事一線測試工作的工程師基本上10年以下的,10年以上的基本上都是管理的、或者走其他路線了;持續(xù)在某個領(lǐng)域進(jìn)行測試技術(shù)體現(xiàn)的研究在國內(nèi)很難找到,但是也是有的(陳能技、朱老師、領(lǐng)測賀老師、CSATQB周老師、阿爾卡特鄭老師、顧問邰老師等等,這些老師很有可能和其他些人觀點(diǎn)非常沖突,互相不被認(rèn)可),整體上來看還是缺少很多的,大部分人對于測試生涯、測試價值、測試發(fā)展、測試方向都有一種悲觀的預(yù)感。反看國外測試工作10-20幾年的測試大師們非常多,他們在測試本身價值上進(jìn)行了非常多的思考和沉淀,一點(diǎn)點(diǎn)形成自己的思考和理論,一點(diǎn)點(diǎn)去實(shí)踐自己想要的測試方式和思路,感興趣的同學(xué)可以去多看看國外的測試論壇,你肯定會看到不一樣的測試?yán)斫獾?,好了,我也好久沒看了,趕緊補(bǔ)課去(對績效啥好處都沒有,我真的要看?)。
12年 / 測試生涯還剩多少?
我們先討論一個熱門詞語“測試開發(fā)工程師”,大家可以思考下為什么不叫"開發(fā)測試工程師"呢?大家都知道的是未來開發(fā)測試是融為一體的,很多一些外企也做到了,開發(fā)測試的融合,互相backup,互相對產(chǎn)品質(zhì)量和穩(wěn)定性負(fù)責(zé),其樂融融的感覺。說實(shí)話,最近幾年我對外企里面測試的理解不多,這里不敢多說,怕說錯了;但是國內(nèi)的測試?yán)锩妫蠹移鋵?shí)都能感覺到,那就是我們更多的在關(guān)注我們是不是會寫自動化測試腳本,會寫java代碼,懂很多開發(fā)技術(shù),做過很多平臺或工具等。這里面的技能重要不重要,當(dāng)然重要了,但是不是我們考察一個測試開發(fā)工程師唯一的思考點(diǎn)呢;我們的批判性思維、我們的打破砂鍋問到底的精神、我們的錯誤猜測的思路、我們的細(xì)心專一的用心、我們的異常邏輯判斷的方法、我們的流程優(yōu)化的意識等等,這些我們到底有多關(guān)心呢,不好意思,不怎么關(guān)心,因?yàn)楦闪诉@么久,干了這么多,看不到產(chǎn)出、說不清投入、顯不出能力。
我們再分析下,我們測試開發(fā)工程師要干的事情到底哪些呢,之前就是說過了,保障產(chǎn)品質(zhì)量和提升研發(fā)效率,這兩塊我們的投入的比重呢,這兩塊我們看結(jié)果的思路呢,這兩塊我們要沉淀的方向和方法的抽象呢?這些說實(shí)話,大家看到的都很少,我自己也是一樣。說直白了,未來測試工程師會越來越少,質(zhì)量很多時候都是開發(fā)去負(fù)責(zé)、或者其他灰度監(jiān)控手段去避免,那意味著我們在質(zhì)量上的投入會越來越少,在效率上投入會越來越多,其中的道理大家都應(yīng)該理解的吧。
當(dāng)我們第一眼要追求的是效率問題時,我們更多的關(guān)心開發(fā)技術(shù)的提升,以及開發(fā)技術(shù)在解決效率問題時的應(yīng)用,因?yàn)檫@些價值是顯而易見的,是被高度認(rèn)可的(對于無線適配測試平臺,阿里每個大BU都有,起碼6-7個平臺,但是80%的功能是一樣的);我們打著效率提升的口號,似乎也能解決質(zhì)量的問題,但是捫心自問,真的能解決嗎?大家知道自己產(chǎn)品的用戶是怎么用我們的產(chǎn)品的嗎,我們的用戶遇到了哪些問題嗎,每天都暴了哪些線上bug給你嗎,其實(shí)很多時候,我們都是不敢正視這些問題的,因?yàn)槲覀儠粡氐状驍。珌G人了啦。好了,我知道了,測試不可能測試全面的,那樣成本也是非常高的,我們還是快速發(fā)布第一位的。因?yàn)槲覀儾荒苷嬲娜ッ鎸@些線上bug,所以大家有真正的去思考線上bug遺漏的真正原因嗎,有多少是從測試設(shè)計(jì)角度去思考的,更多是從監(jiān)控、fix效率等角度來加強(qiáng)和避免。
當(dāng)我們?nèi)ゼ訌?qiáng)測試工具的開發(fā)、測試平臺的建設(shè)、監(jiān)控平臺的建設(shè)時,我們測試開發(fā)工程師還剩下什么?我們只能做這些事情嗎?難道就因?yàn)檫@些能拿到好的績效、能體現(xiàn)你的技術(shù)能力、能快速晉升?好了,不能說太多了,這里有可能會帶來吐槽。其實(shí)我不反對這些事情的價值所在,我只是想想我們在干這些事情的時候,有沒有去思考測試本身的核心定位,測試本身的經(jīng)驗(yàn)教訓(xùn)到底是什么?
12年 / 六道輪回后的初心是什么?
你猜對了,前面一大堆都是廢話,現(xiàn)在才到正題,測試的目的和初心到底是什么,我們?yōu)槭裁匆蛇@件事情,是用戶需要我們干,是系統(tǒng)需要我們干,那我們干到什么程度呢,我們到底是做測試,還是做校驗(yàn),還是做驗(yàn)證,還是做探索;每個人心中都有自己的理解,可能不一樣,沒關(guān)系,有一點(diǎn)你肯定無法否認(rèn),不管你是誰,你肯定是某個產(chǎn)品的用戶,你都肯定遇到這些產(chǎn)品的bug,你都可能是傻笑、生氣、發(fā)飆、投訴、卸載、放棄等,然后沒有了,沒有了。
前面也是談了非常多了,關(guān)于測試核心工作產(chǎn)出上,有不得不必須要干的、有可干可不干的、有非常想去干的、有老大們逼著去干的、有大家都在干的我也想干的;在這里,我想談?wù)勎覀€人認(rèn)為的我們可能忽略的一些問題,大家聽到測試技術(shù)或測試方法時,第一能想到的是什么呢?如果說到測試設(shè)計(jì)方法時,你第一能想到的又是什么呢?如果說到測試架構(gòu)師,你第一能想到的又是什么呢?如果說到項(xiàng)目測試負(fù)責(zé)人,你第一能想到的又是什么呢?
建議大家先看看《google測試分享-SET和TE》我們是測試開發(fā)工程師的title,但是我們干的什么活呢,基本上把SET的工作和TE的工作合二為一,放在一個人的身上,大家其實(shí)也看到了SET和TE的技術(shù)和要求是不一樣的,我們測試團(tuán)隊(duì)的測試開發(fā)工程師都能很好的具備SET和TE的能力嗎,我們真正的測試工作的初心到底是什么呢?我們的測試開發(fā)工程師都能在產(chǎn)品的測試過程中發(fā)揮這么多的作用嗎?在技術(shù)日新月異的時代里面,開發(fā)都在全棧了,測試也是該全棧了,不僅僅測試類型上,在不同的領(lǐng)域測試上也有這樣的要求,但是這里面有一個基本的基石,那就是如何更好的去測試,去想到測試什么地方,去抓到那些隱藏的bug,去識別到那些隱藏的風(fēng)險。
好了,言歸正傳,通用的基石有那么幾塊,最核心的當(dāng)然是使用什么方法去測試了,知道測試哪里了,所以測試設(shè)計(jì)是一切測試活動和技術(shù)的基礎(chǔ)及前提; 同時,我們需要考慮需求文檔不足下的測試設(shè)計(jì)怎么做? 我們還需要思考測試模型該怎么建立,而且測試模型分為測試方法模型和業(yè)務(wù)測試模型,所有設(shè)計(jì)都是基于模型的,我們也知道好的測試設(shè)計(jì)能提高測試執(zhí)行效率,但是我們?nèi)绾斡幸粋€好的測試設(shè)計(jì)呢。我們先從大家最熟悉的黑盒測試方法來說,大家都熟悉的等價類劃分、邊界值分析等測試方法,很多人都說一個正常的工程師 都能在一個下午學(xué)會和理解大部分的黑盒測試方法。 對此觀點(diǎn),我是不敢茍同的,這就討論到這些黑盒測試方法的深度的問題了(這個話題之前就是打架無數(shù)了,好像最后我們沒輸,但是也沒贏)。
(1)學(xué)會和理解測試方法的使用步驟是很簡單的,但是真正的在項(xiàng)目需求中應(yīng)用起來可不是一朝一夕的。這就好比給你一張撲克一樣,高手就能拿它殺人,一般的人能做到什么程度呢。 這個也很像有些人能發(fā)現(xiàn)你不能發(fā)現(xiàn)的bug一樣。至于原因有很多,具體看在淘兩年的blog。
(2)談?wù)勎易约旱母邢氚?,我自己在工作前兩年也是認(rèn)為這個黑盒測試方法一下午就可以學(xué)會的,找?guī)讉€例子試著使用下,感覺自己掌握到這些黑盒測試方法,但是后來我看過很多這些測試方法的背景以及應(yīng)用的注意點(diǎn)后。我發(fā)現(xiàn)自己真的是了解了一些皮毛,沒有深入的了解。對于個項(xiàng)目需求,如何快速且完整的應(yīng)用這些黑盒測試方法設(shè)計(jì)出不多不少的測試用例,這個需要的經(jīng)驗(yàn)的積累,也就是你測試價值的核心體現(xiàn)。
(3)多次和其他公司的測試同學(xué)交流,發(fā)現(xiàn)很多同學(xué)說自己都說自己是工作2-3年的人,已經(jīng)遇到瓶頸了,感覺測試很單調(diào)和無味。我給的建議其實(shí)很簡單,那就是真正的理解和掌握所有的黑盒測試方法。怎么來驗(yàn)證呢,我自己就是這樣:給你一個白板,你能把所有測試方法的5W2H(What、Why、When、Where、Who、How、How Much)都能非常清晰明了的演講出來,記住是不需要參考ppt或其他資料的情況下。
就像火影里面的鳴人一樣,他只會螺旋丸這個核心的攻擊忍術(shù),但是在擴(kuò)展其他忍術(shù)之前,他會把這個忍術(shù)的深度發(fā)揮到機(jī)制,從而研究出威力更強(qiáng)的超大螺旋丸、超大玉螺旋丸、風(fēng)遁螺旋丸等等。
大家再想想,這些黑盒測試方法都是20年前國外的測試大師們發(fā)明的了,然而20年后的今天我們在學(xué)習(xí)測試方法的理論時還是這些,這是為什么呢?這里面有幾方面的原因,一方面我們的測試同學(xué)很多是非科班畢業(yè)的,本身技術(shù)能力和邏輯能力相對來說薄弱,這樣在測試生涯過程中更加無法變幻出更多的測試方法,另一方面,我們在各個行業(yè)領(lǐng)域內(nèi)更多的關(guān)注效率問題,更多的關(guān)注如何快速的測試,而不是如何更正確的測試,所以我們都很難沉下心來來思考改領(lǐng)域內(nèi)的一些通用的測試方法,從而能分享和傳承給所有測試同仁;說我們不愿意去做,或者說我們沒有意識去做,可能是樂觀了,其實(shí)這個非常有難度,這個方法的抽象和建模非常的難(之前做過一些測試模型的抽象,感興趣的可以了解下),不是在某個領(lǐng)域扎根多年的測試大師們無法做到的,前提還是這個大師在這塊上有更多的思考和沉淀和總結(jié)。
這里強(qiáng)調(diào)我可沒說初心就是黑盒測試,個人看法,初心是從本質(zhì)上去想和思考怎么去測試,什么方法和策略,測試哪里,說到黑盒測試方法只是其中舉了一個例子而已,想想你如何回答你是通過什么方法來測試”它“的,你不可能說我用自動化測試來測試它,我開發(fā)了一個平臺來測試它,需要你想想你的回答有沒有傳承性。這里是有一套方法的思路的;至于技術(shù)本來就是解決問題的思路;怎么去做的方法,這個可能比較虛,就像道一樣,這些思維方式的思考,我們平時做的太少了,而是更多的去做開發(fā)自動化測試框架,不是說不好,去想想為什么,是體現(xiàn)你的技術(shù),還是覺得這個是潮流,大家都干,還是覺得這個是某一個價值的;等等。而這些是不是符合最初你的本心。
12年 / 我們還能找回初心嗎?
好了,前面說了蠻多了,大家在現(xiàn)實(shí)面前還是需要現(xiàn)實(shí)一點(diǎn),隨著開發(fā)測試比例的提升,測試人員會更加專注在效率上,而不是質(zhì)量上,我們都有一個美好的愿望,就是我們先把問題解決了,先把效率提升了,我們就有時間好好研究如何正確的測試SUT了,如何創(chuàng)新出新的測試方法了。理想很豐滿,現(xiàn)實(shí)很骨感,就像需求列表里面一樣,都是P0的需求,我們都在想P0需求做完了,下一期我們做P1P2的需求,然后你會發(fā)現(xiàn)P0的需求永遠(yuǎn)做不完,同理,我們的效率和問題解決也是做不完的,那我們的重心和目標(biāo)規(guī)劃還是在這上面,這有錯嗎?沒有錯,對SUT來說、對質(zhì)量和效率來說、對業(yè)務(wù)發(fā)展來說、都沒錯。
當(dāng)然很多人會說我測試效率提升了,質(zhì)量也會同步的提升,這個仔細(xì)想想還真不一定哦;前面其實(shí)也提到了,我們在平衡質(zhì)量和效率上的投入,到底平衡到什么程度,我們自己也不知道,很多時候?yàn)榱斯?、為了自己、為了未來、為了測試行業(yè)本身,我們做的選擇可能有所不同,最關(guān)鍵是你做出了什么選擇,你是如何平衡這些的,在這個平衡中,你學(xué)到了什么,你知道了測試這個產(chǎn)品有什么樣的坑,你的測試經(jīng)驗(yàn)教訓(xùn)到底有幾條,哪些是對他人是有價值的,你有沒有總結(jié)和抽象出。
回答問題,在這個現(xiàn)實(shí)世界里面,我們工作10幾年的測試工程師們,我們還能找回初心嗎,還能靜下心來思考我們真的是正確的做測試嗎?真的只有這樣的一條路嗎?我們還能有其他的路嗎,對于絕大部分測試同仁來說,我們都無法找回初心,我們只能在這現(xiàn)實(shí)世界里面隨波逐流,當(dāng)然,很有可能包括我自己。
12年 / 忘記我所寫的
感謝你能看到這里,看到了那么多的廢話,那么從現(xiàn)在開始,忘記我所寫的,繼續(xù)寫代碼,繼續(xù)開發(fā)測試平臺,繼續(xù)解決問題,你會成長的很快很多的。以上所有的觀點(diǎn)都只是我的個人看法,很多地方說的容易被人挑戰(zhàn),被人罵SB,是的,但是又有什么關(guān)系呢。
我思故我在,在此紀(jì)念測試十二年的酸甜苦辣。
下一個輪回,又是12年,很漫長,如果我不干測試了,我也會關(guān)注你們的。青山不改,綠水長流。
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
電子發(fā)燒友App






























評論