去年,我工作的公司的几个项目都失败了。
我们开发的网络软件,不是特别复杂(大部分是有关这些数据的巡检和搜索形式)。
管理部门发现的问题之一是测试阶段。
简单地说,我们的协议是:
问题是,当我们完成第三阶段和第四阶段时,错误的数量非常多,执行计划需要花费很长时间,我们得到了一个需要修复的没完没了的清单。
直到到达测试计划,我们是准时的,但在这之后,我们花了更多的时间,计划,然后“失败”的项目。我们以极高的质量为客户送货,但却花了更多的时间修理错误。
管理层正在寻找解决方案,并计划在第一个测试计划之前召开一次会议,征求我们的意见,以提高质量。有什么想法吗?
发布于 2011-10-19 18:33:37
Brian是对的,TDD是有用的--任何单元测试都会极大地改善事情。作为一名测试人员,我可以告诉您,一个彻底的单元测试套件显着地减少了bug的数量,并将剩下的功能bug限制在一些可预测的领域,我可以集中进行测试(主要是集成点/环境交互)。这简化了测试覆盖范围,使测试进行得更快。
其他想法:
发布于 2011-10-19 17:19:44
使用测试驱动开发。这样,您就可以不断地测试和集成功能。在基于CRUD的开发中,我喜欢使用iCRUD接口。这使得设置我的测试变得很容易。只需创建实现ConcreteItemX
的iCRUD
并设置4个测试(创建、读取更新删除)。直到所有的测试都通过。
冲洗并重复。
以后在管道里做测试是很好的。由于修复bug的成本随着时间的推移而急剧增加,所以您不能等到进程的后期才真正开始任何真正的测试。
发布于 2011-10-19 17:21:12
首先要做的是弄清楚你的缺陷在哪里被注入,它们在哪里被检测到。虽然你知道太多的人正在进入测试阶段,但是你不知道他们是从哪里来的。在这里应用缺陷清除效能跟踪技术是有帮助的。简单地说,创建一个阶段矩阵(考虑到您所说的,您的阶段可能是需求、设计、实现、测试和字段)。无论何时发现缺陷,都要跟踪发现它的地方和它的来源。对于每个阶段,跟踪已识别和删除的缺陷的百分比。
一旦您知道哪些特定阶段是有问题的,您就可以引入更改。质量技术的例子包括需求、设计和代码评审。因果分析也可以用来确定为什么注入缺陷,以及可以采取什么措施来防止它。可以使用检查列表来确保整个流程的可重复性。有很多高质量的工具,但是在你知道你的问题在哪里以及它们的原因之前,做任何事情都可能是浪费资源。
我建议阅读菅直人在软件质量工程中的度量模型。这是我所在的大学软件工程过程和产品质量课程中使用的教材,它是一本很好的书,它涉及到理解和提高产品和过程层面的质量。
https://softwareengineering.stackexchange.com/questions/115177
复制相似问题