首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在测试前减少错误?

如何在测试前减少错误?
EN

Software Engineering用户
提问于 2011-10-19 17:10:33
回答 7查看 500关注 0票数 4

去年,我工作的公司的几个项目都失败了。

我们开发的网络软件,不是特别复杂(大部分是有关这些数据的巡检和搜索形式)。

管理部门发现的问题之一是测试阶段。

简单地说,我们的协议是:

  1. 请求者分析
  2. 开发
  3. 构造结束后,将可执行文件上载到服务器。
  4. 执行测试计划
  5. 修复错误
  6. 执行测试计划,以检查错误是否持续存在。
  7. 如果一切正常,->将发送到客户端。

问题是,当我们完成第三阶段和第四阶段时,错误的数量非常多,执行计划需要花费很长时间,我们得到了一个需要修复的没完没了的清单。

直到到达测试计划,我们是准时的,但在这之后,我们花了更多的时间,计划,然后“失败”的项目。我们以极高的质量为客户送货,但却花了更多的时间修理错误。

管理层正在寻找解决方案,并计划在第一个测试计划之前召开一次会议,征求我们的意见,以提高质量。有什么想法吗?

EN

回答 7

Software Engineering用户

回答已采纳

发布于 2011-10-19 18:33:37

Brian是对的,TDD是有用的--任何单元测试都会极大地改善事情。作为一名测试人员,我可以告诉您,一个彻底的单元测试套件显着地减少了bug的数量,并将剩下的功能bug限制在一些可预测的领域,我可以集中进行测试(主要是集成点/环境交互)。这简化了测试覆盖范围,使测试进行得更快。

其他想法:

  • 尽快让QA参与进来。如果您没有至少一个QA专家参加所有或几乎所有的会议,从设计阶段开始,您将失去很多价值。高级测试人员可以帮助发现设计缺陷,提出将大大加快测试速度的小特性,并且可以在参与设计会议时更早地开始规划测试策略。
  • 获得良好的、可靠的需求,尽早得到它们,并让QA对它们进行评审。一个优秀的QA专家会在没有人认为能解决的需求中找到漏洞。有时候,对于devs来说,一些次要的细节对QA来说是一个巨大的阻碍(例如,业务规则的细节;dev可以为规则构建框架,然后再添加实际的规则,但在知道具体细节之前,测试是无法编写的)。我见过的最糟糕的测试周期是,BA人员没有得到明确的需求,没有及时得到需求,或者在不通知QA的情况下口头地向开发人员传达对需求的修改。此外,如果没有良好的前期需求,测试自动化就不能与产品开发同时开发。
  • 发展得更快。不要把整个产品扔给QA,而是在整个开发周期内交付零件,因为它们是为组件测试和组件集成测试完成的。敏捷开发技术对于减少测试周期并在整个项目中更顺利地分发它们是很好的,因此您在项目结束时不会有很大的麻烦。
  • 如果您的开发人员或测试人员阅读了在QA中工作的代码,那么让他们进行代码评审以及开发人员(因此,一个开发人员,一个QA检查每个主要代码更改)。这既有助于QA了解代码基础和系统,也提供了一个以质量为中心的代码透视图。
  • 在QA过程中使用更多的自动化。将手动测试限制在几个定义良好的区域内。自动化测试可以在组件开发完成之前开发,可以在夜间运行,开发后需要相对较少的资源。虽然您可能会在自动化上投入更多的测试资源,但是在测试时间便宜的“测试瓶颈”之前,很多测试时间都会发生。
  • 确保开发人员在整个开发周期中将使用和解除阻塞测试人员作为高度优先事项。当你不鼓励测试人员问问题、学习系统和做他们的工作时,你就会获得技术债务。开发人员可能不会意识到这一点,因为在进入测试阶段之前,您不会支付债务利息;成本是从开发人员那里外化出来的。
  • 自动化测试环境设置。这很费时,而且大多数测试人员至少每天都需要这样做,以跟上错误修复的步伐。测试人员应该能够用一个命令安装整个产品(S)。
票数 14
EN

Software Engineering用户

发布于 2011-10-19 17:19:44

使用测试驱动开发。这样,您就可以不断地测试和集成功能。在基于CRUD的开发中,我喜欢使用iCRUD接口。这使得设置我的测试变得很容易。只需创建实现ConcreteItemXiCRUD并设置4个测试(创建、读取更新删除)。直到所有的测试都通过。

冲洗并重复。

以后在管道里做测试是很好的。由于修复bug的成本随着时间的推移而急剧增加,所以您不能等到进程的后期才真正开始任何真正的测试。

票数 7
EN

Software Engineering用户

发布于 2011-10-19 17:21:12

首先要做的是弄清楚你的缺陷在哪里被注入,它们在哪里被检测到。虽然你知道太多的人正在进入测试阶段,但是你不知道他们是从哪里来的。在这里应用缺陷清除效能跟踪技术是有帮助的。简单地说,创建一个阶段矩阵(考虑到您所说的,您的阶段可能是需求、设计、实现、测试和字段)。无论何时发现缺陷,都要跟踪发现它的地方和它的来源。对于每个阶段,跟踪已识别和删除的缺陷的百分比。

一旦您知道哪些特定阶段是有问题的,您就可以引入更改。质量技术的例子包括需求、设计和代码评审。因果分析也可以用来确定为什么注入缺陷,以及可以采取什么措施来防止它。可以使用检查列表来确保整个流程的可重复性。有很多高质量的工具,但是在你知道你的问题在哪里以及它们的原因之前,做任何事情都可能是浪费资源。

我建议阅读菅直人在软件质量工程中的度量模型。这是我所在的大学软件工程过程和产品质量课程中使用的教材,它是一本很好的书,它涉及到理解和提高产品和过程层面的质量。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/115177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档