軟件測試中的BUG

文章目錄

  • 軟件測試的生命周期
  • Bug
    • Bug 的概念
    • 描述 Bug 的要素
    • 案例
    • Bug 級別
    • Bug 的生命周期
    • 與開發產生爭執怎么辦?【高頻面試題】
      • 先檢查自身,Bug 是否描述的不清楚
      • 站在用戶角度考慮并拋出問題
      • Bug 的定級要有理有據
      • 提?自身技術和業務水平,做到不僅能提出問題,還能構給出解決的思路或方案

軟件測試的生命周期

軟件測試貫穿軟件的整個生命周期。

軟件測試的生命周期是指測試流程,這個流程是按照?定順序執行的?系列特定的步驟,去保證產品質量符合需求。在軟件測試生命周期流程中,每個活動都按照計劃的系統的執行。每個階段有不同的?標和交付產物。

各階段具體內容:

  1. 需求分析:
    1. **用戶角度:**評估軟件需求是否合理,確保滿足用戶的真實需求
    2. **技術角度:**評估需求在技術上是否可行,是否還有優化空間
    3. **測試角度:**檢查是否存在業務邏輯錯誤、冗余、沖突等問題
  2. 測試計劃:
    1. **制定測試計劃:**確定測試的時間表,包括什么時候開發測試、什么時候結束測試、耗時多久
  3. 測試設計與開發:
    1. 參考需求?檔、技術?檔等編寫測試用例
    2. 寫測試?檔,明確標注使用到的測試方法,測試工具,測試形式等等
  4. 測試執行:
    1. 充分利用測試用例和測試工具對項?盡可能做到全方?的測試覆蓋
  5. 測試評估:
    1. 測試是否通過,本次測試是否有遺留的 Bug,最終測試人員需要產出?個測試報告
  6. 上線:
    1. 項?測試結束后,將項?發布到線上環境
    2. 測試人員需要跟蹤上線,并測試線上環境下軟件的運行是否正確
  7. 運行維護:
    1. 測試人員需要參與項?的實施工作。測試人員對項?產品的業務和操作?常了解,加上測試人員的溝通表達能??般都?較強,所以測試人員可以參與用戶使用軟件的培訓,在試運行項?時收集問題并及時反饋給相關負責人

Bug

Bug 的概念

定義:?個計算機 Bug 指在計算機程序中存在的?個錯誤(error)、缺陷(flaw)、疏忽(mistake)或者故障(fault),這些 Bug 使程序?法正確的運行。Bug 產生于程序的源代碼或者程序設計階段的疏忽或者錯誤。準確的來說:

  1. 當且僅當**規格說明(軟件需求文檔)**是存在的并且正確,程序與規格說明之間的不匹配才是錯誤。
  2. 當需求規格說明書沒有提到的功能,判斷標準以最終用戶為準:當程序沒有實現其最終用戶合理預期的功能要求時,就是軟件錯誤。

描述 Bug 的要素

為什么描述 Bug 還有要素要求?因為人們在編寫?檔的時候,經常會出現自己想表達的內容和寫出來的內容南轅北轍的現象。

例如,Bug 描述為:瀏覽器打開鏈接失敗。該描述下,沒有明確說明哪個瀏覽器,失敗的具體表現是什么,對于開發人員來說?法捕捉到更多有效的信息,會造成溝通效率低下,工作質量低下等問題。

**描述Bug的基本要素:問題出現的版本、問題出現的環境、問題出現的步驟、預期結果、實際結果。**
  1. 問題出現的版本:

開發人員需要知道出現問題的版本,才能夠獲取對應版本的代碼來重現故障,并且版本的標識也有利于統計和分析每個版本的質量。

  1. 問題出現的環境:

環境分為硬件環境和軟件環境,如果是 web 項目,需要描述瀏覽器版本,客戶機操作系統等;如果是 app 項目,需要描述機型、分辨率、操作系統版本等。詳細的環境描述有利于故障的定位。

  1. 問題出現的步驟:

描述問題重現的最短步驟。

  1. 預期結果:

要讓開發人員指導怎么樣才是正確的,尤其要以用戶的角度來描述程序的行為是怎樣的。如果是依據需求提出的故障,能寫明需求的來源是最好的。

要相信:測試人員是最懂需求的。

  1. 實際結果:

描述問題實際出現的現象。

注意:

  • 某些公司會有一些其他的要求,例如故障的分類:功能故障,界面故障,兼容性故障等。有些有優先級的分類,嚴重影響測試需要開發人員優先修改的,可以設置優先級為高。
  • 不要把多個 Bug 放到一起:在無法確認是同一段代碼造成的故障時,不要將 Bug 放在一起提交。

