軟件測試工(gōng)程師的職責是發現BUG,此外(wài),如何體(tǐ)現個人價值?那麽我(wǒ)(wǒ)們試想,隻提出問題而不去(qù)解決,問題就永遠得不到閉環。所以,一(yī)個資(zī)深的測試人員(yuán)的基本功應該是這樣的:深挖業務和功能需求,找出BUG,定位BUG,提出解決方案。這裏我(wǒ)(wǒ)們就來說說,當我(wǒ)(wǒ)們找到了BUG,應該把BUG提交給誰去(qù)解決,這屬于BUG定位的問題。
試想:
根據需求,用戶頭像應是圓形,但結果是方形,是誰的BUG?
保存用戶信息時,無法保存成功,也沒有錯誤提示,最可能是誰的BUG?
顯然,工(gōng)作過程中(zhōng),我(wǒ)(wǒ)們不可能把這些BUG提交給同一(yī)個人去(qù)解決。我(wǒ)(wǒ)們應該至少區分(fēn)出是前端還是後端BUG,就好像時下(xià)流行的詞“垃圾分(fēn)類”,經過BUG分(fēn)類處理,整個團隊的效率都會有所提高。
一(yī).什麽是前端/後端?
目前多數互聯網項目都是前後端分(fēn)離(lí)開(kāi)發的,那麽什麽是前端?什麽是後端?簡言之,前端側重于頁面設計,後端側重于服務開(kāi)發。
比如要保存一(yī)個用戶信息,前端把界面顯示給用戶,讓用戶按需填寫,當用戶點擊“保存”按鈕時,數據會通過網絡被提交給後端服務,由後端服務處理是否需要進一(yī)步運算,并且把數據保存在哪一(yī)個數據庫的哪一(yī)張表裏。
二.爲什麽要區分(fēn)前端/後端BUG?
目前多數項目都是多人協作開(kāi)發的,如果不能明确這個BUG是誰造成的,容易提交給錯誤的開(kāi)發人員(yuán),會大(dà)大(dà)降低BUG的解決效率。
另外(wài),如果團隊規模較大(dà),或者由各地的項目組拼湊而成,勢必會增加溝通成本,這更需要我(wǒ)(wǒ)們在類似禅道或者Jira等項目管理軟件中(zhōng)提交BUG時,先指明是誰的BUG,避免互相踢皮球的現象。
所以,爲了提高團隊效率,測試人員(yuán)尤其要做好BUG分(fēn)類。
三.如何定位前端/後端BUG?
對于一(yī)個優秀的軟件測試工(gōng)程師來說,區分(fēn)BUG屬于前端還是後端是尤爲重要的。
頁面請求過程
弄清楚如何定位和分(fēn)類BUG之前,需要了解一(yī)下(xià)頁面請求的過程,以 http 請求爲例,請求過程如下(xià):
用戶在前端頁面操作,如點擊某個功能
頁面攜帶數據進行請求,訪問具體(tǐ)功能接口
由後端服務執行該接口相應的業務邏輯,如涉及數據,再去(qù)請求并組裝數據返回給前端
前端頁面進行渲染和展示對應的頁面和數據
前後端BUG各有什麽樣的特點?
前端BUG
界面相關
布局相關
兼容性相關
後端BUG
業務邏輯相關
性能相關
數據相關
安全性相關
定位BUG屬于前端還是後端,有什麽方法?
這裏提供了幾個方法,可以給大(dà)家一(yī)個思路,讓大(dà)家能在學習和工(gōng)作中(zhōng)了解如何去(qù)區分(fēn)BUG屬于前端還是後端。
經驗法
軟件測試人員(yuán)應不斷精進自己的技能,負責的項目多了,自然對功能的實現過程有了解,也就明白(bái)如何分(fēn)類BUG了。
例如:
網頁上的某個圖片的分(fēn)辨率不對,如果我(wǒ)(wǒ)們了解實現過程,可以想到一(yī)般情況下(xià),是根據某個地址去(qù)服務器取圖片的,數據庫一(yī)般隻保存地址,那麽圖片能正确顯示,就說明後端的基本功能是滿足需求的。如果具體(tǐ)圖片分(fēn)辨率有誤,最可能的原因是前端顯示過程出了差錯。
日志(zhì)查看法
當我(wǒ)(wǒ)們發現一(yī)個BUG,并不确定這個BUG屬于前端還是後端,可以查看後端服務的日志(zhì),複現BUG時,查看日志(zhì)中(zhōng)有沒有相關信息。基本可以認爲,如果日志(zhì)沒有輸出,很可能這個功能并沒有與後端交互,也就不存在後端的問題。反之,如果日志(zhì)有輸出,可以進一(yī)步查看有無錯誤日志(zhì)信息,進一(yī)步分(fēn)析。
接口查看法
這種方法常用于查看是後端返回給前端的數據有誤,還是前端顯示有誤。
大(dà)多數浏覽器都有自帶的接口查看工(gōng)具,如Chrome,FireFox等都可以通過F12開(kāi)啓抓包,在NetWork中(zhōng)可以看到當前頁面發送的每個http請求。
我(wǒ)(wǒ)們需要對比通過後端接口拿到的數據和前端顯示的數據,來确認問題出在哪裏。如果數據錯了,頁面顯示是錯的,也是正常的,先從後端入手去(qù)解決。如果數據對了,但是顯示錯了,就需要問問前端的開(kāi)發人員(yuán)了。
四.經驗和總結
溝通很重要
我(wǒ)(wǒ)們在定位BUG的過程中(zhōng),最不能忽略的一(yī)個問題是和開(kāi)發人員(yuán)的溝通,有時候忙活半天,不如一(yī)問一(yī)答。經驗和技術的成長也都離(lí)不開(kāi)合理高效的溝通。
經驗和小(xiǎo)結
出現樣式的問題基本都是CSS的BUG
出現文本的問題基本上都是html的BUG
出現交互類的問題基本上都是Javascript的BUG
其他問題先溝通,再定位