软件测试过程中如何区分什么是功能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:开发、测试工程师

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
需求指的是对于软件或产品功能、性能、界面等方面的具体要求或期望,包括用户需求和系统需求两种。用户需求是指最终用户对产品的期望和要求,而系统需求是指开发团队根据用户需求提炼出来的功能、性能等方面的具体规格。 测试用例是为了验证软件或产品功能是否按照需求进行开发而编写的测试案例或测试脚本。测试用例包括对各种输入条件的验证和对应输出结果的判断,以及各种功能和场景下的验证操作,请在输入和输出符合预期的情况下进行。 bug指的是软件或产品的错误、缺陷或故障。当软件无法按照预期功能运行或者功能不符合需求时,就可能出现bug。软件开发过程,通过测试发现的bug会被记录、报告和修复。 软件开发模型是指按照一定规范和流程进行软件开发的方式,常见的有瀑布模型、迭代模型、敏捷模型等。瀑布模型是一种传统的开发流程,按照需求分析、设计、编码、测试和维护的顺序进行。迭代模型是一种重复循环的开发方式,每个迭代周期都会完成需求分析、设计、编码、测试等步骤。敏捷模型是一种强调合作和迭代开发的方法,通过不断反馈和调整来满足用户需求。 测试模型是指按照一定规范和流程进行软件测试的方式,常见的有瀑布测试模型、V模型、敏捷测试模型等。瀑布测试模型是按照瀑布模型进行测试,将需求分析阶段的测试结果作为后续测试的基础。V模型则是在开发的各个阶段都有相应的测试活动,测试与开发对应。敏捷测试模型则是在敏捷开发模式下进行测试,强调即时反馈和快速响应的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值