寫在前面:測(cè)試是一門枯燥的行業(yè),但也不僅僅是測(cè)試這個(gè)行業(yè)岗仑。
為什么寫這篇文章呢匹耕?
想想已經(jīng)很久沒(méi)有寫過(guò)文章了,在公司的每一天都經(jīng)常更新內(nèi)部的文章赔蒲,在公司也被人成為文檔小能手了。每天我都會(huì)去總結(jié)一下自己今天做了什么,明天應(yīng)該做些什么舞虱。不斷在自我反思和提升中成長(zhǎng)欢际。
工作了五年之余,說(shuō)說(shuō)自己對(duì)測(cè)試這個(gè)行業(yè)的看法矾兜,以及幫助即將進(jìn)入測(cè)試這個(gè)行業(yè)的你提供一個(gè)更好的選擇機(jī)會(huì)损趋。
我為什么選擇測(cè)試這個(gè)行業(yè)?
當(dāng)初自己還是電腦的小白的時(shí)候椅寺,已經(jīng)有很多人家里有了電腦這神奇的東西了浑槽。從選擇計(jì)算機(jī)專業(yè)到計(jì)算機(jī)專業(yè)畢業(yè),再到如今的計(jì)算機(jī)行業(yè)返帕,每一步都不容易桐玻,每一天都需要不斷學(xué)習(xí)。
無(wú)論是前端開發(fā)荆萤,還是后端開發(fā)镊靴,還是測(cè)試開發(fā),甚至是軟件測(cè)試链韭,這些跟計(jì)算機(jī)相關(guān)的行業(yè)偏竟,一旦你有新知識(shí)沒(méi)有了解的話,那么敞峭,你很快就會(huì)成為社會(huì)的棄子了踊谋。雖然,你可能會(huì)說(shuō)旋讹,你現(xiàn)在的公司不需要學(xué)習(xí)那么多東西殖蚕,但是,除非你不會(huì)跳槽骗村,否則結(jié)果都一樣嫌褪。
軟件測(cè)試這個(gè)行業(yè),主要的職責(zé)就是發(fā)現(xiàn)產(chǎn)品的問(wèn)題胚股,幫助開發(fā)快速定位問(wèn)題笼痛,協(xié)助開發(fā)解決問(wèn)題,保證產(chǎn)品的質(zhì)量琅拌。就因?yàn)榭梢蕴崆傲私庥脩魶](méi)了解到的功能缨伊,這就引起我當(dāng)年選擇這個(gè)行業(yè)的好奇心了。因?yàn)檫@樣自己很有滿足感进宝,很多用戶不知道的問(wèn)題刻坊,自己可以先知道,很多用戶沒(méi)了解的隱藏福利党晋,自己可以先提前知道谭胚,這就是測(cè)試徐块,發(fā)現(xiàn)很多人沒(méi)發(fā)現(xiàn)到的好東西。
如何做好軟件測(cè)試工程師
寫在這里灾而,沒(méi)人能做一個(gè)很好的評(píng)估者胡控,也沒(méi)有很好的標(biāo)準(zhǔn)者,能做到的是旁趟,軟件測(cè)試工程師保證產(chǎn)品的質(zhì)量昼激。
我們需要了解到的是,一個(gè)產(chǎn)品從研發(fā)到測(cè)試到最后的上線生命周期是怎樣锡搜?
需求的提出 > 需求評(píng)審 > 進(jìn)入開發(fā)測(cè)試階段 > 開發(fā)技術(shù)方案 & 測(cè)試用例設(shè)計(jì) > 開發(fā) & 測(cè)試用例評(píng)審 > 開發(fā) & 執(zhí)行測(cè)試用例 > 開發(fā) & 測(cè)試bug驗(yàn)收測(cè)試 > 產(chǎn)品 & UI驗(yàn)收 > 上線
從上面中可以看到測(cè)試介入的階段是整個(gè)產(chǎn)品的生命周期的橙困。從需求評(píng)審到最后的上線,測(cè)試都會(huì)參與到里面的對(duì)應(yīng)角色耕餐。
那么既然知道我們每一個(gè)環(huán)節(jié)都少不了測(cè)試凡傅,那么如何做好一個(gè)測(cè)試工程師呢?
1. 需求評(píng)審中蛾方,我們需要參與的角色是圍繞這個(gè)需求像捶,是否在技術(shù)上會(huì)存在風(fēng)險(xiǎn),是否會(huì)因?yàn)檫@個(gè)需求導(dǎo)致產(chǎn)品的其他功能出現(xiàn)問(wèn)題桩砰,這方面會(huì)更加考驗(yàn)的是一名測(cè)試工程師的業(yè)務(wù)能力拓春,對(duì)公司產(chǎn)品的業(yè)務(wù)能力,只有對(duì)產(chǎn)品有深層次的認(rèn)知才適合參與需求的評(píng)審亚隅。
例如:一個(gè)國(guó)際平臺(tái)硼莽,包含全球的語(yǔ)言,貨幣煮纵,在不同國(guó)家IP下的登錄注冊(cè)頁(yè)面是不一樣的懂鸵。這個(gè)時(shí)候,產(chǎn)品提供一個(gè)需求就是部分用戶使用Google登錄可以使用one tap免密登錄行疏,直接使用Google賬號(hào)實(shí)現(xiàn)下次免密登錄匆光。
雖然說(shuō),這個(gè)需求就如此簡(jiǎn)單酿联,開發(fā)只要實(shí)現(xiàn)將當(dāng)前用戶的cookie記錄在local storage里面终息,就可以實(shí)現(xiàn)產(chǎn)品的需求了。但是作為一個(gè)全球平臺(tái)贞让,要知道的是周崭,國(guó)內(nèi)IP是沒(méi)有Google登錄的。所以喳张,需要對(duì)國(guó)內(nèi)IP地址做區(qū)分了续镇,一旦測(cè)試不了解這功能的話,可能就會(huì)造成國(guó)內(nèi)用戶也會(huì)彈出Google登錄的彈窗了销部,這里的風(fēng)險(xiǎn)就是國(guó)內(nèi)用戶沒(méi)有Google登錄摸航,而我們卻提供了入口對(duì)用戶的誤導(dǎo)制跟。
2.開發(fā)技術(shù)方案,需要測(cè)試參與其中的原因就是酱虎,技術(shù)方案不一定涵蓋需求所有功能凫岖,測(cè)試應(yīng)該在這個(gè)時(shí)候起到關(guān)鍵作用。開發(fā)的認(rèn)知是逢净,只要實(shí)現(xiàn)需求的功能,而測(cè)試的認(rèn)識(shí)應(yīng)該是圍繞需求歼指,是否對(duì)其他功能有影響爹土。
例如:就拿上面的需求繼續(xù)分析,按照開發(fā)的角度分析踩身,就是實(shí)現(xiàn)用戶緩存下來(lái)的cookie胀茵,只需要在local storage中做緩存就足夠了。那么站在測(cè)試角度挟阻,如何分析這個(gè)技術(shù)方案呢琼娘,就是我們需要區(qū)分不同國(guó)家地區(qū)的IP地址
if country.get($ country).IP == china.IP || currency.get() == china.currency || language.get() == china.language{ main.run (platform) };else{ main.run(google.one_tap) }
這里的意思就是,如果用戶進(jìn)入的是國(guó)內(nèi)IP或者選擇是中文語(yǔ)言或者選擇的是中文貨幣附鸽,那么就不應(yīng)該展示Google的登錄入口脱拼,我們就需要考量技術(shù)方案的問(wèn)題,去幫助開發(fā)更好去了解產(chǎn)品的需求坷备。
3.用例的設(shè)計(jì)熄浓,是在測(cè)試階段最為重要的部分,也是考量測(cè)試能力最為關(guān)鍵的部分省撑。測(cè)試能力行不行赌蔑,就看你的測(cè)試用例設(shè)計(jì)覆蓋程度有多少。
思考測(cè)試用例設(shè)計(jì)竟秫,就需要從測(cè)試的專業(yè)角度去出發(fā)娃惯。黑盒測(cè)試,白盒測(cè)試肥败,接口測(cè)試趾浅,性能測(cè)試,兼容性測(cè)試拙吉〕蹦酰看起來(lái)很簡(jiǎn)單的測(cè)試行業(yè),涵蓋的技術(shù)卻很多人不了解的筷黔。根據(jù)不同需求往史,設(shè)計(jì)最適合需求的用例,這就能提高測(cè)試效率了佛舱。
4.測(cè)試用例評(píng)審中椎例,我們需要做的是把需求根據(jù)自己的理解講解出來(lái)挨决,不是產(chǎn)品的大致講解,而是涉及到每一個(gè)功能的改動(dòng)订歪,以及每一個(gè)接口的改動(dòng)脖祈,我們都需要體現(xiàn)在測(cè)試用例中,目的是為了防止產(chǎn)品以及開發(fā)沒(méi)考慮到的地方刷晋。
5.測(cè)試中提的bug盖高,這個(gè)環(huán)節(jié),應(yīng)該是開發(fā)吐槽最多的環(huán)節(jié)了眼虱。很多時(shí)候喻奥,開發(fā)認(rèn)為這不是bug,這個(gè)bug復(fù)現(xiàn)不了捏悬,這個(gè)bug不會(huì)這個(gè)需求引起的撞蚕,這個(gè)bug影響不大,這個(gè)bug不用管过牙,這個(gè)bug后期再去優(yōu)化....這都是開發(fā)不想去修改bug的理由甥厦。為什么不想去修改這個(gè)bug呢,是因?yàn)槲覀儨y(cè)試提交的bug寇钉,不夠體現(xiàn)出現(xiàn)bug的嚴(yán)重性刀疙,對(duì)產(chǎn)品,對(duì)功能扫倡,以及對(duì)未知風(fēng)險(xiǎn)的嚴(yán)重性庙洼。很多人會(huì)覺得,這個(gè)bug的確像是開發(fā)說(shuō)的镊辕,不嚴(yán)重油够,不用管,后面再優(yōu)化征懈。那么我拿一個(gè)例子出來(lái)石咬,你就信了。
有一次測(cè)試的過(guò)程中卖哎,因?yàn)樵跍y(cè)試app的很多時(shí)候鬼悠,我們需要關(guān)注兼容性的測(cè)試。我們使用iPhone8-12的測(cè)試機(jī)進(jìn)行測(cè)試的時(shí)候亏娜,都覺得沒(méi)問(wèn)題焕窝,但是當(dāng)我對(duì)抓包進(jìn)行分析時(shí),發(fā)現(xiàn)维贺,首頁(yè)的頁(yè)面加載比其他頁(yè)面的要就一到兩秒它掂。因?yàn)樾枨蟾膭?dòng)了app的首頁(yè),一旦我們覺得這不是問(wèn)題的話,那么就會(huì)存在的風(fēng)險(xiǎn)就是虐秋,有可能出現(xiàn)頁(yè)面閃退的問(wèn)題榕茧,可想而知,閃退的問(wèn)題一旦發(fā)生在app中客给,用戶的丟失量是多少用押,公司的損失誰(shuí)能承擔(dān)。誰(shuí)也承擔(dān)不了靶剑。
當(dāng)時(shí)我對(duì)接口進(jìn)行抓包蜻拨,發(fā)現(xiàn)接口返回的圖片是原圖(2M及以上),這就是造成頁(yè)面加載慢的原因桩引,每一張圖片都需要花費(fèi)2M及以上的流量官觅,那么一個(gè)首頁(yè)就需要幾十M的流量了,想想阐污,需要加載多久才會(huì)加載完,一次加載就幾十M咱圆,多加載幾次笛辟,就不難發(fā)現(xiàn)會(huì)導(dǎo)致閃退了。
這就是對(duì)bug嚴(yán)重性不夠有風(fēng)險(xiǎn)把控的后果了序苏。
6.測(cè)試的驗(yàn)收環(huán)節(jié)也是測(cè)試當(dāng)主角的時(shí)候手幢,因?yàn)樵隍?yàn)收的過(guò)程中,我們需要完整地演示產(chǎn)品所需要的功能忱详,還有符合產(chǎn)品需求的功能围来,還有其他頁(yè)面是否會(huì)產(chǎn)生影響。
直到上線匈睁,測(cè)試都會(huì)在每一個(gè)環(huán)節(jié)中起到不可替代的作用监透。所以,這就是公司為什么需要測(cè)試工程師的原因航唆,也是為什么現(xiàn)在的公司對(duì)測(cè)試工程師要求越來(lái)越高的原因了胀蛮。在敏捷開發(fā)測(cè)試的環(huán)節(jié),測(cè)試都是至關(guān)重要的角色糯钙。
測(cè)試工程師的未來(lái)之路
未來(lái)怎么走呢粪狼,現(xiàn)在可以給你提供兩條路,一是管理任岸,而是技術(shù)再榄。管理的范圍比較廣了,一旦你對(duì)公司的業(yè)務(wù)很了解了享潜,你就可以轉(zhuǎn)項(xiàng)目經(jīng)理跟進(jìn)每個(gè)需求的進(jìn)度困鸥;轉(zhuǎn)產(chǎn)品,為公司的產(chǎn)品多樣性貢獻(xiàn)一份力量剑按;直升測(cè)試管理窝革,將自己的測(cè)試思想傳承給接下來(lái)你管理的每一個(gè)小伙伴购城。
另外就是轉(zhuǎn)技術(shù)了,哪些技術(shù)可以提供選擇呢虐译?同樣是很廣的防線瘪板,一旦你對(duì)前端的技術(shù)有足夠的了解,以及你也熱愛的話漆诽,那么就是轉(zhuǎn)前端開發(fā)了侮攀;轉(zhuǎn)后端開發(fā),很多人覺得后端開發(fā)不就是curl的復(fù)制粘貼嗎厢拭,是兰英,首先你得有這個(gè)能力寫curl;最后一個(gè)就是測(cè)試開發(fā)工程師了供鸠。到目前為止畦贸,也沒(méi)有一個(gè)很官方對(duì)測(cè)試開發(fā)工程師的含義,所以測(cè)試開發(fā)是干什么的呢楞捂,那就得看公司的造化了薄坏。
測(cè)試的方向很多,能轉(zhuǎn)的方向也很多寨闹,不轉(zhuǎn)也可以胶坠。一個(gè)是深度行業(yè)的探索,一個(gè)是廣度行業(yè)的摸索繁堡,都是自己人生色彩的濃重一筆呢沈善。
碼字不容易,如果覺得有道理的話椭蹄,可否激勵(lì)一下闻牡,點(diǎn)贊再走?