軟件測試之缺陷管理

一、軟件缺陷的基本概念

1、軟件缺陷的基本概念主要分為:缺陷故障失效這三種。

(1)缺陷(defect):存在于軟件之中的偏差,可被激活,以靜態的形式存在于軟件內部,相當于bug;

(2)故障(Fault):軟件運行中出現的狀態,可引起意外情況,若不加處理,可產生失效,是一個動態行為;

(3)失效(Failure):軟件運行時產生的外部異常行為結果,表現與用戶需求不一致,功能能力終止,用戶無法完成所需要的應用。

二、軟件缺陷的三個基本概念的相互關系

1、bug一定會被激活嗎?激活后一定表現為故障嗎?

答案是不一定,任何一個軟件即便測試的非常嚴格,在發布后也會存在遺漏的bug,但是這些bug在用戶使用的時候不一定會被激活,因為有些bug隱藏的比較深,用戶在使用的過程中不可能觸發這些bug,所以這些bug一直隱藏在軟件內部,沒有被激活,也就是說即使軟件內部有bug,軟件也可以正常運行,但也有可能,在某些情況下,這些bug會被激活,表現為故障*。

2、故障一定會導致失效嗎?

答案也是不一定,開發人員在做設計的時候,更多的考慮了在軟件使用期間可能出現的故障,然后針對這些故障采取的一些預防的措施,比如:數據庫會出現的數據丟失的問題,為了避免這種失效的出現,產品開發人員在做設計的時候,也許會采取數據庫時時備份的方式,也就是在本地有一個數據庫,在異地也有一個數據庫,這個地方的數據庫會實現時時的備份,當其中一個數據庫出現了異常,那另外一個數據庫還可以啟動工作,所以說,缺陷不一定會導致故障,故障不一定會導致失效。

三、軟件缺陷報告單

缺陷報告單是任何缺陷修改的一個起始,也就是我們測試人員在進行測試執行的時候,發現了一個缺陷,發現缺陷后,我們不要口頭和開發人員交流,因為口頭的交流不僅沒有任何的約束力,而且有可能表達不清楚,所以我們要把缺陷落實在紙面上,也就是要測試人員填寫缺陷報告單。

缺陷報告單的作用:
?
1、測試執行過程中,發現缺陷失效后(不一定是失效,也許是故障,一般來說這個缺陷在測試階段被發現往往表現為產品失效),提出書面的報告,提供給開發人員作為定位缺陷的依據,也作為日后缺陷度量的數據依據,開發人員接到缺陷報告單后,他會根據缺陷報告單上描述的缺陷外在表現來重現這個問題,然后找出這個問題,也就是缺陷產生的根源。
?
2、缺陷報告還可以作為我們日后缺陷度量的數據依據,度量是對整個產品進行考核,比如說,我們的軟件在什么時候可以發布,什么時候可以交付給客戶等等問題,這個時候我們往往從缺陷度量的數據來看,比如我們子啊最后一輪進行測試的過程中,每千行代碼只有0.1個缺陷,說明我們產品的質量已經非常高了,而且遺留的缺陷也就非常少了,這個時候就可以發布產品了,所以這個缺陷的統計數據時非常重要的,它可以作為缺陷度量的依據。

四、軟件缺陷管理的目的

缺陷管理的目的是:對各個階段測試發現的缺陷進行跟蹤管理,以保證各級缺陷的修復率達到標準,主要實現以下目標:

(1)保證信息的一致性;

(2)保證缺陷得到有效的跟蹤,縮短溝通時間,解決問題更高效;

(3)收集缺陷數據并進行數據分析,作為缺陷度量的依據。

五、軟件缺陷管理工具

