软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?

问题描述:

  测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?

  精彩答案:

  会员 土土的豆豆:

  本期问题其实主要是针对不同方面或纬度上对于bug的一个归类和定位。

  个人认为,从软件开发测试生命周期上分析的话,三者从开发测试阶段应该是需求bug、设计bug、功能bug。(这里仅针对提问排比)

  需求问题可以包括设计问题和功能问题,当然还有非功能性缺陷等。

  需求bug,简而言之就是对于业务需求不清晰或者理解有偏差产生的问题。可能包括业务分析人员不专业因素、开发与测试人员思维不一致、产品未满足客户实际需求(想法)等一系列bug。

  功能问题大部分理应该是附属于需求说明书上的功能模块,因为开发、设计、实现等原因故而产生功能bug。但也不仅限于需求上列举出的功能,因为一个项目/产品,完全有可能因为相关协作的功能模块或整合的第三方程序导致产生bug。所以功能bug既可能是需求bug,也可能是需求外的bug。这里对于bug的优先级和安全级别等不作赘述。

  设计问题可以认为是开发架构师/人员在项目设计编码前遗留的“历史”问题。因为设计bug还是根据需求说明书来进行开发设计,故而一些业务逻辑上的关系、代码算法的优化、数据库/表的关联等都属于设计bug。

  个人认为,需求bug最为麻烦,也是后期维护成本最高的bug。设计bug次之,因为一个产品/项目设计层面问题较多的话,无论修复或改进多少,在代码编写结束后,开发人员很难重头再整理一套框架,即便目前没有设计bug,以后产生的风险也是很大的。

  功能bug最平凡,但是也是基础。除去客户业务需求上的变更因素,整个项目/产品的质量好坏最基本的就是取决于功能是否按需求进行了实现,其问题是否很多。我们大部分测试阶段的bug以功能问题为主。

  当然还有其他一些bug类型,本期问题所列3个bug从根本上分析不属于一个维度。但是也是很基本的概念。

  以上是我个人拙见,请大家补充指正。谢谢!

  会员 TesterChen:

  首先什么是需求Bug、设计Bug、功能bug?

  需求Bug,指由于客户需求描述不清晰或错误、需求收集人员自身原因及需求本身模糊难于分析、获取等原因,导致客户需求获取不准确,后期产品不能满足客户、用户的要求

  设计Bug,是指产品在最初设计时由于未考虑全面,而使产品在使用中存在的一些潜在的缺陷。

  功能Bug,是指计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。

  建议从以下几点进行区分:

  1、产生的时间不相同:
需求Bug:产生于项目前期
设计Bug:产生于项目前期或中期
功能Bug:产生于项目中期或后期

  2、产生的原因不相同:
需求Bug:客户需求描述不清晰或错误、需求收集人员不够专业、需求本身模糊难于分析、获取等原因
设计Bug:系统框架、通讯模式、库表设计、编写语言等选择不当,导致后期扩展棘手、安全性低等
功能Bug:开发工程师需求理解错误、代码编写缺陷等原因

  3、造成的影响不相同:
需求Bug:对整个项目的影响极大,会直接拖后项目的进度、加大项目成本、降低客户对公司的评价
设计Bug:后期功能扩展、性能、安全性等可能会遭到威胁
功能Bug:影响用户使用体验、影响数据、资金安全

  4、处理方式不相同
需求Bug:重新收集需求,重新设计和开发(需求Bug是对项目成本和进度影响最大的因素)
设计Bug:重大缺陷必须修复,小设计缺陷在下一次发布时更新(一般难于修复或修复成本较大)
功能Bug:直接修复缺陷,重新发布或更新

  5、Bug的直接责任人不相同
需求Bug:业务人员、需求专员、项目经理等
设计Bug:架构工程师、数据库工程师、技术经理、项目经理等
功能Bug:开发、测试工程师








====================================分割线================================



最新内容请见作者的GitHub页:http://qaseven.github.io/

上一篇:直播软件APP开发,小白做开发需要注意什么


下一篇:业界首个非侵入式热修复方案Sophix重磅推出,颠覆移动端传统更新流程!