单元测试关注构成软件系统的最小单元:程序员所创建的的函数、类和方法。大多数经理都要求自己的程序员做单元测试,而且程序员也声称做了单元测试。但是在实践中变数非常大,而且很难确认。
真正的单元测试要孤立地测试单元。要创建桩处理对外调用,创建驱动器提供对内调用。构建这些桩需要很大工作量。
自动化单元测试最常见的形式,通过在语境中测试单元来避免开发桩。我们也许可以把它叫做单元集成测试。对于自底向上构建的系统,这种形式的自动化会相当容易。
测试员需要一个像JUNIT或XUNIT这样的框架来管理测试包的执行。这样做既不太困难也不太昂贵。代码通过该语言所支持的一般调用接口测试。程序员编写测试所使用的语言与产品软件语言一样。针对JAVA的测试用JAVA写,针对C语言的测试用C写。将单元测试用于回归测试、冒烟测试和配置测试。
应该在告诉程序员该做什么上十分小心。但是如果经理要求实现更多的测试自动化,则经理应该知道程序和测试员可以有很多方法提供帮助。如果程序员显示出对单元测试感兴趣,我们建议测试自动化设计人员应该提供帮助。单元测试看起来是极端编程和其他敏捷法方法的核心实践(Bech 1999 和 Beck等2001)。