4、单元测试有哪些优点

  1)它是一种验证行为。

  程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们可以更自由的对程序进行改进。

  2)它是一种设计行为。

  编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。

  3)它是一种编写文档的行为。

  单元测试是一种无价的文档,它是展示函数或类如何使用的佳文档。这份文档是可编译、可运行的,并且它保持新,永远与代码同步。

  4)它具有回归性。

  自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。

  5、什么时候进行单元测试

  单元测试越早越好,早到什么程度?XP开发理论讲究TDD,即测试驱动开发,先编写测试代码,再进行开发。在实际的工作中,可以不必过分强调先什么后什么,重要的是高效和感觉舒适。从经验来看,先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。所谓先编写产品函数的框架,是指先编写函数空的实现,有返回值的随便返回一个值,编译通过后再编写测试代码,这时,函数名、参数表、返回类型都应该确定下来了,所编写的测试代码以后需修改的可能性比较小。

  6、由谁来进行单元测试

  单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码。测试部门可以作一定程度的审核。

  7、单元测试的任务

  单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。

  模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测试才有意义。测试接口正确与否应该考虑下列因素:

  1)输入的实际参数与形式参数的个数是否相同;

  2)输入的实际参数与形式参数的属性是否匹配;

  3)输入的实际参数与形式参数的量纲是否一致;

  4)调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;

  5)调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;

  6)调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致;

  7)调用预定义函数时所用参数的个数、属性和次序是否正确;

  8)是否存在与当前入口点无关的参数引用;

  9)是否修改了只读型参数;

  10)对全程变量的定义各模块是否一致;

  11)是否把某些约束作为参数传递。