案例

  1. 問題出現的版本:?歌瀏覽器版本 133.0.6943.127(正式版本) (64 位)
  2. 問題出現的環境:Windows 11 專業版
  3. 問題出現的步驟:
    1. 打開谷歌瀏覽器
    2. 輸入網址:https://www.101eduyun.com/sunrise/login/login.do
    3. 等待頁面第一個背景圖上的二維碼渲染完成
  4. 預期結果:小程序二維碼不會被登錄模塊遮擋,二維碼可以正常掃描
  5. 實際結果:小程序二維碼被登錄模塊遮擋,二維碼不可以正常掃描

Bug 級別

通過定義 Bug 的級別,能夠明確看出問題的嚴重程度。工作中開發人員通常需要按照 Bug 的級別來分配優先級來處理 Bug,除此之外,通過 Bug 級別也能夠體現出開發人員的開發質量。

**Bug 級別的定義每個公司都不一致,在定義級別之前需要查看公司規范。**?般分為:崩潰、嚴重、?般、次要。

  1. 崩潰:
    1. 阻礙開發或測試工作的問題;
    2. 造成系統崩潰、死機、死循環,導致數據庫數據丟失,與數據庫連接錯誤,主要功能喪失,基本模塊缺失等問題。
    3. 如:代碼錯誤、死循環、數據庫發生死鎖、重要的?級菜單功能不能使用等(該問題在測試中較少出現,?旦出現應立即中?當前版本測試)。
  2. 嚴重:
    1. 系統主要功能部分喪失、數據庫保存調用錯誤、用戶數據丟失,一級功能菜單不能使用但是不影響其他功能的測試。
    2. 功能設計與需求嚴重不符,模塊無法啟動或調用,程序重啟、自動退出,關聯程序間調用沖突,安全問題、穩定性等。
    3. 如:軟件中數據保存后數據庫中顯示錯誤,用戶所要求的功能缺失,程序接口錯誤,數值計算統計錯誤等(該等級問題出現在不影響其他功能測試的情況下可以繼續該版本測試)。
  3. 一般:
    1. 功能沒有完全實現但是不影響使用,功能菜單存在缺陷但不會影響系統穩定性。
    2. 如:操作時間長、查詢時間長、格式錯誤、邊界條件錯誤,刪除沒有確認框、數據庫表中字段過多等。
    3. 該問題實際測試中存在最多。
  4. 次要:
    1. 界面、性能缺陷,建議類問題,不影響操作功能的執行,可以優化性能的方案等。
    2. 如:錯別字、界面格式不規范,頁面顯示重疊、不該顯示的要隱藏,描述不清楚,提示語丟失,文字排列不整齊,光標位置不正確,用戶體驗感受不好,可以優化性能的方案等。
    3. 此類問題在測試初期較多,優先程度較低;在測試后期出現較少,應及時處理 。

Bug 的生命周期

測試人員在執行測試的過程中如有發現 Bug,需要在對應的 Bug 管理平臺來創建 Bug(Bug 生命起源),創建好的 Bug 需要被開發人員修復,以及測試人員的持續跟蹤和測試。

  • New:新發現的 Bug,未經評審決定是否指派給開發人員進行修改。
  • Open:確認是 Bug,并且認為需要進行修改,指派給相應的開發人員。
  • Fixed:開發人員進行修改后標識成修改狀態,有待測試人員的回歸測試驗證。
  • Rejected:如果認為不是 Bug,則拒絕修改。
  • Delay:如果認為暫時不需要修改或暫時不能修改,則延后修改。
  • Closed:修改狀態的 Bug 經測試人員的回歸測驗,驗證通過則關閉 Bug。
  • Reopen:如果經驗證Bug仍然存在,則需要重新打開Bug,開發人員重新修改。
  • 無效的Bug:open->closed open-rejected-closed

與開發產生爭執怎么辦?【高頻面試題】

在測試工作中,最常遇到的是測試人員和開發人員的 PK,測試經理還會和項?經理、產品經理的 PK 進度、質量。作為?名測試人員,要理性處理與開發人員的沖突。

先檢查自身,Bug 是否描述的不清楚

如果能正確地、?質量地錄入?個 Bug,那么基本上已經成功地與開發人員溝通了?大半的關于 Bug 的信息。但是總會有“書難達意”的時候,這時就需要測試人員主動與開發人員進行溝通了。

