面对需求变更,如何拥抱变化

2011-08-07  熊志男 

     清晰得记得,2007年的测试组例会,我们讨论的最多的问题就是,需求变更太多,导致我们测试工作量增多,产品发布日期一再拖延。
     花费时间编写了详细的测试用例,可是突然重要功能需求变更了,那么需要重新修改;
     构造好了测试数据,可是计算规则发生了变更,整个数据有需要重新来设计构造;
     临近产品发布了,需求变更,加入了影响重要的功能,导致产品稳定性变差,需要全部回归测试;
     ......
     导致了无休止的加班,发布日期不断的延迟。

     后来我们项目组开始敏捷,测试组也提倡“拥抱需求的变更,更主动地去参与变更”。测试组的具体措施是:用例简化、程序员按照测试要点开发功能、自动回归测试、积极沟通等。取得了一定的效果。

     现在,我们的项目开发团队在印度,测试团队在我们公司。怎么处理这样的问题:
     花了一个星期理解了需求、完成了用例、构造了测试数据。这时候,那边过来新版本需求文档,更改了计算规则,那么需求需要重新理解、用例和数据需要重新构造。这就需要大量的时间。这种问题以前常出现,以后还会常出现,我们如何解决。

     用例:开发编码的时期,我们工作量的最好体现就是测试用例,可是如果简化了用例,如何来体现我们的工作量。
     测试数据:版本发布后,我们的测试时间就会很紧张,所以要提前构建好大量的测试数据,等待版本发布测试更快些。可是这些构造好的测试数据一旦面临变更,那么维护起来也甚是麻烦。
     如果让程序员按照测试要点来开发功能,那么我们测试人员对于需求的掌握要不低于程序员,可是目前还是比较难实现,因为我们的需求相关问题全是从程序员哪里获取的。除非我们可以直接面对客户,而且还要有深厚的业务背景知识。

      那么我想可以从以下几个方面着手解决:
  • 测试数据构造,减少手动操作,尽量自动构造;
  • 用例编写,每个用例都沟通明确,且记录变更,准确计算需求变更导致的用例维护时间,可以分清责任;
  • 提高自动测试程度,由于需求变更,需要进行的大量回归测试自动执行,节约时间和人力;
  • 沟通:不怕麻烦,确认细节,减少理解误差造成的问题。
    ......
    当然光靠上面几点可能不是很好解决问题的,刚参与这个项目,需要了解的东西还很多,因此还需要根据实际情况来解决问题。时刻记住“测试就是不要怕麻烦”,问题总会解决。
    
489°/4832 人阅读/6 条评论 发表评论

关敏  2011-08-08

开发模式的变化,势必影响原有测试的模式,如何尽快、合理的适应,是个问题?


熊志男  2011-08-08

关敏: 开发模式的变化,势必影响原有测试的模式,如何尽快、合理的适应,是个问题?
是啊,应对变化要快速适应。时间宝贵


刘俊  2011-08-09

楼主,请问如何看待自动化测试脚本编写缓慢的问题?自动化测试的成本是很高的,舍弃手工测试,投入自动化脚本编写人员的话,成本太高。如果仅仅只投入1,2个人来写的话,完全跟不上进度,你会发现开发等着测试了,你这边脚本还没写好一半。还得调试脚本。
如果项目周期短,等你们脚本写好了,项目都快结束了,这个你怎么办?

实际上我们现在就遇到这样的问题,不过我们是外包项目,同样是需求变化频繁。希望多交流


熊志男  2011-08-09

刘俊: 楼主,请问如何看待自动化测试脚本编写缓慢的问题?自动化测试的成本是很高的,舍弃手工测试,投入自动化脚本编写人员的话,成本太高。如果仅仅只投入1,2个人来写的话,完全跟
确实,自动测试的问题是大家共有的。不过各自的问题是不同的。
1、我们的测试项目周期都是比较长的,第一次开发自动脚本比较费时,以后维护即可;
2、我们自动化程度并不算高,自动测试脚本不是基于界面UI功能的,这个变动太大,维护量大;主要是基于一些业务核心逻辑的测试、或者比较独立
的模块(报表、WebService接口、数据库存储过程、单个的java服务程序等),主要是回归测试应用;

另外,外包项目应该不能用TDD,单元测试,不过我觉得可以在项目初期,刚拿到需求和设计文档的时候,开发在做编码的时期,测试开始做自动测试
程序(也只能算是个模型吧,且不能基于界面),当然后期需要修改才可使用,这样能争取一部分时间。当然这只是想法,我并没有实践,说起来容易做起来难,还
要在具体实践中总结提高。


刘俊  2011-08-12

说的很对


小窝  2011-08-12

已同步至官方微博


登录 后发表评论