Hasty Briefsbeta

双语

The Big TDD Misunderstanding

9 days ago
  • #tdd
  • #unit-testing
  • #software-architecture
  • 在单元测试中,'unit'一词最初指的是测试本身,而非被测系统的某个单元
  • 测试领域存在两大思想流派:模拟派(mockist)与经典派(classicist)
  • 从真实用户视角(由外向内)编写测试能提升质量保证和重构抗性
  • 测试时应避免过度隔离代码以防脆性测试,仅需隔离真正的外部服务
  • 永远不要在缺少失败(红色)测试的情况下修改代码,这是TDD的基本准则
  • 测试驱动开发本身并不驱动软件架构,非功能性需求(NFRs)才是架构的决定因素
  • 自动化测试的权衡在于质量保证、重构抗性和反馈速度三者间的平衡
  • 使用真实数据库并避免过度打桩能使测试更具意义和可靠性
  • 当测试反映真实使用场景而非孤立单元时,测试覆盖率报告才更具价值
  • 可考虑传统测试金字塔的替代方案,如'蜂窝模型'或'测试奖杯'理论