浅析软件BUG/Defect

作为软件测试从业人员,你是否从心底问过自己:我工作到底是在干吗呢?不管是菜鸟测试工程师在“师傅”的指导下,东点一下西点一下,从刚开始时对发现问题的欣喜若狂,到后来的渐渐麻木……,还是高级测试工程师胸有成竹的计划和安排,……,如果你也曾经经历过这些,那么请看看这篇文章,希望能引起你的共鸣!

1 何为软件BUG?

BUG本意是虫子的意思,现在人们通常将在软件程序中隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。

软件的Bug,狭义上我们可以指软件程序的漏洞或缺陷,而广义认识上则除此之外还包括测试人员或用户所发现和提出的软件可改进的细节、或与需求文档存在差异的功能实现等。

在我们日常的工作中,又将Bug称为软件缺陷(Defect),即指程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。

2 软件BUG产生的原因

引起软件出现BUG的原因非常复杂,但再复杂的起因也是有源头的,那么软件的Bug产生的主要原因有:

1)软件开发过程自身的特点。包括了软件需求定义和分析、设计和实现,这里可能是软件系统结构复杂,也可能是采用了及技术,程序逻辑及异常处理不到位等等都会引起Bug。

2)项目管理。文档质量带来的问题,开发周期短造成人员压力带来的问题,开发流程带来的问题,风险管理带来的问题等。

3)软件技术团队。团队领导问题,团队沟通及理解上面的问题,团队成员水平参差不齐引起的问题等。

比如一个项目从细节上来说,软件出现Bug的原因有:对各种流程分支考虑不全面;对边界情况的处理不到位;编码时的手误。

3 软件BUG从何而来

首先,所有的软件Bug从源头来说,都是由于人的原因引起的。也就是说在可以预期的未来,软件仍将主要由人来进行开发,在整个软件开发过程的各个阶段,都贯串了人的活动,那么人在这些过程中犯下的错误就会留存在软件系统中,这些都是不可避免的人为错误,当这些人为错误隐藏在软件中时,我就称软件存在缺陷。

其次,软件缺陷是可以通过一些手段进行清除,也可以进行预防,但是不要指望清除掉所有的软件缺陷,毕竟发现和解决缺陷都是需要成本的,要考虑缺陷清除的费效比。

最后,在软件的运行过程中,触发了存在软件中的缺陷,如果不进行干预和处理(即无适当的容错处理),就会引起软件失效,最终表现出来的就是软件运行时产生了不希望或不可接受外部行为。

4 我们该如何对待BUG

有关软件缺陷不能完全等价对待,必须根据缺陷问题的严重程度来进行分级管理。软件缺陷的严重性划分必须要客观,即便在测试过程中发现较少的问题,或者问题都是一些轻微性的,不能随意夸大软件问题的严重性。

这时规范的Bug处理流程就显得非常重要,包括发现Bug时,一定要很好的记录如下数据:

1)Bug重现环境。包括的操作系统和浏览器及它们的版本。

2)Bug的类型。包括代码错误、设计错误或者是界面错误等。

3)Bug的等级。包括致命、严重、一般、轻微和建议。

4)Bug处理的优先级。包括紧急处理、优先处理、正常排队及延迟处理等。

5)Bug的状态。包括打开、指派、处理、回归和关闭等。

同时,一定要注意缺陷不是一定要解决完,才可以发布和上线系统,此时需要综合考虑软件项目成本、进度和质量,以及市场部门的反馈,来确定最优的处理方法。

5 你是唯“BUG”论者吗?

你是否存在一个疑惑:测试人员的绩效如何考核呢?

1)是依据测试人员发现的Bug来进行考核吗?

2)是依据测试人员编写的测试用例来进行考核吗?

3)是依据测试人员的综合能力来进行考核吗?

希望我们既不要已经Bug来进行绩效考核,也不要根据用例数进行考核,而是从综合素质上面进行考核,要全面、公正,要用数据说话,考核要客观。综合考核时包括:工作态度、公司业务熟练掌握程度、测试技能、测试文档、测试Bug、测试规范及贡献等。

那么好了,你现在是如何认识BUG的呢?如果感兴趣,欢迎一起讨论(企鹅账 可查询:testinghome)

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年2月20日
下一篇 2017年2月20日

相关推荐