如果測試人員發現在寫完?個缺陷后,好像還有很多關于 Bug 的信息沒有表達出來,或者很難用書?語言表達出來時,就應該在提交 Bug 后,?上找相關的程序員解釋剛才錄入的 Bug,確保程序員明? Bug 描述的意思,而不要等到開發人員找自己了解更多的信息。

站在用戶角度考慮并拋出問題

應該讓開發人員了解到 Bug 對用戶可能造成的困擾,這樣才能促使開發人員更加積極地、?質量地修改 Bug。在爭執時,可以問?句:如果你是用戶,你可以接受么?

Bug 的定級要有理有據

Bug 定級時,不僅要參考 Bug 定級描述文檔,還要考慮 Bug 是否會影響到流程,往往用戶的 Bug 級別和我們的是有區別的,需站在用戶的角度定考慮定位級別。

提?自身技術和業務水平,做到不僅能提出問題,還能構給出解決的思路或方案

能夠提出問題,并給出解決問題的思路或方案,這樣會讓人更加信服。

在工作中,資深測試工程師和初級測試工程師提出的同?個 Bug,兩者的結果完全不同,最大的差別是資深測試工程師往往會提出解決方案。而?此以往,權威性逐漸的建立起來,開發人員看到 Bug 的第?反應,就是這是?個 Bug,而不是這是?個 Bug嗎?

注意:可以給出解決方案,但是不能喧賓奪主,命令式讓開發人員按照自己的想法來修改。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71235.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71235.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71235.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

泵吸式激光可燃氣體監測儀:快速精準守護燃氣管網安全

在城市化進程加速的今天,燃氣泄漏、地下管網老化等問題時刻威脅著城市安全。如何實現精準、高效的可燃氣體監測,守護“城市生命線”,成為新型基礎設施建設的核心課題。泵吸式激光可燃氣體監測儀,以創新科技賦能安全監測&#xff0…

第J3-1周:DenseNet算法 實現乳腺癌識別

文章目錄 一、前言二、前期準備1.設置GPU2.劃分數據集 三、搭建網絡模型1.DenseLayer模塊2.DenseBlock模塊3.Transition模塊4.構建DenseNet5.構建densenet121 四、訓練模型1.編寫訓練函數2.編寫測試函數3.正式訓練 五、結果可視化1.Loss與Accuracy圖2.模型評估 總結&#xff1a…

【JAVA面試題】== 和 equals() 的區別與使用場景

在 Java 面試中, 和 equals() 的區別是一個高頻考點。理解它們的底層原理和使用場景,對于掌握 Java 基礎知識至關重要。本文將從 基本概念、底層實現 和 實際應用 三個方面,深入解析 和 equals() 的區別。 1. 基本概念 1.1 運算符 作用&a…

-bash: lsof: command not found

一、問題說明 執行如下命令時報錯: # lsof |grep deleted > deleted_file -bash: lsof: command not found二、處理方法 # yum -y install lsof安裝完成后可成功執行上面的命令。

攝像頭應用編程(三):多平面視頻采集

文章目錄 1、前言2、環境介紹3、步驟4、應用程序編寫5、測試5.1、編譯應用程序5.2、運行應用程序 6、總結 1、前言 在查看攝像頭類型時,大致可以分為兩類:Video Capture 和 Video Capture Multiplanar。 本次應用程序主要針對類型為Video Capture Multi…

本地部署 Traefik 的完整教程

Traefik 是一款現代化的反向代理和負載均衡工具,專為云原生環境設計。它支持自動服務發現、動態配置更新以及多種后端(如 Docker、Kubernetes、Consul 等)。本教程將指導你如何在本地部署 Traefik,并配置其作為反向代理和負載均衡器。 1. 準備工作 在開始之前,請確保你的…

三維數據可視化與表面重建:Marching Cubes算法的原理與應用

1. 引言 隨著現代醫學影像技術的飛速發展,三維數據的可視化與重建已成為醫學研究、臨床診斷和手術規劃的重要工具。在眾多三維重建算法中,Marching Cubes算法因其高效、穩定的特性成為從離散數據場中提取等值面的經典方法。本報告將深入探討Marching Cu…

MySql面試總結(二)

WHERE 子句優化 截至2024年7月,MySQL最新穩定版本是8.2,并不存在MySQL 8.4 。下面從常見的幾個方面為你介紹 MySQL 8.x 中 WHERE 子句的優化方法: 1. 確保使用索引 原理:索引可以加快數據的查找速度,當 WHERE 子句中的條件列有索引時,MySQL 可以直接定位到符合條件的數…

【圖論】判斷圖中有環的兩種方法及實現

