在测试并发程序时, 所面临的的主要挑战在于潜在错误的发生并不具有确定性, 而是随机的, 要在测试中将这些故障暴露出来, 就需要比普通的串行程序测试覆盖更广的范围并且执行更长的时间.

    并发测试大致分为两类:

    • 安全性测试: 通常采用测试不变性条件的形式, 即判断某个类的行为是否与其规范一致
    • 活跃性测试/性能测试
      • 吞吐量: 一组并发任务中已完成任务所占的比例
      • 响应性(延迟): 请求从发出到完成之间的时间
      • 可伸缩性: 在增加更多资源的情况下(通常指CPU), 吞吐量(或缓解短缺)的提升情况

    这部分没怎么看懂, 略过先