我目前正在从事一个已经生产运行超过两年的项目。该项目广泛使用单元测试和脚本化UI测试。最初的单元测试覆盖了系统框架、业务规则和状态转换(或工作流)。测试脚本用于黑盒测试。然而,随着时间的推移,维护我们完整的单元测试集的成本变得越来越昂贵,特别是与状态相关的单元测试。
经过一番调查后,我们发现与工作流程相关的单元测试相比,测试脚本更加有效(即提供更好的覆盖面),而且维护成本更低廉。这并不是说单元测试的价值完全被否定了,但确实提出了这样一个问题,是否可以放弃某些类别的单元测试以支持测试脚本。
我们的项目采用迭代增量模型运行。