判斷圖中有環的兩種方法及實現 在圖論中,檢測有向圖是否存在環是常見問題。本文將介紹兩種主流方法:DFS三色標記法和拓撲排序(Kahn算法),并提供對應的C代碼實現。 方法一:DFS三色標記法 核心思想 通過深…

11.【線性代數】——矩陣空間,秩1矩陣,小世界圖

十一 矩陣空間,秩1矩陣,小世界圖 1. 矩陣空間交集 和 和集 2. 所有解空間3. r 1 r1 r1的矩陣4. 題目5. 小世界圖 空間:組成空間的元素的線性組合都在這個空間中。 1. 矩陣空間 舉例:矩陣空間( M M M 所有3x3的矩陣&…

【網絡安全 | 滲透測試】GraphQL精講一:基礎知識

未經許可,不得轉載, 文章目錄 GraphQL 定義GraphQL 工作原理GraphQL 模式GraphQL 查詢GraphQL 變更(Mutations)查詢(Queries)和變更(Mutations)的組成部分字段(Fields)參數(Arguments)變量別名(Aliases)片段(Fragments)訂閱(Subscriptions)自省(Introspecti…

關于虛擬環境中遇到的bug

conda和cmd介紹 介紹 Conda 概述: Conda是一個開源包管理系統和環境管理系統,尤其適用于Python和R語言的開發環境。它允許用戶創建獨立的虛擬環境,方便地管理依賴包和軟件版本。 特點: 環境管理:可以創建、導入、導…

基于nginx的灰度發布解決方案

Nginx 在灰度發布中可以看作是一個精確的流量調度員,它充當著客戶端與后端服務器之間的中介。通過配置好的規則,Nginx 會將用戶請求智能地引導到不同版本的服務上。這樣,Nginx 可以根據具體需求靈活地分配流量,確保新版本逐步推向…

網絡安全法與等級保護 PPT 精華匯總

資源描述 本資源文件為《網絡安全法與等級保護》的PPT精華匯總,內容涵蓋了網絡安全法與等級保護的總體框架及相關標準規范。該PPT詳細介紹了網絡安全法與等級保護的各個章節和條款,并提供了基礎類和應用類的相關標準文件,幫助讀者全面了解和…

uni-app開發安卓和iOS 打包流程(云打包)

首先講一下安卓打包的流程,之后再說ios。打包安卓和iOS打包的流程有些不同,安卓打包相對來說比較簡單,而iOS打包需要更多的準備工作,如申請開發者賬號、生成證書等。 一、安卓打包 1、安卓打包直接在window電腦上就可以操作,打開hbuilderx,找到你的項目選中,然后點擊發…

攝像頭應用編程(四):ARM Linux LCD實時預覽UVC攝像頭畫面

文章目錄 1、前言2、環境介紹3、步驟4、應用程序編寫4.1、lcd初始化4.2、攝像頭初始化4.3、jpeg解碼4.4、開啟攝像頭4.5、完整的程序如下 5、測試5.1、編譯應用程序5.2、運行應用程序 6、總結 1、前言 本次應用程序主要針對支持MJPEG格式輸出的UVC攝像頭。 2、環境介紹 rk35…

藍橋與力扣刷題(藍橋 k倍區間)

題目:給定一個長度為 N 的數列,A1,A2,?AN?,如果其中一段連續的子序列 Ai,Ai1,?Aj( i≤j ) 之和是 K 的倍數,我們就稱這個區間[i,j] 是 K 倍區間。 你能求出數列中總共有多少個 K 倍區間嗎? 輸入描述 第一行包含兩…

json介紹、python數據和json數據的相互轉換

目錄 一 json介紹 json是什么? 用處 Json 和 XML 對比 各語言對Json的支持情況 Json規范詳解 二 python數據和json數據的相互轉換 dumps() : 轉換成json loads(): 轉換成python數據 總結 一 json介紹 json是什么? 實質上是一條字符串 是一種…

PAT乙級真題 / 知識點(1)

引言: 起初,報PAT是伙伴推薦。但在報名路途中,有朋友說,花時間到這上面不值得,還有學長說沒聽過,野雞杯。 我一笑而過,我可能就是偏執,我就是想報。隨著刷真題,我的基礎…

單細胞分析(20)——inferCNV分析

InferCNV分析筆記 1. 分析目標 InferCNV(Inference of Copy Number Variations)是一種基于單細胞轉錄組數據推斷**拷貝數變異(CNV)**的方法,推測其基因組變異情況。 2. 數據準備 2.1 載入數據 library(Seurat) set…