由于各种缘由,一本《.Net单元测试艺术》突然出现在了我的办公桌上,于是我的单元测试之路就此开始。通过一两个月不间断的学习,以及不断结合具体的项目做开发,再结合书上的知识对单元测试有了一些个人的理解,想在此与大家交流一下。
下面分为三个部分,首先说说开发过程中个人发现的一些问题,再说说单元测试在开发过程中的作用,最后,也是最重要的如何在项目中应用单元测试。由于本人是从事.Net开发的,所以会以NUint作为单元测试工具,并且和大家分享一下,我在使用NUnit过程中遇到的一些问题,以及对单元测试的一些粗线的理解。
一、软件开发过程中存在的问题(没有使用单元测试的情况下)
- 难于定位bug的位置
- 修改一个bug,容易引进n个bug
- bug越后期发现,修改越困难
- 后期系统的复杂性,导致难于修改和重构代码
- 开发人员常认为编译通过,进行了几次手工测试就等于测试通过
- 在完全依赖外部系统的情况下,无法进行有效的测试
- 手工测试效率地下,针对性不强
- 代码难以维护和复用
- 开发人员觉得测试和修改是额外的工作,认为代码通过编译和调试就完成任务
二、单元测试在开发过程中起到的作用
- 单元测试大大节约了测试和修改的时间
- 单元测试能快速定位bug
- 单元测试能使开发人员重新审视需求和功能的设计
- 单元测试强迫开发者以调用者而不是实现者的角度来设计代码,利于代码之间的解耦
- 自动化的单元测试能保证回归测试的有效执行
- 便于理解API函数的如何使用
- 有效且便于测试各种情况
- 使代码可以放心修改和重构
- 单元测试可用作被测代码的用法说明,可作为开发文档使用
三、如何在实际项目中应用单元测试(.Net项目为例)
- 选用NUnit作为单元测试工具
- NUnit的简单使用
- 单元测试的核心技术
由于篇幅和个人精力有限,我会在下一篇中讲解如何在实际项目中应用单元测试。