軟件缺陷管理的流程一定要有相關的軟件進行支撐,否則軟件缺陷管理的流程是無法正常運行的,就類似于我們在做開發的過程中,開發JAVA相關的程序我們就需要JBOSS這樣的工具,,如果我們開發C++就需要Visual C++工具,在軟件缺陷跟蹤中我們也需要一些工具,比如商用工具Mercury Quality Center是目前非常強大的軟件測試管理工具,它的功能包括業務管理、測試用例的管理、缺陷的分析及測試腳本的管理,所有缺陷僅僅是其一個點;Rational ClearQuest它主要用于變更控制和缺陷管理這一塊,此外還有Bugzilla,Mantis,Jira三個開源工具。

使用商用的軟件缺陷管理工具或軟件測試工具,好處是由商家提供一系列支持、工具的相關制定以及后期的升級服務,所以商用軟件缺陷管理工具從整體的易用性和可用性來看,要比開源工具好得多,開源工具最大的好處就是便宜,不用去花錢購買,但是易用性和可用性相對來說就弱一些。

六、軟件缺陷管理的相關角色

軟件開發和軟件測試的任何一個流程,都應該有流程的入口,流程的出口,還有流程的具體過程以及參與到這些過程中的相關角色。

在軟件跟蹤的流程當中,有以下幾類角色

(1)軟件開發人員;

(2)軟件測試人員;

(3)軟件測試項目經理;

(4)軟件開發項目經理;

(5)CCB(Change Control Board):變更控制委員會。所謂的變更控制委員會,他是在開發人員和測試人員對缺陷出現爭議的時候,做出最后的裁判;

(6)配置管理員:就是測試人員提交BUG,開發人員修改,修改完check in ,那么在check in這個過程中需要配置管理員參與進來,只有經過配置管理員授權,開發人員才有資格把代碼從本地Check in到服務器中去,所以配置管理員在軟件缺陷管理中也很重要。

軟件缺陷報告的內容以及缺陷的相關屬性

一、軟件缺陷報告的內容

1、Bug Title/Summary:缺陷標題/簡單描述

對測試執行過程中實際出現的問題的描述,盡量要簡單概要。

2、Repro Step:重現步驟

(1)描述問題的基本環境,包括操作系統、硬件環境、網絡環境、被測試軟件的運行環境;

(2)簡單概括的描述清楚軟件出現異常時,測試人員的操作步驟和使用數據;

(3)缺陷原因的分析;比如說:因為不支持字符集,而導致的亂碼...等等。

(4)要寫清楚,重復操作了多少次,這個bug依然出現。(不能操作一次就提交bug,因為有可能是自己操作失誤。)

(5)相關附件:為了讓開發人員更好的了解Bug。 (如果從GUI界面上可以反映出軟件的異常,可以截取界面,粘貼在問題單上 或者 日志、數據包);

(6)屬性(在下面詳細說明):缺陷報告中除了對缺陷的基本描述外,我們還要對其屬性進行說明。

二、軟件缺陷的相關屬性

測試人員在提交缺陷的時候,需要把缺陷,發現缺陷的過程以及缺陷的一些表現都要描述出來,除此之外這些缺陷還有一定的相關屬性,也要填寫出來。

下面我們列舉六個比較重要的缺陷屬性。

屬性1、缺陷發現人

在提交缺陷的時候測試人員一般是缺陷的發現人,這個字段也很重要,比如到QC里面統計一下本季度哪一個測試人員發現的BUG比較多。

屬性2、缺陷發現時間

缺陷發現時間也是一個統計的計數點,或者數據點,缺陷趨勢圖就是按照時間軸來排列的,如果缺少了缺陷發現時間,這個圖是做不出來的,沒有缺陷趨勢圖,我們就不能進行產品的度量,就不知道產品在什么時候發布是比較合適的。

屬性3、缺陷狀態

軟件缺陷狀態這個屬性是非常重要的,在任何的軟件報告中,這一個屬性是一定要有的。
下面我們主要列出了在QC中常用的幾種狀態:

