0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Bug定位的過程

電子工程師 ? 來源:全棧軟件測試在線 ? 作者:全棧軟件測試在線 ? 2022-08-08 16:11 ? 次閱讀

身為測試工程師,總有一道繞不過去的坎就是定位bug,這其實是非?;ㄙM時間的。 也許有很多人不以為然,覺得無非就是發(fā)現(xiàn)bug后提交bug管理系統(tǒng),描述操作步驟,預(yù)期結(jié)果和實際結(jié)果哪里不一致,然后繼續(xù)測試。并不是說這樣做的不對,只是說這樣做的不夠好,看似節(jié)約了測試時間,實則對于項目的進(jìn)度沒有起到應(yīng)有的推動作用。

1

web前端

Web前端就是通常說的網(wǎng)頁?;ヂ?lián)網(wǎng)公司的前端一般包含如下內(nèi)容:JavaScript、ActionScript、CSS、HTML(..ML)、HTML5、Flash、交互式設(shè)計、視覺設(shè)計

web前端測試可能發(fā)現(xiàn)的問題——版面設(shè)計、交互設(shè)計、文字、性能、功能

bug定位通用思路:現(xiàn)象-->原因-->驗證手段-->結(jié)論-->現(xiàn)象

21ffc746-16c1-11ed-ba43-dac502259ad0.jpg

測試bug定位原因歸類:

測試環(huán)境相關(guān)

是否安裝了flash及flash的版本——可能導(dǎo)致部分頁面顯示出問題,目前常用的版本誒flash10

是否開啟了瀏覽器插件——插件可能導(dǎo)致瀏覽器行為的變化,除非測試要求,否則一律禁用插件

是否開啟了安全軟件——可能會截包、彈窗攔截、防釣魚等

瀏覽器相關(guān)

不同瀏覽器的支持標(biāo)準(zhǔn)——不同內(nèi)核的瀏覽器對js及各種標(biāo)準(zhǔn)的支持不同,因此頁面解析出來的效果可能不同。Firefox:gecko;Chrome:webkit;IE:trident;Safari:webkit。

瀏覽器的設(shè)置——禁用js;禁用彈窗;禁用cookie等

瀏覽器cache策略——js,css,圖片等都有可能被cache住。ctrl+F5強(qiáng)制刷新請求

cookie——跨域,過期

網(wǎng)絡(luò)相關(guān)

是否發(fā)出了正確的請求——請求url、參數(shù)變量。content數(shù)據(jù)

是否得到了正確的應(yīng)答——http的返回值:200-正確;302-對象已移動;304-對象未修改;404-沒有找到頁面。返回的數(shù)據(jù)體

是否性能問題——異步請求的數(shù)量過多;網(wǎng)速過慢

字符編碼相關(guān)

頁面亂碼——百度后端存儲基本是使用的GBK編碼,前端提交可能是UTF-8編碼,后端對于非GBK編碼一般采用實體存儲。可能出現(xiàn)編碼沒有轉(zhuǎn)換。轉(zhuǎn)換的時候沒有判斷半個漢字(轉(zhuǎn)掉了半個漢字導(dǎo)致雪崩)。

url錯誤——url路徑中漢字編碼使用的是utf-8編碼,參數(shù)中使用系統(tǒng)默認(rèn)編碼,flash腳本中使用的都是uft-8編碼。

安全相關(guān)

Xss漏洞——輸入一些特定字符頁面出現(xiàn)錯亂或有惡意代碼被執(zhí)行,RD未對特殊字符轉(zhuǎn)義完整

性能相關(guān)

圖片數(shù)量——頁面中同一個域的圖片的數(shù)量控制在16個以下,IE會控制同一個域下圖片并行的下載數(shù)量

頁面抖動——異步請求的數(shù)量過多

加載失敗——限速情況下,超時

bug定位常用工具

Firefox——firebug、web developer、live http headers、http fox

IE插件——httpwatch

第三方工具——fiddler、charles

慢速網(wǎng)模擬工具——firefox throttle、fiddler、charles

2

web后端

后端包含運(yùn)行在服務(wù)器上的程序,腳本和服務(wù)。比如:各種各樣的邏輯處理系統(tǒng),數(shù)據(jù)存儲系統(tǒng)等。

后端可能發(fā)現(xiàn)的問題——邏輯的,數(shù)據(jù)的,策略的,接口的,性能的等

測試bug定位原因歸類:

數(shù)據(jù)流相關(guān)

上下游模塊是否連接正?!K的ip和端口的配置,白名單黑名單配置,session授權(quán)

