穷尽测试是不可能的,这是软件测试的一条基本原则。通过测试并不能发现和修改测试对象中的全部的缺陷和问题,因此,不可避免有一些缺陷会遗漏到客户的使用现场,从而触发软件产品产生令用户不满意的失效或者各种问题。那么,测试人员在面对用户反馈的缺陷的时候,我们能够做些什么?本文将从缺陷监测百分比DDP和测试过程改进2方面进行考虑:
1)缺陷监测百分比DDP
首先,测试人员可以根据用户反馈的缺陷数目,来判断和分析测试人员在测试过程中的测试有效性。通常来说,在测试过程中判断测试人员的测试有效性是很困难的。但是通过用户反馈的缺陷数目,却可以直观的说明测试人员是否遗漏了比较多的问题,从而反映测试人员的测试有效性。
缺陷检测百分比DDP(Defect Detection Percentage)就是基于这样的目的进行定义的,它可以用来评判软件测试生命周期内某个阶段的测试有效性,它以百分比的形式进行计算[1]。其计算公式为:
DDP = [R1 / (R1 + R2)] * 100%
其中:
°         R1指的是被评估阶段发现所发现的缺陷数目;
°         R2是被评估阶段之后所发现的所有的缺陷数目;
注意:DDP计算公式的分母并不是发现的总的缺陷数目,而是指该阶段之后所有发现的缺陷数目(包括该阶段的缺陷数目)。另外,采用DDP作为测试有效性的评估指标,存在的一个问题是需要在产品发布一段时间之后才能进行,例如:产品发布之后3个月。
表1是计算DDP的一个例子(主要针对动态测试而言的):
表1 DDP计算的例子

测试阶段 发现的缺陷数目 DDP
集成测试 376 51.58%
系统测试 251 71.10%
验收测试 65 63.73%
产品发布(3个月之内) 37 NA