New:缺陷的初始狀態;Open:開發人員開始修改缺陷;Fixed:開發人員修改缺陷完畢;Closed:回歸測試通過;Reopen:回歸測試失敗;Postpone:推遲修改;Rejected:開發人員認為不是程序問題,不用修改;Duplicate:與已提交的Defect重復;Abandon:被Reject和Duplicate的Defect,測試人員確認后的確不是問題,將Defect置為此狀態。

New是缺陷的初始狀態,所謂初始狀態就是發現問題,發現問題,提交問題后,這個缺陷就處于New狀態;

提交給開發人員后,開發人員接受這個問題,那么就把這個缺陷的狀態就更改為Open;

開發人員修改缺陷之后,就會把這個缺陷的狀態改為Fixed;

然后提交給測試人員,測試人員進行回歸測試,回歸測試通過,就把狀態改為Closed;

我們可以看到New--Open--fixed--closed這個狀態是一個比較理想的缺陷流程,也就是測試人員提交問題,開發人員接受并修改問題,然后測試人員進行回歸測試通過。

但是我們一般在缺陷跟蹤流程當中也會遇到一些問題:

1、比如說回歸測試失敗,這個狀態就是Reopen,也就是說測試人員在進行回歸測試的時候失敗了,就要把這個缺陷的狀態改為Reopen,然后再提交給開發人員進行修改,開發人員修改完之后,把這個缺陷的狀態改為Fixed,然后又提交給測試人員,測試人員再一次進行回歸測試,直到回歸測試成功,把這個缺陷的狀態改為Closed。

2、Postpone:推遲修改,比如當我們把問題提交給開發人員的時候,開發人員覺得也接受這個問題,但是暫時無法修改,那就可以把這個問題置為推遲狀態,此時這個缺陷的狀態就是Postpone。

3、當我們提交的Defect與別熱提交的相同時,缺陷就被置為Duplicate狀態。

4、比如說開發人員覺得測試人員提交的不是問題,不用修改,可以將這個BUG置為Reject狀態。

5、被Reject和Duplicate的Defect,我們最終要把它置為Abandon狀態。

屬性4、缺陷嚴重程度(Severity)

缺陷的嚴重程度就是:站在用戶的交付,bug出現之后對軟件質量的破壞程度,也就是說這個軟件缺陷的存在將對這個軟件的功能和性能產生怎么樣的影響。

一般來說,軟件的嚴重程度分為五個等級:

第一個等級:致命的軟件缺陷(Fatal)

造成系統或應用程序崩潰、死機、系統掛起,或造成數據丟失,主要功能完全喪失,導致本模塊以及相關模塊異常等問題。如代碼錯誤,死循環,數據庫發生死鎖、與數據庫連接錯誤或數據通訊錯誤,未考慮異常操作,功能錯誤等。
第二個等級:嚴重錯誤的軟件缺陷(critical)

嚴重錯誤的軟件缺陷(critical):系統的主要功能部分喪失、數據不能保存,系統的次要功能完全喪失。問題局限在本模塊,導致模塊功能失效或異常退出。如致命的錯誤聲明,程序接口錯誤,數據庫的表、業務規則、缺省值未加完整性等約束條件。
第三個等級:一般錯誤的軟件缺陷(major)

一般錯誤的軟件缺陷(major):次要功能沒有完全實現但不影響使用。如:提示信息不太準確,或用戶界面差,操作時間長,模塊功能部分失效等,打印內容、格式錯誤,刪除操作未給出提示,數據庫表中有過多的空字段等。
第四個等級:較小錯誤的軟件缺陷(Minor)

較小錯誤的軟件缺陷(Minor),使操作者不方便或遇到麻煩,但它不影響功能性的操作和執行,如錯別字、界面不規范(字體大小不統一,文字排列不整齊,可輸入區域和只讀區域沒有明顯的區分標志),輔助說明描述不清楚。
第五個等級:建議問題的軟件缺陷(Enhancemental)

建議問題的軟件缺陷(Enhancemental):由問題提出人對測試對象的改進意見或測試人員提出的建議、質疑。

