軟件測試基礎之軟件缺陷處理

一、什么是缺陷

不滿足用戶確定需求、影響軟件功能實現的問題、故障
缺陷就是人們通常所說的bug。

ex.一下哪一種選項不屬于軟件缺陷___。
A.軟件沒有實現產品規格說明所要求的功能
B.軟件中出現了產品規格說明不應該出現的功能
C.軟件實現了產品規格說明沒有提到的功能
D.軟件實現了產品規格說明書所要求的功能但因受性能限制而未考慮可移植性問題

答案:D

二、缺陷的識別

缺陷的產生原因

  • 人員(用戶、設計、開發、測試、技術支持等)之間的溝通交流不夠,交流上有誤解或者根本不進行交流
  • 文檔不完善甚至沒有文檔(尤其是國內中小軟件企業)
  • 需求不斷電變化
  • 參與人員技術能力上的局限
  • 程序設計本身有誤
  • 軟件復雜度大,缺陷很難避免(例如Windows、Word)
  • 工期短,任務重,時間壓力大
  • 軟件開發工具與系統軟硬件的支持有局限

判斷缺陷的依據

  • 通過參考文檔來確認缺陷
  • 需求規格說明書
  • 概要設計、詳細設計
  • 用戶手冊
  • ...
  • 通過了解軟件行業標準、行業背景(或參考同類典型軟件)來發現缺陷
  • 通過溝通來確認和識別缺陷(問開發人員、問需求人員、問用戶... ...)

三、再現與優化缺陷

再現(又叫重現)與優化缺陷的必要性
優化缺陷并不是指優化缺陷本身,而是優化缺陷的再現步驟

為什么要再現與優化缺陷?
關于軟件中“隨機”出現的缺陷如何處理?

再現與優化缺陷的方法

  • 深入熟悉需求,從需求本身出發
  • 熟悉程序設計、從設計開發著手
  • 熟悉常用測試方法、手段、典型套路
  • 同一個缺陷用不同測試過程(含步驟、數據)多次驗證,分析缺陷的現象與成因,找出規律和最簡實現過程
  • 查找依賴關系和競爭條件
  • 不斷積累處理缺陷的經驗

四、怎樣有效記錄缺陷

保證重現缺陷

判斷一個缺陷報告撰寫好壞的簡單方法:讓非缺陷報告撰寫者(技術人員)依據缺陷報告重現缺陷,如果能簡單、迅速的重現缺陷,表明缺陷報告較好

分析故障——使用最少步驟重現缺陷

減少開發人員重復缺陷的時間
使開發人員更準確的定位缺陷

包含所有重現缺陷的必要步驟

測試人員假定常用的操作步驟開發人員不一定熟悉,省略了必要的步驟長處造成開發人員無法重現缺陷。

其他注意事項

方便閱讀

舉例:
概述:使用“記事本”僅保存“聯通”二字后再打開該文件,出現亂碼。
描述步驟:
1.點擊“開始” → “程序” → “附件” → “記事本” 打開記事本軟件;
2.僅輸入“聯通”二字,點擊“文件” → 保存;
3.在打開的“另存為”對話框中保存文件后退出(文件名、保存位置任意);
4.打開保存的文件,出現亂碼,不是“聯通”二字。

注意自己的語氣

舉例:
概述:“記事本”中“另存為”對話框中默認文件后綴寫成了“.txk”。
描述步驟:
1.點擊“開始” → “程序” → “附件” → “記事本” 打開記事本軟件;
2.僅輸入“聯通”二字,點擊“文件” → 保存;
3.在打開的“另存為”對話框中,默認文件文件后綴應該是“.txt”,你們開發人員是不是用腳后跟考慮問題的,居然寫成了“.txk”;

六、缺陷報告

缺陷報告是描述軟件缺陷現象和重現步驟地集合。
軟件缺陷報告Sottware Bug Report(SBR)或軟件問題報告Software Problem Report(SPR)

缺陷報告的作用

1.缺陷報告是軟件測試人員的工作成果之一,體現軟件測試的價值
2.缺陷報告可以把軟件存在的缺陷準確描述出來,便于開發人員修正
3.缺陷報告可以反映項目/產品當前的質量狀態,便于項目整體進度和質量控制
4.軟件測試缺陷報告是軟件測試的輸出成果之一,可以衡量測試人員的工作能力