模塊的數(shù)據(jù)發(fā)送接收是否正常——日志是否有滾動,是否顯示發(fā)送了數(shù)據(jù)或接收到數(shù)據(jù),數(shù)據(jù)是否完整,跨機(jī)房,負(fù)載均衡算法(從哪些機(jī)器獲取到的數(shù)據(jù))

非socket的數(shù)據(jù)傳輸——共享內(nèi)存(是否分配,key的配置等),cache(是否創(chuàng)建,臟數(shù)據(jù)等),數(shù)據(jù)庫(配置,連接,表,觸發(fā)器,存儲過程),文件(大小,訪問權(quán)限)

模塊之間的接口——協(xié)議的一致性(mcpack1,mcpack2等),字段的一致性(一個按signed解析,一個按unsigned解析),字段復(fù)用

處理邏輯相關(guān)

程序的各種配置——功能是否開啟/關(guān)閉,詞表是否加載,各種閾值的配置,超時配置

程序日志——日志級別,交互的流程,處理的流程

各種邊界——數(shù)據(jù)邊界(int,long),文件邊界(空文件,分文件的邊界),時間邊界

各種資源并使用——Cache是否遺留臟數(shù)據(jù),并發(fā)和死鎖

系統(tǒng)和環(huán)境相關(guān)

系統(tǒng)資源——Cpu,io,句柄,內(nèi)存,網(wǎng)絡(luò)狀態(tài),數(shù)據(jù)庫狀態(tài),數(shù)據(jù)庫連接數(shù)

環(huán)境資源——程序版本,內(nèi)核版本,網(wǎng)絡(luò)(外網(wǎng))訪問權(quán)限,系統(tǒng)動態(tài)庫不一致

程序和代碼相關(guān)(常用驗證手段)

確認(rèn)問題出現(xiàn)的位置——日志中的代碼行,gdb中的代碼行,拋出異常顯示的代碼行

獲取當(dāng)時的運(yùn)行時信息——Gdb core文件,gdb attach到進(jìn)程,查看堆棧,查看寄存器,設(shè)置breakpoint,watchpoint,查看內(nèi)部數(shù)據(jù)

