网上看到一篇文章,觉得有些点写得有些道理,自己在上面添加了一点东西,记录如下:
软件开发项目完成质量差的几大杀手
软件开发过程中,总会遇到各式各样的问题。如果把问题产生的原因和解决方法搞清楚,就能在开发过程中避免这些问题,开发出高质量的软件产品。以下就列举了一些解决方法供读者参考。
1、需求不明确
需求分析在整个软件开发过程中都非常重要,根据项目经验,很多bug都是由于这一阶段需求未明确导致的。如以下一些原因就会导致这种情况发生:
a)有些客户不记录他们的需求,甚至有些对自己的需求没有清晰的概念,这就导致需求确认得不明确。这种情况下,开发人员就必须根据自己的理解和以往的经验开始编码。这实际上和客户想要的产品是有差异的,所以到最后交付的时候客户也不会太满意。
b)开发人员需求分析的能力不到位。
c)开发人员还没完全理解需求就开始编码。
l 解决方法
a)如果客户只提出了模糊的需求,那么我们可以先开发一个原型让客户确认。
b)从同事那寻求帮助,比如在项目组内部讨论或者向经验比较丰富的同事请教。
c)了解项目背景和目的帮助理解客户需求。
2、缺乏质量规划
通常项目经理把项目进度以及按时交付放在第一位。但在项目初期也应该确定项目质量管理计划,以保证软件交付的质量。
l 解决方法
a) 项目开始之初就制定质量管理计划,包括所有保证开发质量的事项,例如测试计划、质量检查方法、质量标准等。
b)公布项目标准和过程,包括编码标准,开发过程等等。
c)不仅要在交付前检查质量,在整个项目进行过程中都根据计划检查质量
3、验收不严格
验收对项目质量保证很关键,很多质量问题可以在验收的时候发现。但仍然有很多问题直到结项都还没有发现。有一些原因:
a)客户太忙没有时间测试验收。
b)客户只测试新功能,而不做回归测试。有些新功能可能会影响原先的功能。
c)开发人员认为如果客户没有发现问题就意味着这一次的交付没有问题。
l 解决方法
a)客户理应留出时间验收测试,这对于项目质量控制至关重要。
b)回归测试非常有必要。客户应该测试所有步骤而不只是测试新功能。
c)项目组在交付之前应该自行测试。
4、不重视测试工作
有些客户和项目经理认为测试工作对项目不是必需的。但实际情况是测试工作至关重要。测试修复bug比留bug到最后成本低。
l 解决方法
a)开发过程中自测和交互测试非常有必要。
b)保证项目有一个全职的测试人员。
c)项目越大,越需要有高水平的测试人员。
5、工期太紧
一些客户希望尽快得到结果,但是过快的开发往往质量都比较低。
l 解决方法
a)保证足够的自测时间,开发人员评估任务量的时候就应该考虑到自测时间。
b)保证足够的交互测试和回归测试的时间。
c)如果确实在某些特殊情况下要交付,那也别把测试时间砍掉。可以现将核心模块交付,剩下的部分下一次的时候再交付。
6、测试工作不严谨
无测试计划、测试用例(方案),测试完毕后也无测试质量报告。导致测试不全面,产生明显漏洞;整个组对产品质量不了解,无法很好的决策发布。
测试人员关注到重点功能的实现,对UI、易用性、性能等不太关注,导致发布的产品的实际客户体验很差。
l 解决方法
a) 测试活动是个工程活动,核心的流程和操作不能缺失
b) 测试人员是反映质量问题的,所有的问题都需要反馈,可能有些问题,团队认为是个小问题,客户却认为是一个大问题
以上提到的几个原因在软件开发过程中非常普遍。测试人员和开发人员应该注意提上提到的几点,以提升工程质量。