2)过程改进
用户反馈的缺陷,是进行过程改进的重要输入。通过收集和分析从用户使用现场反馈的缺陷,可以回答“为什么这些缺陷会遗漏到用户现场”这样的问题。假如测试人员可以找到这个问题的答案,那么就可以将该分析结果应用到下个项目的测试过程中,以尽量减少此类问题再次遗漏到用户现场,从而达到过程改进的目的。
下面是笔者在对用户反馈的缺陷进行分析过程中,对遗漏到用户现场的原因进行的分类。对用户反馈的缺陷进行分类,可以更好的帮助测试人员查找遗漏该缺陷的原因,从而为过程改进提出更加明确和直接的建议和方案。缺陷遗漏到用户现场的主要原因可以是多样的,例如:
(1)需求的原因
通常来说,软件产品或者系统开发和测试的基础是需求,因此需求定义的质量直接决定了测试对象的质量。而测试人员经常面对的需求是不全的、模糊的,甚至是不正确的。
在分析某个产品用户反馈的缺陷过程中,发现用户针对系统R1.0版本配置的数据库,并不能直接在升级之后的R2.0版本中使用,用户认为这极大的浪费了客户的配置时间,也对该产品的易用性产生了某些怀疑。项目利益相关者对该类型的缺陷分析之后,发现测试人员并没有针对这样的场景进行测试,而更深层次的原因是系统的需求中并没有定义可移植性的非功能特性。
分析了该类用户反馈的缺陷之后,项目团队将可移植性非功能特性作为评审软件工作产品的检查表的一个检查点,以避免在将来的项目开发过程中遗漏该质量特性。
(2)测试设计问题
有些缺陷遗漏到用户现场的原因,是由于测试人员在测试设计技能方面的欠缺。测试设计技术和方法是有效开展测试用例设计的基础,测试人员掌握的技术和方法越多,就越有利于他们设计更好的测试用例。
在分析某个产品用户反馈的缺陷过程中,发现IGMP协议在有些情况下不能和其他产品的IGMP功能协调工作,并且最后定位是由于我们产品的IGMP协议方面存在问题。后来在系统人员、开发人员和测试人员的共同努力之下,分析得知是由于IGMP的状态转换存在问题,特别是状态在进行连续几个转换之后容易出现问题。主要的原因是测试人员在设计IGMP状态转换测试用例的时候,由于没有掌握状态转换测试技术,导致其测试覆盖率偏低,从而使得该类问题遗漏到用户现场。
对于这样的问题,测试团队需要经常的进行合适的测试技术和方法的培训,例如:针对上面的案例,测试团队后来开展了状态转换测试的深入的学习和培训,并在后续的类似状态转换测试中,每个测试人员都可以熟练的应用0-Switch和1-Switch的状态转换技术。
(3)测试资源问题
有些用户反馈的问题,既不是需求定义的遗漏或者不明确,也不是测试人员没有合适的测试用例设计,而是由于测试资源方面的问题导致的。
用户在实际的网络使用环境中,发现并不能达到2000个IGMP用户同时进行视频点播的性能要求,从而提交了一个严重程度比较高的缺陷。在分析该缺陷的过程中,发现该产品的需求定义中有明确的规定要求达到2000个用户同时点播的要求,而在测试用例规格中,也有相应的测试用例存在。但是由于测试资源的限制,测试人员无法执行该测试用例,使得该产品发布的时候,该用例还是处于block状态。
对于此类测试资源的问题,一个解决方案是购买能够模拟2000个IGMP用户的测试仪表,另一个可行的方案是测试团队自己开发IGMP用户的模拟器。
(4)回归测试问题
有些用户反馈的问题,是由于修改某些缺陷之后新引入的,或者由于修改某些缺陷触发了其他潜在的缺陷。导致此类问题的主要原因是,在选择回归测试用例的时候,其修改的影响分析和风险风险做的不仔细和不完善。
对于这些问题,也就要求测试人员更加深入的学习和理解被测对象的内部结果,以及对失效模式和影响分析、风险分析等技术提出了更高的要求。通过学习和培训,可以逐步提高测试人员在这些方面的能力。
(5)测试环境和使用环境的不同
用户反馈的缺陷是由于测试环境,和用户实际的产品使用环境存在较大差距而引起的。例如:测试人员在测试产品的图形化用户接口GUI的时候,一直采用的浏览器是IE7.0。而在用户的使用环境在有FoxZilla、IE5.0等,导致产品的兼容性出现问题。
因此,在高级别的测试执行中(比如系统测试和验收测试),要求测试环境能够尽量贴近用户的使用环境。尽量模拟用户使用环境,一方面可以在我们的测试执行过程中,发现我们的软件产品和其他协同工作的产品之间的兼容特性,避免软件发布给用户之后才发现这些问题;另一方面,也可以用来检验我们的产品是不是用户真正需要的产品。
为了达到这些目标,测试团队必须了解用户的软件产品使用环境,比如用户使用该软件产品的操作系统、和我们软件产品对接的产品是什么、用户使用该产品可能的网络拓扑结构是什么(用户使用该软件产品的主要用户场景等)。因此,我们的测试团队在了解和熟悉我们的系统需求和实现之外,也需要去掌握和发现用户可能的使用场景,以及其他竞争对手产品的一些功能和特征属性。另外,在可能的情况下,邀请产品的潜在用户参与我们测试环境的搭建,或者征询用户在环境搭建方面的一些要求和建议,帮助我们来模拟用户的使用环境,从而减少可能和用户使用环境背离太多而导致的风险,提高我们的测试效率和测试质量。
(6)穷尽测试是不可能的
穷尽测试是不可能的,因此,测试团队在有限的时间、资源的情况下,无法发现测试对象中的所有缺陷,也就是说遗留到客户现场的缺陷是不可避免的。而我们能做的是,如何不断完善我们的需求、背景知识、测试技术、测试环境等,从而不断提升我们的测试能力,不断提高我们的DDP。

上面是我们分析用户反馈的缺陷过程中,经常采用的缺陷分类。但该缺陷分类并不是全面的,需要我们在测试过程中不断的修改和更新,从而不断完善我们的缺陷分类。

[文章来源]:郑文强的个人网站

