论软件测试中缺陷管理及其应用

论软件测试中缺陷管理及其应用

高宇豪

(石家庄铁道大学,河北省石家庄市长安区,050043)

 

摘要:

随着技术经济的发展和城市化进程的加快,安防监控逐渐遍及小区、超市、校园以及其他很多公共场合。为了更好的保障人民的安全、服务人民群众的生活,政府、企业和学者都投身于对行人追踪的研究。基于深度学习的行人跟踪,是安防场景的重要研究领域,该领域的研究对于重点人员跟踪,违法犯罪事件预警有着重要意义。通过机器学习和项目的开发 来实现单镜头和多镜头对行人的追踪以及其他功能,项目仍在开发阶段。

 

关键词:缺陷管理;软件测试;行人追踪;

中图分类号:     文件标识码:A        文章编号:1671-4431(2021)18-1234-30

 

Defect management and its application in software testing

YuHao Gao

(Shijiazhuang Railway University, Chang'an District, Shijiazhuang City, Hebei Province , 057100)

Abstract: With the development of technology and economy and the acceleration of urbanization process, security monitoring is gradually throughout the community, supermarkets, campuses and many other public places. In order to better protect people's safety and serve people's life, the government, enterprises and scholars have devoted themselves to the research of pedestrian tracking. Pedestrian tracking based on deep learning is an important research field of security scene. The research in this field is of great significance for key personnel tracking and crime early warning. Through machine learning and project development to achieve single shot and multi shot pedestrian tracking and other functions, the project is still in the development stage.

Key words: Defect management; Software testing; Pedestrian tracking;

 

正文:

随着技术经济的发展和城市化进程的加快,安防监控逐渐遍及小区、超市、校园以及其他很多公共场合。这些监控所提供的视频信息十分庞大,如果通过人工进行处理必然会消耗大量的人力成本和时间成本,因此通过计算机视觉和深度学习的方式来对视频当中的信息进行初步识别和处理跟踪成为了不二的选择。为了更好的保障人民的安全、服务人民群众的生活,政府、企业和学者都在单/多镜头中行人追踪的基础上进行了研究和拓展。

项目的目标首先是通过官方提供的数据集和自己录制数据集进行模型训练,实现一个可以快速反应、稳定可靠的在给定视频中进行行人追踪的视频处理工具。其次是将这个工具模块嵌入到系统当中去,让其构成一个完整的软件系统,让用户可以通过自己的需要上传视频或是实时地对自己的监控视频进行行人追踪。最后在实现单/多镜头行人追踪的基础上添加危险动作识别、嫌疑人寻找等功能。我参与了该项目的需求分析和开发测试的工作,该项目已完成第一阶段,仍在持续开发当中。

架构风格定义了用于描述系统的术语表和一组知道构建系统的规则,是系统组织方式的惯用模式,可以为我们在架构提供架构层次的通用解决方案进行参考。工作的开始阶段,我们便意识到架构的风格会影响数据传输的流程进而会影响数据分析的效率以及结果输出的稳定性。因此,如何选择一个适合本项目的架构风格便是一个很重要的因素。这种架构级别的软件重用可以在很大的程度上加快我们的系统建设进程。软件系统开发中常用的软件架构风格有数据流风格,调用/返回风格,独立构件风格,虚拟机风格,仓库风格。数据流风格包括批处理序列与管道-过滤器,其每一步处理都是独立,顺序执行的,适用于简单的线性流程。调用/返回风格包括主程序/子程序风格,面向对象风格,层次结构风格,其进一步降低系统耦合度,明确系统层次。独立构件风格包括进程通信,事件驱动系统(隐式调用),其构件特点为软件重用提供了支持。虚拟机风格包括解释器风格,基于规则的系统风格,其具有良好灵活性,可自定义规则。仓库风格包括数据库系统风格,超文本系统风格,黑板系统风格,其以数据为中心。另外,还有DSSA,SOA等架构风格。

一般而言,缺陷的跟踪和管理需要达到以下两个目标:一是确保每个被发现的缺陷都能够被解决,二是收集缺陷数据并根据缺陷趋势曲线识别和预防缺陷的频繁发生。

在谈到缺陷管理时,一般人都会只想到如何修正缺陷,而对根据缺陷分析进行有效预防缺陷却很容易忽视。其实,在一个运行良好的项目开发中,缺陷数据的收集和分析是很重要的,从缺陷数据中可以得到很多与软件质量相关的数据。例如我们使用网络上已经开源的yolov5算法对已有的视频数据集进行训练,通过对每一次训练的结果进行分析然后调整相应的参数以提高物体识别的准确度。在这个过程中也经常会出现因为参数调整失误而引起的bug,这种bug并不会对系统本身产生什么危害,但是由于bug的出现会使得这一次的训练前功尽弃,只能重新进行调整,增大了项目开发的时间成本。所以在调整参数之前就需要提前制定一些规则来根据训练得到的结果对下一次的训练参数进行调整。由机器来进行每一次的结果处理和参数调整,即能减少出错的几率也能加快训练的速度,这个办法就是梯度下降,通过对结果的分析来调整参数以达到每一次的调整都指向最优的那个解,从而提高识别的准确率。

在我们的项目开发过程中,我们制定了一系列的bug预防措施,其中包括:bug记录,bug分析。第一步是记录bug,值得注意的是记录bug不应该满足于记录bug的表面症状而是应该发现bug的根本原因,在测试时直接深入源代码,理解产品的设计和实现;利用bug分析开发的质量趋势,通过对时间段内bug发现处理的次数和频率可以看出项目开发质量的变化;使用已有的bug发现经历来预防之后更多错误的产生。

bug预防分析是整个bug分析过程的核心。这一阶段总结出的实践可以在更广泛的范围内预防潜在的缺陷。由于分析结果的广泛应用性,分析某个具体bug的投入将很容易被收回。在这个时候,bug分析提供了两个非常重要的参数,一个是缺陷数量的趋势,另一个是缺陷修复的趋势。缺陷趋势就是将每月新生成的缺陷数、每月被解决的缺陷数和每月遗留的缺陷数形成一个趋势图表。

分析图表会告诉我们很多有价值的信息。比如说,可分析开发和测试在人力资源的配比上是否恰当,可以分析出某个严重的缺陷所造成的项目质量的波动。对于异常的波动,如本来应该越测试越收敛的,却到了某个点发现的故障数反而呈上升趋势,那么意味着往往有一些特殊事件的发生。通过对测试缺陷分析,能够给予我们很多改进研发和测试工作的信息。

通过项目成员的努力,我们一定会完成任务。采用这样的缺陷管理模式,完全满足项目对可测试性、可修改性、可用性等质量需求。最后经过用户一段时间的使用反馈,进行二次的迭代更新。最后,软件测试过程中的软件缺陷管理是开发过程中必不可少的一部分,它能减少开发人员开发软件所需时间,在我们的项目开发过程中发挥了很大的作用。

posted @ 2021-05-21 20:45  酸奶面包  阅读(545)  评论(0编辑  收藏  举报