缺陷報告的“5C”原則

  • 內容準確(Correct)
    每個組成部分的描述正確,不會引起誤解
  • 步驟簡潔(Concise)
    只包含必不可少的信息,不包括任何多余的內容
  • 內容清晰(Clear)
    每個組成部分的描述清晰,易于理解
  • 結構完整(Complete)
    包含重現該缺陷的完整步驟和其他本質信息
  • 風格一致(Consistent)
    按照一致的格式書寫全部缺陷報告

缺陷報告的內容

缺陷的標題
缺陷的的基本信息:
1.測試的軟件和硬件環境
2.測試的軟件版本
3.缺陷的類型
4.缺陷的嚴重程度
5.缺陷的處理優先級
復現缺陷的操作步驟
缺陷的實際結果描述
期望的正確結果描述
注釋文字和截取的缺陷圖像

缺陷的二八定理

在分析、設計、實現階段的復審和測試工作能夠發現和避免80%的缺陷,而系統測試又能找出其余缺陷中的80%,最后的4%的缺陷可能只有在用戶大范圍、長時間使用后才會暴露出來。

七、記錄缺陷與缺陷報告

  • 使用較少的、必要的操作步驟確保缺陷能夠重現
  • 記錄缺陷時要使用專業術語、注意書寫格式
  • 缺陷要言簡意賅、盡量一個缺陷一個報告
  • 對于實在不可重現的缺陷也需要報告,并且盡快報告
  • 不能夸大缺陷的數量和缺陷的級別
  • 及時記錄缺陷

八、缺陷的分類

按照嚴重程度分類、缺陷的優先級、缺陷的類型以及功能模塊等進行分類

按嚴重程度

致命錯誤:如數據丟失、死機、系統崩潰
嚴重錯誤:如功能未完成,功能完成不正確
一般錯誤:如功能不完善,界面問題等
建議(輕微):測試人員認為怎么處理更好一些的問題

按照修改優先級

立即修改
在本版本修改
在產品發發布前修改
在發布版本中可以存在的問題

按照缺陷類型

功能、壓力/負載、界面、兼容、易用、安裝/卸載、安全

按照功能模塊

功能模塊1
功能模塊2
功能模塊3
功能模塊4
......

缺陷報告的處理流程?

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

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

相關文章

Python實現透明隧道爬蟲ip:不影響現有網絡結構

作為一名專業爬蟲程序員,我們常常需要使用隧道代理來保護個人隱私和訪問互聯網資源。本文將分享如何使用Python實現透明隧道代理,以便在保護隱私的同時不影響現有網絡結構。通過實際操作示例和專業的解析,我們將帶您深入了解透明隧道代理的工…

TiDB 應急運維腳本,更加方便的管理TiDB集群

TiDB 應急運維腳本,更加方便的管理TiDB集群 使用方法 使用方法:[tidblocalhost ~]$ which tiup ~/.tiup/bin/tiup編輯腳本,MYSQL_PASSWD 和 PORT 根據實際替換 [tidblocalhost ~]$ vi ~/.tiup/bin/ti#version 1.1 #author guanguanglei ##…

Base64編碼-算法特別的理解

Base64 在DES加密和AES加密的過程中,加密的編碼會出現負數,在ascii碼表中找不到對應的字符,就會出現亂碼。為了解決亂碼的問題,一般結合base64使用 所謂Base64,即是說在編碼過程中使用了64種字符:大寫A到Z、…

【GO】配置環境使加速下載 go 模塊

問題 在使用 go 語言編譯時,需要安裝一些包,這些包在使用 go build 或 go install 時,go 自己去下載,但是會有網絡不通導致無法下載的問題 解決 配置 go 的環境變量 go env -w GOPROXYhttps://goproxy.io,direct

chartGPT生成:python中連接函數的使用

在Python中,連接函數用于將多個字符串拼接在一起。常見的連接函數有join和操作符。 join函數: strings ["Hello", "world", "!"] result " ".join(strings) print(result) # 輸出:Hello world …

Azure資源命名和標記決策指南

參考 azure創建虛擬機在虛擬機中選擇編輯標簽,并添加標記,點擊應用 3.到主頁中轉到所有資源 4. 添加篩選器并應用 5.查看結果,篩選根據給服務器定義的標簽篩選出結果。 參考鏈接: https://learn.microsoft.com/zh-cn/azure/cloud-adoption…

在Java中操作Redis(詳細-->從環境配置到代碼實現)

在Java中操作Redis 文章目錄 在Java中操作Redis1、介紹2、Jedis3、Spring Data Redis3.1、對String的操作3.2、對哈希類型數據的操作3.3、對list的操作3.4、對set類型的操作3.5、對 ZSet類型的數據(有序集合)3.6、通用類型的操作 1、介紹 Redis 的Java客…