屬性5、缺陷的優先級(Priority)

站在 開發/項目 的角度,綜合權衡修改bug的時間、成本、技術和風險,決定bug修改的先后順序。

優先級每個公司都有自己的標準,例如某公司的標準為:
?
P0:必須當天修改,8小時內修改;(優先級最高的)
?
P1:1~2內修改;
?
P2:2~4天內;
?
P3:一周內;
?
P4:發布周期內或者不修改。

屬性6、缺陷的類型

1、質量特性的角度

(1)功能;(2)性能;(3)安全性;(4)易用性;(5)可靠性。

2、功能性角度

(1)錯誤(Error);(2)遺漏(Missing);(3)多余的(Extra);(4)可優化(Improvement /Enhancement /suggestion)

3、缺陷產生的原因:

(1)需求不清晰,導致設計目標偏離客戶端需求,從而引起功能或產品特征上的缺陷;

(2)對程序邏輯路徑或數據范圍的邊界考慮不夠周全,漏掉某些邊界條件,造成容量或邊界錯誤;

(3)新技術的應用,可能涉及技術或系統兼容的問題,事先沒有考慮到;

(4)可能由于不支持字符集,而導致的亂碼。

等等的一些原因。

屬性7、缺陷所屬版本

在軟件開發測試的過程中,版本的管理是非常重要的,也就屬于配置管理的范疇,測試人員開始測試的時候肯定從配置庫里面提取最新的版本;

比如說1.0版本,那么測試完成之后,把問題提交給開發人員,開發人員對1.0版本的源代碼進行修改,那么這個修改完之后的版本肯定是1.0的下一個版本,也就是1.1版本,修改完之后測試人員要進行回歸測試,這個時候測試人員進行回歸測試的版本一定是最新版本,即1.1版本。
細分的話,缺陷所屬版本還應該有三個屬性:(1)發現缺陷的版本;(2)修改bug的版本;(3)回歸測試的版本。

所以說,只有缺陷所屬版本在開發過程中規定明確落實下來,我們的產品質量才能有保證,不會造成開發和測試的混亂。

屬性8、缺陷修改日期

最后一個缺陷的屬性是缺陷修改日期,是主要對開發人員進行考核的參數,比如測試人員在3月份提交了一個測試報告單,開發人員在12月份才修改這個問題,由此可見,開發人員修改這個問題的響應時間太長。所以缺陷修改日期往往可以作為績效考核或者其他的一些數據統計的基礎。

三、范例:優秀的缺陷跟蹤單###

對WPS或者OFFICE進行測試時,發現錯誤。

簡單描述:

--Arial 、Wingdings 和 Symbol字體會破壞新文體。

詳細描述:

--軟件測試環境為Windows 2000 sp4

--啟動WordEdit編輯器,然后創建新文件;

--輸入四行文本,重復輸入”welcome to shanghai university“

--選中這四行文本,然后選擇下拉菜單,并選擇Arial字體;

--所有文本被轉換成控制字符、數字、和其他明顯的隨機二進制數據;

--重復三次,結果都一樣。

相關附件

--附件1:變換格式之前的文檔;

--附件2:變換格式之后的文檔;

軟件缺陷初步分析:

--可能是格式問題,保存文件,關閉WordEdit并重新打開文件,但是數據依然被破壞;

--在改變字體前保存文件防止錯誤;(建議性的)

--對現存文件進行上述錯誤,錯誤不再發生;

--只在Windows 2000下發生,而不出現在Solaris、Mac和其他Windows系統。


????????????? 【下面是我整理的2023年最全的軟件測試工程師學習知識架構體系圖】


一、Python編程入門到精通

二、接口自動化項目實戰

三、Web自動化項目實戰


四、App自動化項目實戰

五、一線大廠簡歷


六、測試開發DevOps體系

七、常用自動化測試工具


八、JMeter性能測試

九、總結(尾部小驚喜)

