课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了软件测试的常用方法和优势等内容,而今天我们就再来了解一下,软件测试优化都有哪些关键要点。
1、用心描述你的测试用例
针对你的每个测试用例,你应该描述清楚它在测什么?被测试内容的场景是什么?以及测试期望的结果是什么?
如果针对某一个测试想到一个新的用例,那可以把加到测试文档中去。如果测试描述太长,可以用缩写,并在测试文档中描述缩写的含义。
一个不好的测试描述将降低可维护性。
2、测试公开的接口
所有不公开的代码,都不应该被测试。
不要通过打破代码的封装性来测试某一个功能点。
如果你将要单独测试的某个方法,这意味着这个方法很可能应该是归属于某一个接口的实现类中,可以是工具方法或者扩展。
每一个类都必须有一些对外接口,来清楚的表达什么应该被测试。
测试一个类的私有部分,会让测试用例更加难以维护,破坏封装性等于让一个良好结构变成废墟。
3、在一个测试中只验证一个case
一个测试用例应该只测试一个点,也就是说每一个测试用例应该只有一个assertion。这样做的话,当该测试用例没跑通时,我们就很快知道哪里出问题了。
但在做assertion之前,我们往往需要检查若干个点。比如我们想知道在一个mock对象中,什么方法被调用了,那么此时写多个这样的检查时可以被接受的。
4、一个测试用例要有良好的结构
在一个简单测试用例中(仅仅是测试返回值),其结构分为“设置”和“返回值验证”两部分。
在一个复杂测试用例中(可能已经接近集成测试),其结构应该分为“设置”,“触发”(什么时候或场景下触发),“结果”。
这样的结构可以让测试用例更加可读以及可维护。
5、使用依赖注入
通过构造器或者公开接口为待测试类设置依赖,而不是在类的内部通过new的方式创建依赖。不要从类内部获取单例实例。
用接口封装一些系统或平台的类,然后其他系统去依赖这些接口,依赖注入的设计方式可以增加代码的可测试性。
6、MocksvsStubs
尽可能的使用真实的类。如果实在不行,在考虑用Stub(存根),如果还不行,那在考虑用mock。
给实体或值对象设的值应该是真实的,直接相关的服务应该是真实的,或者是存根过的,三方的依赖服务应该是存根过或者mock的。
在测试中过度的使用mock可能会导致测试结果失真,从而失去了测试的效果。
7、实体或值对象的默认构造器
当一个类被作为实体或者值对象时,如果有builders去构造默认值将是一个非常方便的事情。
通常来说,这应该是一个实体或者值对象中的默认实现,可以去修改对象中的属性对测试用例来说非常重要。如果没有这样的builder将会导致重复代码,测试用例也不好维护。
8、测试类组合
创建一个包含一些通用设置的基类,然后通过继承它并创建子类的方式来测试功能的某一部分。
这样可以将相关的测试类紧密的捆在一起,而且这种方式可以更好的组织测试用例的名称,比如讲测试用例描述中的通用部分提取出来。
把所有的测试用例扁平化的放在一个类里面会降低可读性。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。