单元测试知识问答[3] 软件测试
我希望依赖全自动的工具来完成单元测试,这一想法现实吗?
完全自动化是一个美妙的愿望,但由于单元测试的基本特性,完全自动化的单元测试是不现实的。
与其他不同,单元测试是“隔离”的测试,要求代码具有可测性,一个项目甚至一个文件中,难免会有些影响可测性的代码,编译到这些代码时常常会产生编译错误,因此,全自动的单元测试工具往往只能测试小部分代码,即使使用某种技术手段屏蔽掉编译错误,也得不偿失,因为同时也屏蔽掉了改良代码整体结构的宝贵机会。如果采用自底向上的方式,一个一个文件测试,测试一个文件前,先将该文件加入测试工程并编译,没有编译错误时再测试,这样可以及时发现并消除不当耦合,使代码具有可测性,这种非全自动的方式,可以测试绝大多数代码,也保证了代码具有良好的整体结构。
另一方面,主要由测试工具自动生成测试用例来进行测试往往没有实际意义,因为测试工具无法自动了解程序的功能,因此,自动测试用例通常只能发现异常之类的极端错误,大多数一般错误都是无法发现的。测试工具最重要的不是自动生成测试用例,而是能提供快速建立和编辑测试用例的工具。
如果由开发部门实施单元测试,那么测试部门要做哪些工作?
推动、组织单元测试的实施。单元测试既然叫做“测试”,开发部门常常认识不到其重要性和必要性,需要由测试部门推动和协助组织实施。
制定单元测试规范,培训单元测试技术。
检查、审核单元测试结果,保证单元测试的有效性。
文章来源于领测软件测试网 https://www.ltesting.net/