生命不息,奮斗不止。每一份努力都不會被辜負,只要堅持不懈,終究會有回報。珍惜時間,追求夢想。不忘初心,砥礪前行。你的未來,由你掌握!

生命短暫,時間寶貴,我們無法預知未來會發生什么,但我們可以掌握當下。珍惜每一天,努力奮斗,讓自己變得更加強大和優秀。堅定信念,執著追求,成功終將屬于你!

只有不斷地挑戰自己,才能不斷地超越自己。堅持追求夢想,勇敢前行,你就會發現奮斗的過程是如此美好而值得。相信自己,你一定可以做到!

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!

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

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

相關文章

【隱馬爾可夫模型】隱馬爾可夫模型的觀測序列概率計算算法及例題詳解

【隱馬爾可夫模型】用前向算法計算觀測序列概率P(O|λ)??????? 【隱馬爾可夫模型】用后向算法計算觀測序列概率P(O|λ) 隱馬爾可夫模型是關于時序的概率模型,描述由一個隱藏的馬爾可夫鏈…

Elbie勒索病毒:最新變種.elbie襲擊了您的計算機?

引言: 在數字時代,.Elbie勒索病毒的威脅越發突出,對個人和組織的數據安全構成了巨大挑戰。本文將深入介紹.Elbie勒索病毒的特征,有效的數據恢復方法,以及一系列預防措施,幫助您更好地保護數字資產。當面對…

線性規劃-單純形法推導

這里寫目錄標題 線性規劃例子啤酒廠問題圖解法 單純形法數學推導將問題標準化并轉為矩陣形式開始推導 實例圖解法單純形法 線性規劃例子 啤酒廠問題 每日銷售上限:100箱啤酒營業時間:14小時生產1箱生啤需1小時生產1箱黑啤需2小時生啤售價:2…

從零開發短視頻電商 AWS OpenSearch Service開發環境申請以及Java客戶端介紹

文章目錄 創建域1.創建域2.輸入配置部署選項數據節點網絡精細訪問控制訪問策略 獲取域端點數據如何插入到OpenSearch ServiceJava連接OpenSearch Servicespring-data-opensearchelasticsearch-rest-high-level-clientopensearch-rest-clientopensearch-java 因為是開發測試使用…

[Linux] nginx的location和rewrite

一、Nginx常用的正則表達式 符號作用^匹配輸入字符串的起始位置$ 匹配輸入字符串的結束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”,但不能匹配“o”?匹配前面的字…

Vue3 setup 頁面跳轉監聽路由變化調整頁面訪問位置

頁面跳轉后頁面還是停留在上一個頁面的位置&#xff0c;沒有回到頂部 解決 1、router中路由守衛中統一添加 router.beforeEach(async (to, from, next) > {window.scrollTo(0, 0);next(); }); 2、頁面中監聽頁面變化 <script setup> import { ref, onMounted, wat…

@Autowired 找不到Bean的問題

排查思路 檢查包掃描&#xff1a;查詢的Bean是否被spring掃描裝配到檢查該Bean上是否配上注解&#xff08;Service/Component/Repository…&#xff09;如果使用第三方&#xff0c;檢查相關依賴是否已經安裝到當前項目 Autowired和Resource的區別 Autowired 是spring提供的注…

圖像清晰度 和像素、分辨率、鏡頭的關系

關于圖像清晰度的幾個知識點分享。 知識點 清晰度 清晰度指影像上各細部影紋及其邊界的清晰程度。清晰度&#xff0c;一般是從錄像機角度出發&#xff0c;通過看重放圖像的清晰程度來比較圖像質量&#xff0c;所以常用清晰度一詞。 而攝像機一般使用分解力一詞來衡量它“分解被…

linux通過命令切換用戶

在Linux中&#xff0c;你可以使用su&#xff08;substitute user或switch user&#xff09;命令來切換用戶。這個命令允許你臨時或永久地以另一個用戶的身份運行命令。以下是基本的用法&#xff1a; 基本切換到另一個用戶&#xff08;需要密碼&#xff09;&#xff1a;su [用戶…

