定位解决项目中的Defect

最近经常要解决以前没做过的功能的Defect,对业务逻辑和代码逻辑都不熟悉,使工作遇到了很大阻力。需要总结一下几个要点,以防忘记:

1. 用原始帐号在DIT上重现问题,弄清楚Defect到底描述的是什么问题,现在是否还存在。有必要的话,还需要另换帐号重现。

2. 用排除法!缩小问题范围,比如通过JS断点,检查Ajax的返回数据。若数据没问题,则可能是前端代码出问题了。若返回的数据有问题,则可能是后台代码有问题,也有小部分可能是传递到后台的参数有问题,但极少见。

3. 弄清后台的逻辑和流程,在各个Service的request和response处设置断点,检查Service的返回数据是否正常。

4. 若Service排除了,那么需要检查关键的Model的数据,是否在流程中被错误修改或者使用了错误的Cache数据。通常可以在关键的Operation(比如prepareXXXGet, processXXXGet之类的Operation)中设置断点,检查pData中的model的数据,需要额外注意的是Model的key,因为个别的model,同样的model用了多个key。

5. 再就可能是一些业务逻辑有问题,需要一点点排查了,比如Contribution的RuleSet之类的。

补充一点:

如果在请求某个datacontroller的过程中,某处的model发生空指针异常,可以查找这个model是由哪个作为dependency的datacontroller (例如 A)生成的,然后再执行controller A的junit,察看A的执行过程中哪里出了问题。以此类推,最终找到真正导致问题的作为dependency的controller,从而快速定位。

猜你喜欢

转载自lyj86.iteye.com/blog/2194630