软件测试之缺陷管理
软件测试之缺陷管理
王正帅
(石家庄铁道大学,河北省石家庄市长安区,050043)
摘 要:软件测试近些年来在国内的发展非常快速,它可作为企业软件项目开发中的软件质量和项目管理的监控技术,逐渐成为企业软件开发的成败直接挂钩的项目过程。本论文主要介绍了基于林业有害生物智能识别系统的项目经历介绍、缺陷管理的常见等级、缺陷管理的基本流程和实际应用过程与效果。并对维护人员提交的缺陷报告认真鉴定、筛选、分类,进入不同的处理流程,以获得真正的缺陷跟踪数据。
关键词:缺陷管理;软件测试;林业有害生物智能识别
中图分类号: 文件标识码:A 文章编号:1671-4431(2021)18-1234-30
Defect management of software testing
Zhengshuai wang
(Shijiazhuang Railway University, Chang'an District, Shijiazhuang City, Hebei Province , 057100)
Abstract: Software testing has developed rapidly in China in recent years. It can be used as the monitoring technology of software quality and project management in the development of enterprise software projects, and gradually become a project process that directly linked the success or failure of enterprise software development. This paper mainly introduces the project experience, common level of defect management, basic process of defect management and practical application process and effect based on the intelligent identification system of forestry pest. And the maintenance personnel submitted the defect report to carefully identify, screen, classify, enter different processing processes, to obtain the real defect tracking data.
Key words: Defect management; Software testing; Intelligent recognition of forest pests
一、项目经历概述
1项目需求
近年来,外来有害生物的入侵风险越来越高,据统计在1998-2008的十年间入侵我国农田和森林生态系统的有害生物多达19种,对我国农林生产造成了巨大的危害。在农林经营管理过程中,有害生物的监测和治理非常重要。
2、项目经历
今年我们组队参加了中国软件杯,我们选的题目是:A4-林业有害生物智能识别。我负责的内容是:15类林业有害生物数据集的准备和标注,即从百度图片、电影中取寻找害虫图片,并进行数据增强,即对图片进行拉伸、压缩、调整亮度和覆盖等处理,来增加数据集。目标检测算法设计,起初我参考的是MobileNetV2图像分类模型、ResNet图像分类模型、GoogleNet 图像分类模型、YOVO-V3目标检测模型和Faster RCNN模型等模型,来设计我们自己的神经网络和目标检测算法,完成林业有害生物的分类检测模型预测,在手机app和网页上实现拍照上传,展示预测结果。
二、缺陷管理和基本流程
1、缺陷种类及级别
1级-建议问题的软件缺陷(Enhancemental):由问题提出人对测试对象的改进意见或测试人员提出的建议、质疑。
2级—较小错误的软件缺陷(Minor),使操作者不方便或遇到麻烦,但它不影响功能过的操作和执行,如错别字、界面不规范(字体大小不统一,文字排列不整齐,可输入区域和只读区域没有明显的区分标志),辅助说明描述不清楚。
3级—一般错误的软件缺陷(major):次要功能没有完全实现但不影响使用。如提示信息不太准确,或用户界面差,操作时间长,模块功能部分失效等,打印内容、格式错误,删除操作未给出提示,数据库表中有过多的空字段等。
4级—严重错误的软件缺陷(critical):系统的主要功能部分丧失、数据不能保存,系统的次要功能完全丧失。问题局限在本模块,导致模块功能失效或异常退出。如致命的错误声明,程序接口错误,数据库的表、业务规则、缺省值未加完整性等约束条件。
5级—致命的软件缺陷(Fatal):造成系统或应用程序崩溃、死机、系统挂起,或造成数据丢失,主要功能完全丧失,导致本模块以及相关模块异常等问题。如代码错误,死循环,数据库发生死锁、与数据库连接错误或数据通讯错误,未考虑异常操作,功能错误等。
2、缺陷管理和基本流程
缺陷管理是最开始也是最基础的测试必备技能。在工作了很多年后仍然会发现大量的测试人员没有办法合理的做好缺陷管理。在我眼中的缺陷管理包含以下几层概念:
1)缺陷的描述
关于缺陷的描述,无非就是当别人看到你写了一堆关于这个缺陷的巴拉巴拉后,是不是明白了,然后能够根据你的建议开始进行缺陷的修改。本质上有一点就是缺陷的描述就像议论文,一定要有说服力。如果你写出来的东西都不能让别人觉得有道理,你又怎么让别人愿意按照你的逻辑去修改这个缺陷呢。为了方便把缺陷写的更容易理解,所以现在无论是Excel的记录方式还是使用系统的记录方式,我们都会将一个缺陷分割为很多个属性,来便于管理和理解,常见的属性包括:标题,详细说明,版本,环境,发现人,发现时间,修复人,修复时间,修复说明,状态,严重级别,优先级别等。
2)缺陷的定义
在这里缺陷的定义主要是指如何判断缺陷的严重级别和优先级别,而不是这个问题是一个建议还是一个缺陷?请注意我用了建议和缺陷来区分问题的两种情况。这和前面说到的有类似之处到底你确定了这是一个问题,还是你觉得这样可能不太合理。当一个问题被提出,该问题必须要让别人非常明确的看出它到底会带来什么后果,需要在什么样的时间内修复,这样才能有效的让别人重视它。看过蝴蝶效应的朋友应该知道,一个问题如果被轻视,那么随着放大后其结果可能是非常严重的,也许只是一个很小的疏忽或者不重视。对于提交缺陷的我们来说,需要有能力去评估一个问题的优先级(是不是应该立即修复)和严重级别(它会带来什么样的后果),而优先级和严重级别之间又不是完全强联系也并非完全没有联系。或许大家对优先级和严重等级的概念会混淆,觉得有点模糊。一般大家会觉得严重等级高的BUG,优先等级一定为高。但这仅是一个包含于的关系,会存在这样一种情况严重等级低(或许只是小的界面问题,例如图片在页面的位置不精确),但优先等级高。或许这样说比较抽象。那么我们来举个例子,INTEL对于企业LOGO的精确度要求很高,因为这代表了企业形象。所以有关于LOGO的相关BUG对于系统的严重等级为低,但优先等级都是高的。缺陷的属性与你所属的行业以及公司文化也是息息相关的。当没有经验的时候,或者你无法知道该问题是否在关键路径以及影响的后果时,问问有经验的人是比较好的方式。而这也是测试人员的一个基本功,能够分清楚轻重缓急。
3)缺陷的跟踪
可能大家对缺陷的跟踪相对来说比较熟悉,因为基本上如果工作了都在使用缺陷系统,不断处理着缺陷的生存周期(new,fix,reopen,close等等),缺陷生存周期的目的是为了方便我们跟踪一个缺陷的不同状态,判断其所在的阶段。
而在不同公司,不同的流程下,该流程也不尽相同,合适自己公司的才是最好的。好比缺陷跟踪就像是快递跟踪一样,以前我们发一封邮件,完全不知道对方什么时候收到,现在这封邮件到哪里了,而现在我们可以非常方面的在网站上随时查询得到该快递所在的具体位置及签收过程。那么对于小白来说首先要理解缺陷跟踪及状态的原理,进一步还要能配置管理这样的系统,帮助公司完成这样的管理工作。
4)缺陷的度量分析
在有了好的缺陷描述,好的定义和跟踪后,那么基本上缺陷已经可以很好的在某个系统内运转起来了,接着我们要做的事情说得好听点就是大数据分析了。从这些项目数据中,我们要分析出一些藏在数据后的规律,比较常见的包含:
常见缺陷导致的原因,常见缺陷被修复的时间,系统每天新增或修复的缺陷数缺陷的收敛情况。这些数据可以有效的帮助我们看出一些以前看不出的问题,但是这个在中国效果并不明显,因为我们的数据进入就存在不少的国情,而在分析及结果处理上也存在着相应的国情,所以一般公司在做度量分析的时候,往往是越做效果越差,吃力不讨好。但是不得不说不能因为它效果不好而不做它,如何正确的采集、分析数据,需要一些时间和团队成熟度后,才能发挥其效果的。
四、实际应用过程与效果
在我们团队开发过程中的最大的缺陷是:001预测超时,即有害生物预测时,上传预测图片的时间+模型预测时间+返回并加载预测结果的时间,太长了(3-4s)不能满足设计说明书的性能要求。这个缺陷对我们的项目影响很大,因为它严重影响了用户的使用体验,虽然我们的模型预测效果和准确率很高,但是可能结果还没加载出来,用户已经离开了,甚至把我们的软件卸载了。所有我们确定这个缺陷的严重等级最高,优先级最高。应该立即修改。之后我们对001预测超时进行了跟踪,发现在百度飞浆-AI Studio上预测时间仅仅 147毫秒,由此确定001预测超时是因为我们的服务器硬件问题。
五、总结
也许你觉得作为测试提一个缺陷很简单,但是要提一个好的缺陷其实是非常难的。在这里其实还有个隐藏的属性,叫做缺陷的概念,也就是说什么是缺陷?
一般来说缺陷有两种情况,一个是违反了所谓的规则,还有一种是我们无法接受这样的情况。比如对于美来说,每一个人心目中都有一种对美的定义,你会觉得她很美,但是换个人来看待就未必。所谓的情人眼里出西施应该是指个人需求下的狭义定义。而大众情人就是那种所谓的约定俗成的广义规则。
我们做一个软件面向的对象是不同的,甚至我们需要超出用户需求来做一点东西的,所以对于缺陷的判断成为了一个非常困难的事情,这里只能说对于缺陷这种东西,不要用肉眼去看要用心眼去看。