APIFox:打造高效便捷的API管理工具

隨著互聯網技術的不斷發展&#xff0c;API&#xff08;應用程序接口&#xff09;已經成為了企業間數據交互的重要方式。然而&#xff0c;API的管理和維護卻成為了開發者們面臨的一大挑戰。為了解決這一問題&#xff0c;APIFox應運而生&#xff0c;它是一款專為API管理而生的工具…

【力扣100】189.輪轉數組

添加鏈接描述 class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""# 思路&#xff1a;三次數組翻轉nlen(nums)kk%nnums[:] nums[-k:] nums[:-k]思路就是&…

數據科學實踐:探索數據驅動的決策

寫在前面 你是否曾經困擾于如何從海量的數據中提取有價值的信息?你是否想過如何利用數據來指導你的決策,讓你的決策更加科學和精確?如果你有這樣的困擾和疑問,那么你來對了地方。這篇文章將引導你走進數據科學的世界,探索數據驅動的決策。 1.數據科學的基本原則 在我們…

第四屆傳智杯初賽(蓮子的機械動力學)

題目描述 題目背景的問題可以轉化為如下描述&#xff1a; 給定兩個長度分別為 n,m 的整數 a,b&#xff0c;計算它們的和。 但是要注意的是&#xff0c;這里的 a,b 采用了某種特殊的進制表示法。最終的結果也會采用該種表示法。具體而言&#xff0c;從低位往高位數起&#xf…

【linux】yum安裝時: Couldn‘t resolve host name for XXXXX

yum 安裝 sysstat 報錯了&#xff1a; Kylin Linux Advanced Server 10 - Os 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository ks10-adv-os:- Curl error (6): Couldnt resolve host nam…

在非Spring環境下Main方法中,怎么使用spring的ThreadPoolTaskScheduler啟動Scheduler?

作為Java開發人員&#xff0c;在使用spring框架的時候&#xff0c;如果想要獲取到線程池對象&#xff0c;可以直接使用spring框架提供的ThreadPoolxxx來獲取。那么在非spring環境下&#xff0c;main函數怎么使用ThreadPoolTaskScheduler呢&#xff1f;下面凱哥(凱哥Java:kaigej…

10.vue3項目(十):spu管理頁面的sku的新增和修改

目錄 一、sku靜態頁面的搭建 1.思路分析 2.代碼實現 3.效果展示

微信小程序 長按錄音+錄制視頻

<view class"bigCircle" bindtouchstart"start" bindtouchend"stop"><view class"smallCircle {{startVedio?onVedio:}}"><text>{{startVedio?正在錄音:長按錄音}}</text></view> </view> <…

排序算法:【選擇排序]

一、選擇排序——時間復雜度 定義&#xff1a;第一趟排序&#xff0c;從整個序列中找到最小的數&#xff0c;把它放到序列的第一個位置上&#xff0c;第二趟排序&#xff0c;再從無序區找到最小的數&#xff0c;把它放到序列的第二個位置上&#xff0c;以此類推。 也就是說&am…

軟件項目管理---胡亂復習版

范圍控制的一個重點是避免需求的不合理擴張。(√)一個任務原計劃2個人全職工作2周完成,而實際上只有一個人參與這個任務,到第二周末這個人完成了任務的75%,那么:BCWS = 4人周,ACWP = 2人周,BCWP = 3人周。CV = 1,SV = -1。 【在項目管理中,BCWS、ACWP和BCWP是用來衡量…

微服務測試是什么?

微服務測試是一種特殊的測試類型&#xff0c;因為它涉及到多個獨立的服務。以下是進行微服務測試的一般性步驟&#xff1a; 1. 確定系統架構 了解微服務架構對成功測試至關重要。確定每個微服務的職責、接口、依賴項和通信方式。了解這些信息可以幫助您更好地規劃測試用例和測…