做单元测试的过程,我们兴奋过,低落过,冷静过,改革过,现在良性发展中,刚开始做的时候很兴奋,只知道写啊写啊,到头来写了很多单元测试用例,但到现在扔掉的也很多。

  当然原因也很多,主要还是测试目的的不明确,测试范围的不明确,测试标准不明确,对模块本向在产品中为何存在,为什么是这样存在没有弄清楚,走了很多湾路。

  当然接到一个模块的测试任务时,应该与开发人员,系统测试人员和产品人员,了觖这个模块为什么存在,有什么功能,在产品中是怎么样的一个位置和作用。

  要多读开发的代码,测试用例写完后,一定要调试一次测试案例,跟到开发的代码里面去,一行一行的看状态是不是正确,一般都会发现很多bug的。

  测试一个模块不光要看是否正确实现了想要的功能,还要看开发这样写是不是合理,有没有改进的地方,并提出改进方案,开心的是我们周围的一群同事常常在测试一个模块的时候会写一封改进方案的邮件发给开发人员,并抄送给相关上级,在算法的简单,性能的提高,成本的减少都引到了很好的作用。这也是人们的开发人员很尊重我们测试人员提出的任务意见的原因,原因他们知道这个模块还有一个测试人员和他们自己一样对这个模块里的每一行代码都很熟悉。

  测试的标准很难,怎么样才算这个模块测试好了,因为上级不用看你写的测试用例,他只要数据,但是给什么他才有说服力,我们在案例数,bug数等很多数据里选了代码覆盖率做为标准,虽然这个数据也不能充分说明测试的完整性,但相对来说还是比较有信服性。

  测试用例在后期维护的时候,我们头疼过,而且是很头疼,模块内部实现变了,接口变了,在产品里的位置变了,数据结构变了,我们的用例天天跟着开发也在变。目前没有特别好的办法,只能看具体问题具体处理,在写用例的时候还是有一点点技巧的。

  可恨的setup和teardown,之前对它的理解是测试前的事情和测试后做的事情,所以不太注意这个地方,引起测试用例一个一个运行是正常的,一批一批运行失败了;一个人写的案例运行是正常的,两个写的案例在一起运行失败了。一失败是几百个,要找出是那个用例引起的测试环境的破坏,很痛苦。真的很痛苦!!!“吃掉自己的狗食”这句话用到这里合适,不要仅把自己的setup做好,自己的teardown比setup更重要。

  测试用例常失败的几个原因:

  1、行为敏感性  如果系统的行为发生变化,如需求变了,这时测试会失败。

  2、接口敏感性

  3、数据敏感性测试

  4、上下文敏感。

  突然想写,写的比较乱多见凉。