今天不聊技術(shù),不講框架,不談自動(dòng)化,就想跟大家掏心窩子聊聊——那些年,你們對(duì)“軟件測(cè)試”的誤解,到底有多離譜!
每次參加同學(xué)聚會(huì)、親戚飯局、甚至相親現(xiàn)場(chǎng),只要我說(shuō)“我是做軟件測(cè)試的”,對(duì)方90%會(huì)露出一種“哦~懂了”的表情,然后說(shuō):
“哦,就是點(diǎn)點(diǎn)鼠標(biāo)、看看有沒(méi)有bug唄?”
“你們是不是不用寫代碼?挺輕松的吧?”
“測(cè)試?那不就是產(chǎn)品上線前最后把關(guān)的?沒(méi)啥技術(shù)含量。”
“你們測(cè)試是不是經(jīng)常跟開(kāi)發(fā)吵架?哈哈,背鍋俠嘛~”
……每次聽(tīng)到這些,我表面微笑,內(nèi)心已經(jīng)在瘋狂罵N:你們對(duì)測(cè)試的誤解,比測(cè)試環(huán)境里的bug還多!
![]()
今天,我決定把測(cè)試生涯里踩過(guò)的坑、背過(guò)的鍋、救過(guò)的火,一次性寫成一篇 2000 多字的“拍大腿級(jí)”澄清文。看完如果你大腿沒(méi)拍腫,算我輸。
![]()
誤解一:“測(cè)試=點(diǎn)點(diǎn)點(diǎn)”
“點(diǎn)點(diǎn)點(diǎn)”這三個(gè)字,簡(jiǎn)直是測(cè)試工程師職業(yè)生涯最大的羞辱。
是,我們確實(shí)要點(diǎn)鼠標(biāo)、點(diǎn)按鈕、輸數(shù)據(jù)、看結(jié)果。但你以為這是在玩“找不同”?錯(cuò)!這是在玩“找炸彈”!
一個(gè)按鈕背后可能是幾個(gè)接口、上百行邏輯、上百種數(shù)據(jù)組合。我們要模擬用戶在各種網(wǎng)絡(luò)環(huán)境、設(shè)備型號(hào)、操作系統(tǒng)、并發(fā)壓力、異常中斷下的行為——你以為點(diǎn)一下“提交訂單”,我們就真只點(diǎn)一下?
我們點(diǎn)的是:
● 正常路徑:輸入正確數(shù)據(jù) → 提交 → 成功
● 異常路徑:輸入超長(zhǎng)字符、特殊符號(hào)、空值、負(fù)數(shù)、非法格式 → 提交 → 看系統(tǒng)會(huì)不會(huì)崩
● 邊界路徑:輸入最大值+1、最小值-1、剛好臨界值 → 看系統(tǒng)會(huì)不會(huì)算錯(cuò)
● 并發(fā)路徑:1000個(gè)人同時(shí)點(diǎn) → 看服務(wù)器會(huì)不會(huì)跪
● 中斷路徑:提交到一半斷網(wǎng)、關(guān)機(jī)、殺進(jìn)程 → 看數(shù)據(jù)會(huì)不會(huì)丟、狀態(tài)會(huì)不會(huì)亂
這哪是點(diǎn)點(diǎn)點(diǎn)?這是邏輯爆炸現(xiàn)場(chǎng)排雷!
更別說(shuō)現(xiàn)在主流的自動(dòng)化測(cè)試、性能測(cè)試、安全測(cè)試、兼容性測(cè)試……哪一個(gè)不是技術(shù)活?哪一個(gè)不需要寫腳本、搭環(huán)境、調(diào)參數(shù)、分析日志?
真相是:軟件測(cè)試是一個(gè)需要深度技術(shù)知識(shí)和系統(tǒng)思維的專業(yè)領(lǐng)域。
優(yōu)秀的測(cè)試工程師需要:
1、理解系統(tǒng)架構(gòu)和設(shè)計(jì)模式,能夠預(yù)測(cè)故障點(diǎn)
2、掌握多種測(cè)試方法論(等價(jià)類劃分、邊界值分析、狀態(tài)轉(zhuǎn)換等)
3、編寫高質(zhì)量的測(cè)試代碼和自動(dòng)化腳本
4、使用各種專業(yè)工具(Selenium、Appium、Jmeter等)
5、分析日志和調(diào)試問(wèn)題,定位缺陷根源
舉個(gè)例子,當(dāng)我們測(cè)試一個(gè)電商網(wǎng)站的下單功能時(shí),外行可能只是簡(jiǎn)單地走一遍正常流程。而專業(yè)測(cè)試工程師會(huì)考慮:高并發(fā)下的庫(kù)存超賣問(wèn)題、支付中斷后的訂單狀態(tài)一致性、網(wǎng)絡(luò)抖動(dòng)時(shí)的數(shù)據(jù)同步機(jī)制、惡意用戶的價(jià)格篡改嘗試等等。我們不是在“點(diǎn)按鈕”,而是在構(gòu)建一個(gè)完整的質(zhì)量保障體系。
誤解二:“測(cè)試是開(kāi)發(fā)的對(duì)立面”
很多人覺(jué)得測(cè)試和開(kāi)發(fā)是天敵:開(kāi)發(fā)寫代碼,測(cè)試找茬;開(kāi)發(fā)想快點(diǎn)上線,測(cè)試拼命卡著不讓上。
大錯(cuò)特錯(cuò)!我們不是“找茬”,是“預(yù)防茬”!
●需求評(píng)審階段,我們提前介入,幫產(chǎn)品發(fā)現(xiàn)邏輯漏洞;
●技術(shù)方案階段,我們參與設(shè)計(jì),提醒潛在風(fēng)險(xiǎn)點(diǎn);
● 開(kāi)發(fā)過(guò)程中,我們寫測(cè)試用例,做持續(xù)集成,幫開(kāi)發(fā)快速驗(yàn)證;
● 上線前,我們做全鏈路回歸測(cè)試、故障演練,確保萬(wàn)無(wú)一失;
● 上線后,我們監(jiān)控告警、分析日志、復(fù)盤事故,推動(dòng)系統(tǒng)健壯性提升。
我們和開(kāi)發(fā)的目標(biāo)是一致的:交付高質(zhì)量、穩(wěn)定、用戶滿意的系統(tǒng)。
那些天天跟開(kāi)發(fā)吵架的測(cè)試,要么是溝通方式有問(wèn)題,要么是公司流程有病。成熟的團(tuán)隊(duì)里,測(cè)試和開(kāi)發(fā)是“背靠背作戰(zhàn)”的戰(zhàn)友。
我們對(duì)開(kāi)發(fā)要求嚴(yán)格,是因?yàn)樵诤醍a(chǎn)品;我們卡上線,是因?yàn)榫次酚脩簟?/p>
真相是:
真正的測(cè)試工程師,是開(kāi)發(fā)的最佳拍檔,是產(chǎn)品的質(zhì)量守護(hù)者,是用戶的代言人,是產(chǎn)品質(zhì)量這條船上劃槳的兩個(gè)人。
如果兩人朝相反方向用力,船只會(huì)原地打轉(zhuǎn)甚至翻覆。只有目標(biāo)一致、節(jié)奏協(xié)同、相互信任,才能讓產(chǎn)品這艘船又快又穩(wěn)地駛向成功的彼岸。將測(cè)試視為開(kāi)發(fā)過(guò)程中的一個(gè)必不可少的、提供關(guān)鍵價(jià)值的協(xié)作環(huán)節(jié),而非最后的“關(guān)卡”或“警察”。開(kāi)發(fā)和測(cè)試如何構(gòu)建健康的合作關(guān)系很重要。
如何構(gòu)建這種健康的合作關(guān)系?
1、改變心態(tài)與文化:團(tuán)隊(duì)從上到下都需要認(rèn)同 “質(zhì)量是構(gòu)建出來(lái)的,而不是測(cè)試出來(lái)的” 。Bug不是測(cè)試人員“發(fā)現(xiàn)”的,而是開(kāi)發(fā)過(guò)程中“引入”的。修復(fù)Bug是共同解決問(wèn)題,而不是追究責(zé)任。
2、加強(qiáng)溝通:測(cè)試人員提交Bug時(shí),應(yīng)描述清晰、步驟明確、附上日志和截圖,語(yǔ)氣客觀中立。開(kāi)發(fā)人員應(yīng)積極溝通,共同復(fù)現(xiàn)和定位問(wèn)題。
3、技能互補(bǔ):鼓勵(lì)測(cè)試人員學(xué)習(xí)開(kāi)發(fā)知識(shí)(能讀代碼、寫自動(dòng)化腳本),開(kāi)發(fā)人員了解測(cè)試?yán)砟睿軐懜哔|(zhì)量的單元測(cè)試)。彼此理解對(duì)方的工作,能減少很多隔閡。
4、建立共同的質(zhì)量指標(biāo):不要用Bug數(shù)量考核測(cè)試,也不要用代碼行數(shù)考核開(kāi)發(fā)。改用諸如“線上故障率”、“需求交付周期”、“自動(dòng)化測(cè)試覆蓋率”等共同承擔(dān)的目標(biāo)。
誤解三:“自動(dòng)化測(cè)試將取代手動(dòng)測(cè)試”
說(shuō)一個(gè)形象的比喻吧:有了計(jì)算器(自動(dòng)化測(cè)試),我們不再需要用手工去進(jìn)行復(fù)雜繁瑣的四則運(yùn)算(重復(fù)手動(dòng)測(cè)試),但我們需要更強(qiáng)大的數(shù)學(xué)思維(測(cè)試策略與設(shè)計(jì))去解決更高級(jí)的微積分和數(shù)學(xué)模型(復(fù)雜業(yè)務(wù)邏輯與用戶體驗(yàn)問(wèn)題)。計(jì)算器沒(méi)有取代數(shù)學(xué)家,它只是改變了數(shù)學(xué)家的工作方式,讓他們能專注于更高價(jià)值的工作。
為什么自動(dòng)化測(cè)試無(wú)法完全取代手動(dòng)測(cè)試?因?yàn)閮烧哂薪厝徊煌摹o(wú)法相互替代的核心價(jià)值:
![]()
關(guān)鍵區(qū)別在于:自動(dòng)化測(cè)試是做你“告訴”它做的事,而手動(dòng)測(cè)試是探索你“沒(méi)想到”的事。主要體現(xiàn)在以下幾個(gè)點(diǎn):
1、用戶體驗(yàn)和可用性:自動(dòng)化可以檢查一個(gè)按鈕能不能點(diǎn),但無(wú)法判斷這個(gè)按鈕的位置是否反人類、顏色是否難看、文案是否讓人困惑。這需要人類的直覺(jué)和共情能力。
2、探索性測(cè)試:這是最需要人類智慧和創(chuàng)造力的領(lǐng)域。測(cè)試人員像偵探一樣,根據(jù)軟件的行為、自己的經(jīng)驗(yàn)和直覺(jué),不斷調(diào)整測(cè)試策略和思路,從而發(fā)現(xiàn)那些隱藏在深處、邏輯復(fù)雜的缺陷。這是事先編寫腳本的自動(dòng)化無(wú)法做到的。
3、快速反饋和Ad-hoc測(cè)試:在開(kāi)發(fā)早期或快速迭代階段,花大量時(shí)間編寫自動(dòng)化腳本可能不劃算。手動(dòng)測(cè)試可以快速驗(yàn)證功能,提供即時(shí)反饋。
4、維護(hù)成本:UI和需求一旦變化,自動(dòng)化測(cè)試腳本,特別是UI層的腳本,需要大量維護(hù)工作來(lái)適應(yīng)新的界面和流程。僵化的自動(dòng)化腳本甚至?xí)蔀殚_(kāi)發(fā)的阻礙。
其實(shí)自動(dòng)化測(cè)試可以和手工測(cè)試互補(bǔ)共生,未來(lái)的趨勢(shì)也不是“取代”,而是“融合”與“重新分工”。測(cè)試工程師的角色正在從純粹的手動(dòng)執(zhí)行者,轉(zhuǎn)變?yōu)闇y(cè)試策略的設(shè)計(jì)者、自動(dòng)化框架的構(gòu)建者和復(fù)雜問(wèn)題的探索者。比如你可以:
1、讓機(jī)器做機(jī)器擅長(zhǎng)的事:將所有重復(fù)、枯燥、量大、機(jī)械的測(cè)試任務(wù)(如每次發(fā)版前的回歸測(cè)試套件)交給自動(dòng)化。這解放了人力。
2、讓人做人擅長(zhǎng)的事:將被解放出來(lái)的測(cè)試工程師,投入到更有價(jià)值的活動(dòng)中,比如:
● 設(shè)計(jì)更強(qiáng)大的自動(dòng)化測(cè)試框架和策略。
● 進(jìn)行深入的探索性測(cè)試和邊界測(cè)試。
● 更早地介入需求分析,從測(cè)試角度評(píng)估風(fēng)險(xiǎn)和質(zhì)量。
● 專注于提升用戶體驗(yàn)和非功能需求(如性能、安全)。
![]()
誤解四:“軟件測(cè)試是最low的崗位”
將軟件測(cè)試稱為“最low的崗位”,就像說(shuō)“防守球員是足球場(chǎng)上最low的角色”一樣荒謬。沒(méi)有堅(jiān)固的防守,再華麗的進(jìn)攻也無(wú)法贏得比賽。
那這種錯(cuò)誤觀念從何而來(lái)?
1、歷史遺留印象:在軟件行業(yè)早期,測(cè)試有時(shí)由新手、實(shí)習(xí)生或非技術(shù)背景人員擔(dān)任,工作內(nèi)容被簡(jiǎn)單理解為“點(diǎn)點(diǎn)點(diǎn)”,給人技術(shù)含量不高的印象。
2、入門門檻的誤解:測(cè)試崗位的入門門檻相對(duì)開(kāi)發(fā)可能稍低(但絕非沒(méi)有),這讓一些人產(chǎn)生了“做不了開(kāi)發(fā)才去做測(cè)試”的錯(cuò)誤認(rèn)知。入門門檻不等于崗位天花板。
3、可見(jiàn)性差異:開(kāi)發(fā)是“創(chuàng)造者”,成果顯而易見(jiàn)(新功能、新頁(yè)面)。測(cè)試是“保障者”和“風(fēng)險(xiǎn)揭示者”,他們的最大成功是什么都沒(méi)發(fā)生(線上無(wú)故障),這種價(jià)值往往是無(wú)形的,容易被忽視。
4、糟糕的團(tuán)隊(duì)文化:在一些不成熟的團(tuán)隊(duì)中,質(zhì)量責(zé)任被錯(cuò)誤地全部歸咎于測(cè)試人員,開(kāi)發(fā)人員只負(fù)責(zé)寫代碼。測(cè)試人員發(fā)現(xiàn)Bug反而會(huì)被抱怨“耽誤進(jìn)度”,導(dǎo)致地位低下。
打一個(gè)比方:測(cè)試工程師是“醫(yī)生的角色”,如果把軟件開(kāi)發(fā)團(tuán)隊(duì)比作一個(gè)“人體”:開(kāi)發(fā)人員是器官締造者:他們負(fù)責(zé)造出心臟、肝臟、胃。產(chǎn)品經(jīng)理是大腦:負(fù)責(zé)發(fā)出指令和構(gòu)想。測(cè)試工程師就是醫(yī)生和體檢中心。他們要用各種儀器(工具)做常規(guī)體檢(回歸測(cè)試)。
他們要根據(jù)癥狀(Bug現(xiàn)象)進(jìn)行診斷,定位是哪個(gè)器官的問(wèn)題(定位Bug)。他們要能預(yù)判健康風(fēng)險(xiǎn)(風(fēng)險(xiǎn)評(píng)估)。他們要在手術(shù)(發(fā)布)前進(jìn)行全面的術(shù)前檢查,確保生命安全。
最高明的醫(yī)生(資深測(cè)試專家)能發(fā)現(xiàn)極其隱蔽的早期癌變(深層邏輯錯(cuò)誤),挽救患者的生命(項(xiàng)目成功)。
況且,測(cè)試人員具備一種開(kāi)發(fā)人員常常缺乏的“用戶視角”。開(kāi)發(fā)者思考的是“如何構(gòu)建”,測(cè)試者思考的是“如何破壞”——這種思維差異不是技術(shù)高低的問(wèn)題,而是視角和職責(zé)的不同。
誤解五:“代碼能力強(qiáng)的測(cè)試一定最厲害”
在技術(shù)論壇上,我們常常能看到這樣的言論:“測(cè)試想拿高薪?去卷自動(dòng)化/測(cè)開(kāi)唄!”“不會(huì)寫代碼的測(cè)試遲早被淘汰。”“手工會(huì)點(diǎn)鼠標(biāo)的測(cè)試不值錢。”
這種論調(diào),表面上是推崇技術(shù),實(shí)則陷入了一種極其片面且危險(xiǎn)的“技術(shù)唯上論”。它構(gòu)建起一個(gè)巨大的認(rèn)知陷阱:代碼能力等于測(cè)試能力的全部。
打一個(gè)比方:測(cè)試工程師就像偵探。
代碼能力是偵探配備的高級(jí)裝備——指紋采集儀、DNA分析儀、超清監(jiān)控調(diào)閱權(quán)限。裝備當(dāng)然越精良越好,能幫你更快地鎖定證據(jù)、分析線索。
測(cè)試思維是偵探的推理能力、洞察力和辦案經(jīng)驗(yàn)——如何從蛛絲馬跡中發(fā)現(xiàn)矛盾,如何構(gòu)建假設(shè)并驗(yàn)證,如何理解犯罪動(dòng)機(jī),如何預(yù)判嫌疑人的下一步行動(dòng)。
一個(gè)只迷信裝備而毫無(wú)推理能力的偵探,給你再好的設(shè)備,他也可能找不到關(guān)鍵證據(jù),甚至被假線索帶偏。而一個(gè)擁有頂級(jí)推理能力的偵探,即使裝備簡(jiǎn)陋,也能通過(guò)問(wèn)話、觀察和邏輯分析破解迷案。
回到測(cè)試工作,加入我們的測(cè)試對(duì)象是一個(gè)支付系統(tǒng):
● 只有代碼能力的測(cè)試:可能會(huì)為公司搭建起一套華麗的UI自動(dòng)化框架,每天能執(zhí)行上千個(gè)支付流程用例,但所有用例都是“支付成功”的正常流。他無(wú)法想到要去測(cè)試“金額篡改”、“重復(fù)提交”、“退款金額大于支付金額”等異常場(chǎng)景,因?yàn)檫@個(gè)漏洞需要的是對(duì)業(yè)務(wù)邏輯、安全邊界的“思維”,而不是“執(zhí)行效率”。
● 擁有測(cè)試思維的測(cè)試:即使他一開(kāi)始不會(huì)寫自動(dòng)化腳本,但他能基于對(duì)業(yè)務(wù)和風(fēng)險(xiǎn)的理解,設(shè)計(jì)出極其刁鉆的惡意測(cè)試用例。他可能會(huì)手動(dòng)測(cè)試發(fā)現(xiàn)這個(gè)致命漏洞,然后,他可以選擇學(xué)習(xí)代碼,將這類用例自動(dòng)化固化下來(lái),或者推動(dòng)開(kāi)發(fā)在代碼層面增加校驗(yàn)。他驅(qū)動(dòng)代碼去服務(wù)他的思維。
![]()
你想想,論代碼能力,大多數(shù)開(kāi)發(fā)都是比測(cè)試厲害的,那為什么測(cè)試能發(fā)現(xiàn)開(kāi)發(fā)自己發(fā)現(xiàn)不了的問(wèn)題呢?況且在我以以往的測(cè)試經(jīng)歷中,遇到不少代碼能力很強(qiáng)但測(cè)試經(jīng)常有遺漏導(dǎo)致事故上生產(chǎn)的情況。
他們要么就是把大多數(shù)精力都投入到研究新技術(shù)而忽略了測(cè)試思維本身,導(dǎo)致他們拿到一個(gè)業(yè)務(wù)不知道怎么測(cè),要么就是覺(jué)得測(cè)試一些異常場(chǎng)景又麻煩又沒(méi)啥意義,索性不測(cè),大概看下開(kāi)發(fā)代碼沒(méi)問(wèn)題就覺(jué)得應(yīng)該沒(méi)問(wèn)題,可BUG往往出現(xiàn)的地方就是特殊場(chǎng)景里。
其實(shí)不要聽(tīng)到別人說(shuō)“測(cè)試要會(huì)代碼”,就一頭扎進(jìn)代碼的海洋,卻忘了抬頭看路,忘了去培養(yǎng)你作為測(cè)試工程師最核心的競(jìng)爭(zhēng)力——測(cè)試分析與設(shè)計(jì)能力。
好了,今天就聊到這兒。今天我代表的是千千萬(wàn)萬(wàn)個(gè)曾經(jīng)“背鍋”“被鄙視”“不被認(rèn)可”的測(cè)試工程師。
如果你也曾被誤解,別生氣,也別放棄解釋。每一次清晰的發(fā)聲,都是在為這個(gè)職業(yè)正名。下次再有人對(duì)我說(shuō)“哦,就是點(diǎn)鼠標(biāo)的唄”,我可能會(huì)把這篇文章甩給他,然后補(bǔ)一句:
“我們點(diǎn)的不是鼠標(biāo),是邏輯。守護(hù)的不是代碼,是用戶體驗(yàn)。”
??想了解更多漲薪技能提升方法
??可以到我的個(gè)人號(hào):atstudy-js
即可加入領(lǐng)取 ??????
轉(zhuǎn)行、入門、提升、需要的各種干貨資料
內(nèi)含AI測(cè)試、 車載測(cè)試、AI大模型開(kāi)發(fā)、BI數(shù)據(jù)分析、銀行測(cè)試、游戲測(cè)試、AIGC
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.