獲取程序和系統(tǒng)信息——Strace查看系統(tǒng)調(diào)用,系統(tǒng)狀態(tài)獲?。╬s,top,/proc/pid/*,vmstat,netstat)

更深入的手段——反匯編,查看寄存器,gdb高級應(yīng)用

后端測試bug定位

日志查看命令

查看壓力——tail -f as.log | grep '^NOTICE' | awk '{print $3}' | uniq -c

·排除日志中的特定內(nèi)容——grep -v 'pattern' as.log

·只輸出感興趣的內(nèi)容——grep -o 'proctimed+' as.log;grep -o 'proctimed+' as.log | grep -o 'd+ ';grep -o 'proctimed+' as.log | grep -o 'd+ ' | sort -n | uniq -c

·將wf日志歸類——grep -o 'w+.(cpp|h):d+' as.log.wf | sort | uniq -c

gdb常用命令

bt——查看堆棧信息

print——打印某變量值

break——設(shè)置斷點

x/i——翻譯當(dāng)前指令為匯編

info thread——查看所有線程,星號*標(biāo)記的是當(dāng)前線程

thread num——切換到線程號為num的線程

set scheduler -locking on——鎖定在線程:輸入continue命令以后,當(dāng)前線程繼續(xù)執(zhí)行,其它線程不執(zhí)行

set scheduler-locking off——這是默認(rèn)設(shè)置,輸入continue命令以后,所有線程都繼續(xù)執(zhí)行

3

性能測試

旨在獲取系統(tǒng)在特定一種或多種環(huán)境下,在不同的外部輸入壓力(包含極限)的條件下的系統(tǒng)各項指標(biāo)的測試

常用命令

進(jìn)程相關(guān)——ps,top,/proc/pid/*

系統(tǒng)相關(guān)——vmstat,top,iostat,sar,df,lsof

網(wǎng)絡(luò)相關(guān)——netstat

bug定位原因歸類

壓力工具相關(guān)

工具的功能和性能——能否達(dá)到預(yù)期壓力,啟動壓力的機(jī)器性能,壓力工具是否有異常連接關(guān)閉,壓力工具如何處理異常,長連接短連接,并發(fā)的個數(shù)

工具運(yùn)行環(huán)境——壓力機(jī)器的帶寬,是否跨機(jī)房

被測系統(tǒng)相關(guān)

機(jī)器性能——系統(tǒng)所在機(jī)器性能,機(jī)器網(wǎng)絡(luò)帶寬,機(jī)器的內(nèi)存,sd卡,硬盤

系統(tǒng)本身——系統(tǒng)的下游模塊的性能,系統(tǒng)的配置,系統(tǒng)的數(shù)據(jù)量,系統(tǒng)的特點狀態(tài)(充cache,dump,merge),系統(tǒng)的部署,程序的bug

環(huán)境相關(guān)

操作系統(tǒng)相關(guān)—— 是否和線上一致,內(nèi)核版本,刷臟頁時間,有沒有調(diào)用directIO

查看系統(tǒng)狀態(tài)——Ps,top,/proc/pid/*, vmstat,netstat

正確的思路+豐富的業(yè)務(wù)知識+豐富的技術(shù)背景知識+較好的調(diào)試和開發(fā)能力= 強(qiáng)大的bug定位能力Bug定位的過程是能力提升的過程

Bug定位的過程也是境界提升的過程

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5275

    瀏覽量

    119689
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4700

    瀏覽量

    68117
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    155

    瀏覽量

    15634

原文標(biāo)題:你真的會軟件測試bug分析定位嘛

文章出處:【微信號:全棧軟件測試在線,微信公眾號:全棧軟件測試在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    配網(wǎng)行波故障定位裝置的研究過程

    配網(wǎng)行波故障定位裝置的研究過程? 在電力行業(yè),配網(wǎng)故障的快速準(zhǔn)確定位是保障電網(wǎng)穩(wěn)定運(yùn)行和高效維護(hù)的關(guān)鍵。隨著技術(shù)的不斷進(jìn)步,行波故障定位技術(shù)因其高精度和快速性而備受關(guān)注。本文深圳鼎信智
    的頭像 發(fā)表于 09-03 15:39 ?162次閱讀

    stm32H7 HAL庫中存在的bug

    stm32H7 hal 庫里面的以太網(wǎng)代碼,坑了魚鷹很多次(不知道最新版是否已經(jīng)修復(fù)了這些bug),這里分享一篇網(wǎng)上的文章,因為魚鷹也遇到過,靠它解決了其中一個編譯優(yōu)化問題,在此感謝作者。不過hal
    的頭像 發(fā)表于 08-12 17:37 ?602次閱讀

    工廠為什么要做人員定位

    人員定位是一種現(xiàn)代化的管理方式,被廣泛應(yīng)用于工廠生產(chǎn)管理中。工廠為什么要做人員定位呢?原因如下: 在工廠生產(chǎn)過程中,人員定位可以幫助企業(yè)實現(xiàn)對生產(chǎn)現(xiàn)場的精準(zhǔn)監(jiān)管和管理,提高生產(chǎn)效率,減
    的頭像 發(fā)表于 08-06 11:41 ?273次閱讀
    工廠為什么要做人員<b class='flag-5'>定位</b>?

    助力程序員告別困擾已久的夢魘-Bug

    程序員的噩夢是什么?不用懷疑,就是讓你加班到崩潰的Bug!下面是經(jīng)過業(yè)界大佬們“長期加班”積累的小妙招,助力你離早下班又進(jìn)一步~一、定位Bug范圍及性質(zhì)要有效解決問題,首先要縮小范圍,集中關(guān)注最近
    的頭像 發(fā)表于 07-02 08:10 ?215次閱讀
    助力程序員告別困擾已久的夢魘-<b class='flag-5'>Bug</b>

    為什么UWB定位技術(shù)適用于室內(nèi)定位

    UWB室內(nèi)人員定位原理 UWB室內(nèi)人員定位技術(shù)只是屬于無線定位技術(shù)的一種。流行的無線定位技術(shù)包括GPS定位、北斗
    的頭像 發(fā)表于 06-19 17:10 ?527次閱讀
    為什么UWB<b class='flag-5'>定位</b>技術(shù)適用于室內(nèi)<b class='flag-5'>定位</b>?

    BUG收集】為昕原理圖設(shè)計EDA軟件(Jupiter)免費評測活動常見問題及BUG收集

    感謝各位參與評測活動的工程師,請先認(rèn)真閱讀評測規(guī)則和本帖頂部的視頻講解。 如遇到bug可以在本帖反饋,會由為昕EDA的工程師們?yōu)楦魑唤獯稹?【軟件及使用指南】 軟件使用指南見本帖底部視頻 軟件本體請
    發(fā)表于 04-25 18:23

    PLC定位控制項目配置過程

    對于離散控制,通常使用STL、LAD、SCL和Graph;對于過程控制例如西門子的PCS7,使用CFC和CEM,這不是編程方式而是設(shè)計方式,如果還有順序控制,可以使用SFC(相當(dāng)于Graph)。
    發(fā)表于 12-27 15:12 ?447次閱讀
    PLC<b class='flag-5'>定位</b>控制項目配置<b class='flag-5'>過程</b>

    BLE藍(lán)牙定位基站介紹

    多種協(xié)議,能夠滿足不同行業(yè)的需求:例如:電子門禁、電子圍欄等。 一、藍(lán)牙定位基站采用模塊化設(shè)計,便于維護(hù)和升級。 采用低功耗設(shè)計,滿足設(shè)備長時間工作需求。藍(lán)牙定位基站的主要作用是實現(xiàn)車輛在運(yùn)輸過程中的
    的頭像 發(fā)表于 12-21 17:05 ?729次閱讀

    如何對pcb板安裝定位

    在PCB板的生產(chǎn)與組裝過程中,安裝定位孔是一個重要的環(huán)節(jié)。合理配置并準(zhǔn)確安裝定位孔,不僅可以提高PCB板的組裝效率和精度,還有助于保證電路板的穩(wěn)固性與可靠性。本文將詳細(xì)介紹如何對PCB板進(jìn)行安裝
    的頭像 發(fā)表于 12-20 14:36 ?5851次閱讀

    暫停Debian的升級:內(nèi)核 6.1.64 ext4 Bug警報

    Debian 開發(fā)人員正在積極尋找解決方案,并會在其可用時提供更新。與此同時,用戶可以通過訪問此處的 Debian bug 追蹤頁面了解該 bug 的進(jìn)展情況并獲取更多信息。
    的頭像 發(fā)表于 12-10 14:53 ?1022次閱讀
    暫停Debian的升級:內(nèi)核 6.1.64 ext4 <b class='flag-5'>Bug</b>警報

    基于UWB模塊TDoA定位和PDoA定位應(yīng)用講解

    時間差異來確定標(biāo)簽的位置。通過記錄信號到達(dá)時間并計算不同信號的時間差異,系統(tǒng)推算出標(biāo)簽相對于各個基站的位置信息。PDoA定位系統(tǒng)則是利用信號傳播過程中的相位差異來測量
    的頭像 發(fā)表于 12-01 17:49 ?972次閱讀
    基于UWB模塊TDoA<b class='flag-5'>定位</b>和PDoA<b class='flag-5'>定位</b>應(yīng)用講解

    無符號整型能產(chǎn)生哪些bug

    為什么不建議使用無符號整型,無符號整型能產(chǎn)生哪些bug?
    的頭像 發(fā)表于 11-09 17:09 ?444次閱讀
    無符號整型能產(chǎn)生哪些<b class='flag-5'>bug</b>?

    某些bug正常運(yùn)行時會出現(xiàn),當(dāng)打開串口log時又不再復(fù)現(xiàn)怎么辦?

    某些bug正常運(yùn)行時會出現(xiàn),當(dāng)打開串口log時又不再復(fù)現(xiàn)怎么辦? 在開發(fā)過程中,我們經(jīng)常會遇到一些bug。這些bug會對我們的開發(fā)造成一定程度的困擾,有時候甚至?xí)屛覀兊能浖罎⒒驘o法
    的頭像 發(fā)表于 10-31 14:37 ?330次閱讀

    常見的PLC系統(tǒng)BUG有哪些?如何減少這些BUG的產(chǎn)生?

    PLC系統(tǒng)可能會遇到各種不同類型的BUG,以下是一些常見的PLC系統(tǒng)BUG以及如何減少這些BUG的產(chǎn)生的建議: (1)邏輯錯誤:邏輯錯誤是最常見的PLC系統(tǒng)BUG之一。它們可能是由于程
    的頭像 發(fā)表于 10-31 11:30 ?934次閱讀
    常見的PLC系統(tǒng)<b class='flag-5'>BUG</b>有哪些?如何減少這些<b class='flag-5'>BUG</b>的產(chǎn)生?

    常見的PLC系統(tǒng)BUG有哪些?如何減少BUG的產(chǎn)生呢?

    PLC系統(tǒng)可能會遇到各種不同類型的BUG,以下是一些常見的PLC系統(tǒng)BUG以及如何減少這些BUG的產(chǎn)生的建議
    的頭像 發(fā)表于 10-31 11:29 ?813次閱讀