测试管理005:面对用户反馈的缺陷,测试人员能做些什么?相关推荐

  1. 降低APP卸载率,测试人员可以做些什么?

    一.用户为什么会卸载APP <增长黑客>中提出一个公式:_"转化 = 欲望 - 摩擦",_所有让用户感觉不舒服的地方,都会带来一定的"摩擦",如果摩 ...

  2. 目前有哪些好用的测试管理工具?

    写好测试用例是做好测试的前提,写测试用例需要一个有用的测试管理工具.外国有几款不错的测试管理工具,因为服务器部署在国外,国内访问会比较卡,还有就是语言不是中文大家用起来比较困难,这里就不推荐大家使用. ...

  3. 测试管理中可能存在的问题及分析

    摘要:本文结合实践,主要探讨了在中小型软件企业中,在测试资源不是很充足的情 况下的软件测试管理.文中前两部分简要介绍了软件测试管理及测试的范围,方法及重要性,之后对当前国内中小型软件企业在测试及测试管 ...

  4. 测试管理及项目测试流程

    目录 基于需求测试管理 文件压缩项目 1.项目启动,介入了解需求 2.需求分析 3.制定测试方案(计划+策略) 4.测试执行流程 5.编写测试用例 6.测试执行 7.输出测试报告 8.版本发布 9.项 ...

  5. 听见用户的声音,爱奇艺全渠道用户反馈分析的探索与实践

    01 前言 随着互联网用户增长拐点的到来,竞争态势更多转变为博弈存量用户,做到极致的用户体验就成为其中关键.用户反馈作为用户对产品体验最直接的表达,是改善及衡量用户体验的重要输入,它具备海量.多样化的 ...

  6. 产品研发过程管理专题——基于产品的测试管理(用友软件测试流程初探)

    目前,用友软件的三大主流ERP产品是U8.NC.U9,分别面向不同需求的客户群.U9更是用友软件经过4年的潜心研发,在2008年初面市的,国内第一款完全基于SOA架构的ERP管理软件.是该公司下一步战 ...

  7. 测试管理工具列表大全

    ID Name Notes 1 TestDirector/Quality Center 业界第一个基于Web的测试管理系统,它可以在您公司组织内进行全球范围内测试的协调.通过在一个整体的应用系统中提供 ...

  8. 常用的网络测试管理工具软件,15款常用的测试管理工具

    Autotestnet是一款GUI网络测试框架,是一个采用 Tcl 语言编写的图形化网络测试工具,内部使用命令行工具跟设备进行通讯.可帮你安排测试用例.设置并运行命令,然后检查运行结果. Test M ...

  9. 【测试开发】测试管理工具禅道的安装

    [测试开发]测试管理工具禅道的安装 常见的测试管理工具是干什么的? 禅道的安装与配置 安装配置成功 常见的测试管理工具是干什么的? 测试管理工具是在指在软件开发过程中,对测试需求.计划.用例和实施过程 ...

  10. 测试工程师如何使用 CODING 进行测试管理

    CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求.不断迭代.快速反馈并能实时追踪项目进度直到完成.同时 CODING ...

最新文章

  1. JQUERY动态生成当前年份的前5年以及后 2年
  2. cad版本在线转换_CAD版本转换中将图纸转换为AutoCAD2018版本的方法
  3. 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )
  4. 【视频】vue指令之v-for
  5. .net 事件委托 java_仿net事件委托的java事件模型实现(转csdn)
  6. CodeForces - 1200C——小模拟
  7. XSS攻击(出现的原因、预防措施......)
  8. centos7救援模式--单机模式(单用户模式)
  9. 通俗地理解什么是编程语言
  10. Springboot2 搭建 高性能Websocket服务器
  11. LWIP的数据包管理
  12. tensorflow没有这个参数_解决TensorFlow中Batch Normalization参数没有保存的问题
  13. VB中DoEvents的注意事项
  14. 黑莓发布自动驾驶安全管家软件Jarvis
  15. HDOJ 3480 Division
  16. 无法使用闩锁类型 sh 读取并闩锁页_InnoDB数据锁第2.5部分“锁”(深入研究)...
  17. idea背景颜色修改
  18. 看完这篇“史密斯圆图”告别懵逼射频!
  19. Laravel文档阅读笔记-Rendering JSON(对JS变量进行赋值)
  20. (详细)华为荣耀3C H30-TL00的Usb调试模式在哪里开启的步骤

热门文章

  1. pubg服务器未响应请求超时,PUBG进入游戏连接超时怎么办 | 手游网游页游攻略大全...
  2. app毕业设计开题报告基于Uniapp实现的美食餐厅订单点餐APP
  3. 【仿美团点餐App】—— 首页(一)
  4. HowTo——cotex-m3处理器HardFault事后分析方法
  5. 精益和敏捷的较量:你知道敏捷开发有 Scrum 和 Kanban 两种管理模式吗?
  6. 大白菜u盘启动盘清除系统登录密码详细教程
  7. 计算机语言pasen,荷兰语
  8. [latex]{elsarticle}爱思唯尔模版的介绍与技术总结
  9. [论文阅读] Beyond part models: Person retrieval with refined part pooling
  10. iwork09破解方法及解决SFCompatibility错误方法