9、如何避免新增story影响已有功能造成质量问题?

  challenge:没有全面回归,如何保证质量?

  基于Story的敏捷,要求每个story测试完成都可直接上线,也是说story从测试中移动到QA sign off后,质量达到上线标准,且须保证不破坏已有功能。

  如果QA在sign off每个story之前,都对前面的story和已有的功能做全面回归的话,估计很快会被累死。

  怎么解决此问题呢?

  临时解决方案:

  (1)code frees环节

  RD在主干上开发(减小大量merge产生的风险),在上线之前,会有一个code frees环节,从主干上拉出一个release branch(简称RB),用于本迭代的上线。

  根据敏捷的经验,在所有story都移到QA sign off区后,再拉RB,因为RB拉得太早,QA的工作量会double,敏捷周期本不太长,测试和开发在stroy间也是并行的,因此 开发完所有story的时间点和QA测试完所有stroy之间的时间不会很长,因此原则上在所有story都移到QA sign off区后,再拉RB,如果情况特殊,也要等QA大致过一遍stroy后,QA点头后再拉RB。否则RB上提交次数太多,工作量和风险都相对较大,拉RB的意义不明显了。

  (2)迭代回归

  RD继续在主干上开发下一迭代的story,QA在此RB中回归本迭代的内容及可能影响到的原有功能,并测试上线步骤。

  用迭代回归,而不是每个story完成之后都回归,减少回归工作量,作为临时方案。

  长远目标:

  推动RD完成UT、IT,QA完成ST,使自动化测试覆盖已有功能,终将QA从回归中解放出来。

  10、上线频繁,如何降低上线的成本?

  challenge:每次上线都会花时间去测上线步骤,上线频繁,如何降低成本?

  答案当然是自动化上线。

  将web和server这种每次上线除配置文件修改,其余操作都一样的上线做成自动化上线。

  将文件替换这样的上线步骤做成脚本,QA测试脚本,上线执行脚本即可。