轉載:BUG定位
一、web前端css
- Web前端就是一般說的網頁。互聯網公司的前端通常包含以下內容:JavaScript、ActionScript、CSS、HTML(..ML)、Flash、交互式設計、視覺設計
- web前端測試可能發現的問題——版面設計、交互設計、文字、性能、功能
- bug定位通用思路:現象-->緣由-->驗證手段-->結論-->現象
- 測試bug定位緣由歸類:
- 測試環境相關
- 是否安裝了flash及flash的版本——可能致使部分頁面顯示出問題,目前經常使用的版本誒flash10
- 是否開啓了瀏覽器插件——插件可能致使瀏覽器行爲的變化,除非測試要求,不然一概禁用插件
- 是否開啓了安全軟件——可能會截包、彈窗攔截、防釣魚等
- 瀏覽器相關
- 不一樣瀏覽器的支持標準——不一樣內核的瀏覽器對js及各類標準的支持不一樣,所以頁面解析出來的效果可能不一樣。IE:trident;Firefox:gecko;Chrome:webkit;Safari:webkit。
- 瀏覽器的設置——禁用js;禁用彈窗;禁用cookie等
- 瀏覽器cache策略——js,css,圖片等都有可能被cache住。ctrl+F5強制刷新請求
- cookie——跨域,過時
- 網絡相關
- 是否發出了正確的請求——請求url、參數變量。content數據
- 是否獲得了正確的應答——http的返回值:200-正確;302-對象已移動;304-對象未修改;404-沒有找到頁面。返回的數據體
- 是否性能問題——異步請求的數量過多;網速過慢
- 字符編碼相關
- 頁面亂碼——百度後端存儲基本是使用的GBK編碼,前端提交多是UTF-8編碼,後端對於非GBK編碼通常採用實體存儲。可能出現編碼沒有轉換。轉換的時候沒有判斷半個漢字(轉掉了半個漢字致使雪崩)。
- url錯誤——url路徑中漢字編碼使用的是utf-8編碼,參數中使用系統默認編碼,flash腳本中使用的都是uft-8編碼。
- 安全相關
- Xss漏洞——輸入一些特定字符頁面出現錯亂或有惡意代碼被執行,RD未對特殊字符轉義完整
- 性能相關
- 圖片數量——頁面中同一個域的圖片的數量控制在16個如下,IE會控制同一個域下圖片並行的下載數量
- 頁面抖動——異步請求的數量過多
- 加載失敗——限速狀況下,超時
- bug定位經常使用工具
- Firefox——firebug、web developer、live http headers、http fox
- IE插件——httpwatch
- 第三方工具——fiddler
- 慢速網模擬工具——firefox throttle
二、web後端前端
- 後端包含運行在服務器上的程序,腳本和服務。好比:各類各樣的邏輯處理系統,數據存儲系統等。
- 後端可能發現的問題——邏輯的,數據的,策略的,接口的,性能的等
- 測試bug定位緣由歸類:
- 數據流相關
- 上下游模塊是否鏈接正常——模塊的ip和端口的配置,白名單黑名單配置,session受權
- 模塊的數據發送接收是否正常——日誌是否有滾動,是否顯示發送了數據或接收到數據,數據是否完整,跨機房,負載均衡算法(從哪些機器獲取到的數據)
- 非socket的數據傳輸——共享內存(是否分配,key的配置等),cache(是否建立,髒數據等),數據庫(配置,鏈接,表,觸發器,存儲過程),文件(大小,訪問權限)
- 模塊之間的接口——協議的一致性(mcpack1,mcpack2等),字段的一致性(一個按signed解析,一個按unsigned解析),字段複用
- 處理邏輯相關
- 程序的各類配置——功能是否開啓/關閉,詞表是否加載,各類閾值的配置,超時配置
- 程序日誌——日誌級別,交互的流程,處理的流程
- 各類邊界——數據邊界(int,long),文件邊界(空文件,分文件的邊界),時間邊界
- 各類資源癿使用——Cache是否遺留髒數據,併發和死鎖
- 系統和環境相關
- 系統資源——Cpu,io,句柄,內存,網絡狀態,數據庫狀態,數據庫鏈接數
- 環境資源——程序版本,內核版本,網絡(外網)訪問權限,系統動態庫不一致
- 程序和代碼相關(經常使用驗證手段)
- 確認問題出現的位置——日誌中的代碼行,gdb中的代碼行,拋出異常顯示的代碼行
- 獲取當時的運行時信息——Gdb core文件,gdb attach到進程,查看堆棧,查看寄存器,設置breakpoint,watchpoint,查看內部數據
- 獲取程序和系統信息——Strace查看系統調用,系統狀態獲取(ps,top,/proc/pid/*,vmstat,netstat)
- 更深刻的手段——反彙編,查看寄存器,gdb高級應用
- 後端測試bug定位
- 日誌查看命令
- 查看壓力——tail -f as.log | grep '^NOTICE' | awk '{print $3}' | uniq -c
- 排除日誌中的特定內容——grep -v 'pattern' as.log
- 只輸出感興趣的內容——grep -o 'proctime:toal:\d+' as.log;grep -o 'proctime:toal:\d+' as.log | grep -o '\d+ ';grep -o 'proctime:toal:\d+' 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——設置斷點
- x/i——翻譯當前指令爲彙編
- info thread——查看全部線程,星號*標記的是當前線程
- thread num——切換到線程號爲num的線程
- set scheduler -locking on——鎖定在線程:輸入continue命令之後,當前線程繼續執行,其它線程不執行
- set scheduler-locking off——這是默認設置,輸入continue命令之後,全部線程都繼續執行
三、性能測試ios
- 旨在獲取系統在特定一種或多種環境下,在不一樣的外部輸入壓力(包含極限)的條件下的系統各項指標的測試
- 經常使用命令
- 進程相關——ps,top,/proc/pid/*
- 系統相關——vmstat,top,iostat,sar,df,lsof
- 網絡相關——netstat
- bug定位緣由歸類
- 壓力工具相關
- 工具的功能和性能——可否達到預期壓力,啓勱壓力的機器性能,壓力工具是否有異常鏈接關閉,壓力工具如何處理異常,長鏈接短鏈接,併發的個數
- 工具運行環境——壓力機器的帶寬,是否跨機房
- 被測系統相關
- 機器性能——系統所在機器性能,機器網絡帶寬,機器的內存,sd卡,硬盤
- 系統自己——系統的下游模塊的性能,系統的配置,系統的數據量,系統的特色狀態(充cache,dump,merge),系統的部署,程序的bug
- 環境相關
- 操做系統相關—— 是否和線上一致,內核版本,刷髒頁時間,有沒有調用directIO
- 查看系統狀態——Ps,top,/proc/pid/*, vmstat,netstat
歡迎關注本站公眾號,獲取更多信息