使用VisualStudio2005TeamSystem进行单元测试[12] 软件测试
我编写什么类型的测试?
一个方法及其相关测试之间很难有一对一关系。编写自动化单元测试需要开发人员“进行全面思考”,并了解关于对象的所有内容 — 它将如何消耗、使用、处理,以及在任何情况下如何起到积极、消极、非决定性作用。
例如,请考虑一个用于针对数据库中 Customer 项执行 CRUD(创建、检索、更新、删除)功能的典型对象方法。对于该对象的 Load() 方法,要针对以下方案编写测试:
"
构造函数测试 — 确保对象正确加载,带有正确的信息。
"
PositiveLoadScalarTest — 测试数据库中一个 Customer 的成功加载。
"
NegativeLoadScalarTest — 测试一个 Customer 的失败加载,即该 Customer 不在数据库中。
"
PositiveLoadTest — 基于已知数据测试 Customer 的成功加载。
"
NegativeLoadTest — 测试数据库中不存在的 Customer 的失败加载。
"
NegativeValidationTest — 确保验证逻辑正确工作。
这些只是自动化单元测试套件许多用法中的一部分。我曾经听说一个小团队使用单元测试查看针对其组件的已知安全攻击。从宏观的角度来看,单元测试应该明确保证组件的正常使用。具有丰富的测试集将使团队确信您已经准确实现了既定的目标:编写有效的软件。无论自信源自哪里 — 这就是您需要编写的测试。
您测试什么?