基于Echarts的數據可視化大屏

本項目學習于b站up主(視頻鏈接) up主分享的資料,gitee倉庫: 其中有筆記,筆記鏈接 項目總結 項目主要分為前端頁面的布局和Echarts圖表的嵌入,頁面主要就是css較為繁瑣,圖表畢竟官網有模板&…

Python 2.x 中如何使用pandas模塊進行數據分析

Python 2.x 中如何使用pandas模塊進行數據分析 概述: 在數據分析和數據處理過程中,pandas是一個非常強大且常用的Python庫。它提供了數據結構和數據分析工具,可以實現快速高效的數據處理和分析。本文將介紹如何在Python 2.x中使用pandas進行數據分析&am…

【深度學習_TensorFlow】自定義層實現cifar10

寫在前面 盡管 tf.keras 提供了很多的常用網絡層類,但深度學習可以使用的網絡層遠遠不止這些。科研工作者一般是自行實現了較為新穎的網絡層,經過大量實驗驗證有效后,深度學習框架才會跟進,內置對這些網絡層的支持。因此掌握自定…

學習筆記整理-面向對象-01-認識對象

一、認識對象 1. 對象 對象(object)是鍵值對的集合,表示屬性和值的映射關系。 對象的語法 k和v之間用冒號分割,每組k:v之間用逗號分割,最后一個k:v對后可以不書寫逗號。 屬性是否加引號 如果對象的屬性鍵名不符合命名規范,則這…

數組slice、splice字符串substr、split

一、定義 這篇文章主要對數組操作的兩種方法進行介紹和使用,包括:slice、splice。對字符串操作的兩種方法進行介紹和使用,包括:substr、split (一)、數組 slice:可以操作的數據類型有:數組字符串 splice:數組 操作數組…

一個基礎但全面的Vue的表單范例,很基礎,但是很容易,也很全面。

下面這個案例,路人朋友們可以直接粘貼到html文件類型中運行,注意引入Vuejs的路徑即可,不會改的可以參考我第一篇Vue入門,同時建議同志們手打,真的前端都不能熟能生巧,既不要編程了, 可以詳細看注…

計算機網絡-物理層(一)物理層的概念與傳輸媒體

計算機網絡-物理層(一)物理層的概念與傳輸媒體 物理層相關概念 物理層的作用用來解決在各種傳輸媒體上傳輸比特0和1的問題,進而為數據鏈路層提供透明(看不見)傳輸比特流的服務物理層為數據鏈路層屏蔽了各種傳輸媒體的差異,使數據…

最新Kali Linux安裝教程:從零開始打造網絡安全之旅

Kali Linux,全稱為Kali Linux Distribution,是一個操作系統(2013-03-13誕生),是一款基于Debian的Linux發行版,基于包含了約600個安全工具,省去了繁瑣的安裝、編譯、配置、更新步驟,為所有工具運行提供了一個…

[低端局][cx32L003] 移植U8G2

文章目錄 一、簡介(1)U8g2(2)U8x8 二、配置要求三、移植步驟(1)文件準備和添加(2)實現回調接口(I2C的讀寫函數)①軟件I2C②硬件I2C (3)功能裁剪① u8g2_d_set…

Gof23設計模式之模板方法模式

1.定義 定義一個操作中的算法骨架,而將算法的一些步驟延遲到子類中,使得子類可以不改變該算法結構的情況下重定義該算法的某些特定步驟。 2.結構 模板方法(Template Method)模式包含以下主要角色: 抽象類&#xff0…

Kerberos 重新認識 From Oracle安全

參考 https://docs.oracle.com/cd/E24847_01/html/819-7061/seamtm-1.html#scrolltoc Kerberos服務 Kerberos服務是一種網絡身份認證協議,由麻省理工學院(MIT)開發。它提供了強大的身份驗證功能,用于在計算機網絡中驗證用戶和服務…

買愛心氣球(nim博弈)

鏈接:登錄—專業IT筆試面試備考平臺_牛客網 來源:牛客網 Alice 和 Bob 是一對競技編程選手,他們路過了一家氣球店,發現有 m 個大愛心氣球和 n個小愛心氣球。他們決定玩一個游戲,游戲規則如下: Alice先手拿…

Python Selenium 設置帶賬號密碼的socks5代理,啟動瀏覽器

selenium添加帶有賬密的socks5代理 我們都知道在使用selenium開發爬蟲的時候不可避免的會使用socks5高匿名代理。一般情況下我們使用方法如下(開發語言為python): from selenium import webdriver chrome_options webdriver.ChromeOptions() chrome_options.add_…