雷军:小米重启平板业务,今年将发布
06-17
软件缺陷,通常称为bug,是指计算机或程序中出现的某种破坏正常运行能力的问题。在软件系统中,软件缺陷可以理解为系统需要实现的某些功能的失败或违反。
本文的目的是将软件系统的开发过程与校园生活的考试过程进行对比,分析软件系统缺陷,分享软件系统缺陷分类的思路。文章简要说明在《漫谈软件系统测试——通信节点识别》中,文章介绍了对软件系统的通信节点进行识别和分裂的方法,以验证软件系统的正确性。
事实上,验证软件系统正确性的过程也是发现软件系统缺陷的过程。在这个过程中,我们发现、记录和跟踪软件系统中的Bug,直到系统Bug被修复。
对于测试工程师来说,我们理解这是一个缺陷管理过程。对于非测试人员来说,我们也可以将这个过程与我们学生时代考试后自己构建错题集的过程进行比较。
数学考试VS软件系统开发 对于一场考试(以数学为例),如图1-1所示,常见的相关利益相关者可以包括考生、应试者和评分者。在软件系统的开发过程中,常见的相关利益相关者包括产品经理、开发人员(前端开发/后端开发)和测试人员。
考试前,考官需要将考试大纲要求转化为试题设计,软件系统上线前,产品经理需要将业务需求转化为软件系统需求。 考试中,常见的考试内容可分为选择题、填空题和应用题。
在软件系统开发中,常见的工作内容可以分为前端开发和后端开发。 考试结束后,考官需要对试卷进行评分和评分,软件系统开发完成后,测试人员需要对软件系统的质量进行验证和评估。
图 1-1 考试利益相关者 VS 软件系统利益相关者 考试题目 VS 系统 Bug 场景一:在考试中,有时出题者会出错题,导致答题者无法解答答案,这对应于软件系统中开发中,产品经理也可能提出不合理或者错误的需求,导致系统无法满足用户需求。 场景二:在考试中,有时我们虽然理解了题目,但解题方法不恰当,可能会得到错误的答案。
对应于软件系统的开发,我们在软件系统的设计过程中。使用不适当的解决方案也可能会在系统中植入错误。
场景三:考试时,如果我们不小心,经常会漏题。对应于软件系统开发,如果我们在需求评估阶段不明确所需的功能点,我们也会错过某些功能的开发。
。场景四:考试中,如果我们复习题出错或者在没有理解题意的情况下答题,就会得到错误的答案,这对应于软件系统的开发。
如果我们对需求理解不清楚或者理解错误,我们也会开发出不符合需求的功能。 场景五:在考试中,有时我们使用了正确的公式,但是计算过程是错误的,就会得到错误的答案。
对应软件系统的开发,我们做了正确的设计,但是在开发的过程中就写出来了。错误的代码也会给系统带来错误。
场景六:考试时,有时我们答对了题目,但最后在答题卡上填写答案时,却填错了答案。对应于软件系统的开发,我们通过了系统功能验证后,在启动系统时却失败了。
错误的配置或代码被发布,导致系统错误。 如图2-1所示,在传统的软件开发周期中,软件缺陷可能在软件系统的整个生命周期的任何时刻出现。
以上六种场景介绍了考试和软件系统中常见的问题。我们对这些问题进行分类。
场景一可以归类为需求 bug,场景二可以归类为设计 bug,场景三、四、五可以归类为开发 bug,场景六可以归类为发布 bug漏洞。图2-1 考试题目VS软件系统bug和开发bug。
工作中最常见的错误是开发错误。同样,我们可以对此类 bug 进行更详细的分类,如图 3-1 所示。
展示了作者对一个项目前端开发中的各种Bug的分类和统计。这里的Bug分为数据展示、样式设计、数据兼容、数据关联、页面跳转等。
图3-1 各类前端缺陷占比。除了按照缺陷类型分类之外,我们还可以按照缺陷的严重程度来划分。
这里,严重程度分为P1、P2、P3、P4,分别对应严重、一般、普通、建议。如图3-2所示,展示了作者对某个项目中不同严重级别的Bug的统计。
图3-2 不同严重级别的Bug占比在考试的生命周期中,有试卷、考试、评分的过程。软件系统的生命周期包括需求分析、系统设计、开发和测试。
,发布过程。与考试不同,软件系统的“考试”不是由一个人答题,而是由不同岗位的人答题。
有的人专攻行业,有的人只答填空题或者选择题(前端开发),有的人只答题(后端开发)。同样,我们在两次考试中都可能会做出错误的答案和遗漏。
重新审视校园生活中的考试过程,每次考试我们最大的收获是什么?是不是我们已经完成了那个考试?可能不会。我们最大的收获应该是从考试中发现自己的错误,以便考试后弥补。
这也是建立错误题集、总结问题的重要原因之一。回到软件系统开发,记录和跟踪缺陷的目的是什么?难道只是为了在软件系统开发过程中跟踪bug直到修复为止吗?应该不止这个。
我们还可以分析项目缺陷,分析其共性并进行分类,从而建立项目的“错题集”,为下次“考试”提供宝贵的经验。 文章类比考试过程,分析了软件系统开发过程中存在的缺陷。
但本文并没有对软件开发过程各个环节中的缺陷类别做出更具体的分类。本文想分享的是总结软件缺陷分类的思路。
同时,也要强调总结缺陷的重要性。最后希望大家能够对本文提出宝贵的建议。
祝大家新年快乐,阖家幸福。作者简介:超凡,iChefAng成员之一,专注于软件质量保障的探索和分享。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用