如何写一个好的缺陷(Defect)报告

编写缺陷报告是测试人员的日常工作,好的缺陷报告能够让开发人员更容易理解,更快速的定位问题;不好的缺陷报告可能会误导调查方向,增加沟通成本。那么一个好的缺陷报告应该包括哪些方面呢?

请看我的mindmap:

标题

  1. 首先要做一个“标题党”(此标题党非彼标题党)。标题一定要清晰简洁易理解,不应该臃长

  2. 尽量前缀要规范,例如模板: [Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找

  3. 缺陷的标题一定要描述在什么情况下发生了什么问题

  4. 尽量避免使用人称(比如you, I等等)

  缺陷标题的例子: DemoApp 1.0_Login_Cannot enter username by copy/paste enternal string

  这个标题包含了产品名,版本号,模块,发生了什么(cannot enter username),什么情况下(copy/paste enternal string)

描述或总结

  描述或总结这个模块可以用来描述标题不能容纳的更详细的内容,它可以包括很多方面,比如相关、历史版本是否重现、用户操作等。目的是更清晰详细的描述缺陷。

影响

   这部分用以描述该缺陷对用户实际应用中的影响。 

前置条件

  用以描述在重现缺陷之前环境、数据或者其他的一些特殊需求。

重现步骤

  从用户角度出发来描述重现步骤,步与步之间不应该有太大的业务跳跃,最好是连贯的。

  例如:

  Repro Steps:

  1. Open DemoApp to enter Login screen

  2. Copy username from enternal file

  3. Paster username to username field of Login Screen

结果

  结果可以分为“期望结果”和“实际结果”,结果可以有多个,也可以穿插在重现步骤之间(比如重现步骤中有多个缺陷的问题)

优先级

  凡事都有轻重缓急,缺陷也是,需要标明缺陷优先级和紧急程度,以便开发团队决定先做还是延后。

重现频率  

  当然,大部分的缺陷是可以100%重现的,对于少数缺陷可能很难重现,或者不太容易重现,这就要标明重现的几率,比如50%。往往这种缺陷需要提供详细的日志文件,以便从日志角度获取重现或者解决突破口。

 

附件

  附件非常重要!附件的格式可以多种多样,图片,日志文件,视频等。除了可以提供直观的认识(图片,视频),还可以有更多的信息(缺陷讨论邮件,日志等)。

变通方案(Workaround)

  变通方案是提供一种绕过当前问题而使用其它的产品功能的一种方式。这样客户就可以在缺陷未解决的情况下继续使用产品。

发生原因分析(Root Cause Analysis)

  描述从代码角度,该缺陷是如何发生的。能做到这一步的测试人员需要有较高的读写代码的能力。

环境配置

  用以描述测试环境的配置,比如OS,相应产品版本等。

 

那么,问题来了!缺陷包括这么多方面,如果每个缺陷都这么写,要耗费多少effort啊!!!(毕竟测试时最忙的!)

个人认为没有必要每个都这么写,毕竟写缺陷报告对客户来说没有value。缺陷报告是缺陷的信息载体,它存在的意义是用于更好、更清楚的进行开发团队之间的沟通和以后的回顾,写到什么程度还是需要根据实际情况有所取舍。(比如Root cause analysis在时间不富裕的情况下可以忽略等)

综合以上的方面,下边是一个模板,希望对大家有所帮助。

Title:   [Product][Version]_[Feature]_Title
 
Description/Summary:
 
Impact:
 
Priority/Severity:
      Critical
Frequency:
     100%
Precondition:
 
Repro Steps:
     step 1:
     step 2:
     Expected Result:
     Actual Result:
     step 3:
 
Expected Result:
 
Actual Result:
 
Root Cause Analysis:
 
Workaround:
 
Environment:
 
Attchment:

 

 

转载于:https://www.cnblogs.com/AlwinXu/p/5427520.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
磁瓦缺陷检测是一个比较复杂的问题,需要使用图像处理和机器学习技术,以下是一个基本的流程: 1. 收集磁瓦图像数据集,包括有缺陷和无缺陷的磁瓦图像。 2. 对磁瓦图像进行预处理,包括灰度化、去噪、图像增强等操作。 3. 使用特征提取技术提取磁瓦图像的特征,如纹理特征、形状特征等。 4. 构建机器学习模型,如支持向量机、随机森林等,对磁瓦图像进行分类。 5. 对新的磁瓦图像进行预测,判断是否存在缺陷。 下面是一个基于Python的磁瓦缺陷检测示例: ```python import cv2 import numpy as np from sklearn.svm import SVC from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 读取磁瓦图像数据集 def load_dataset(): X = [] y = [] for i in range(1, 101): img = cv2.imread(f"tile/{i}.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) X.append(gray) y.append(0) # 无缺陷 for i in range(1, 51): img = cv2.imread(f"tile_defect/{i}.jpg") gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) X.append(gray) y.append(1) # 有缺陷 return np.array(X), np.array(y) # 提取图像特征 def extract_features(X): features = [] for img in X: # 提取图像纹理特征 glcm = cv2.UMat(cv2.ocl.UMat(img)) glcm = cv2.ocl.calcGLCM(glcm, 1) energy = cv2.ocl.UMat.get(cv2.ocl.UMat(glcm), 0, 0)[0] features.append(energy) return np.array(features) # 训练机器学习模型 def train_model(X, y): X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) svc = SVC(kernel='rbf', gamma=0.01, C=100) svc.fit(X_train, y_train) y_pred = svc.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}") return svc # 加载模型并进行预测 def predict(model, img): gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) feature = extract_features([gray])[0] y_pred = model.predict([feature]) return y_pred[0] # 加载数据集并训练模型 X, y = load_dataset() X_features = extract_features(X) model = train_model(X_features, y) # 加载测试图像并进行预测 img = cv2.imread("test.jpg") result = predict(model, img) if result == 0: print("无缺陷") else: print("有缺陷") ``` 以上代码使用SVM作为机器学习模型,提取了磁瓦图像的纹理特征,并对模型进行了训练和测试。在进行预测时,将测试图像传入predict函数,返回判断结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值