最近半年都在从事分布式系统的测试及质量过程管理工作,其中摘取和整理了一些较有用很有借鉴意义的经验,在这里转发一下,希望能给相关的同学一些提示和借鉴。
(1)分布式事务最难搞。需要注意的点有三个:
a)单系统、单机出现异常不能影响事务正确性
b)不可过分信任依赖系统
c)系统设计时的检查更为重要,多系统异常难模拟,难考虑完整。在系统设计时的reivew更能提前发现问题,避免后续测试出现问题再排查浪费时间。
(2)性能的小问题不容忽视。主要体现在以下几个方面:
a)关键性能指标看不到是系统稳定性的地雷
b)通过关注测试系统的性能表现可以快速发现线上系统隐患
c)测试人员比开发人员对线上性能更有发言权
d)及时的给出测试数据和改进意见是测试价值的体现
e)关注线上性能表现可以完善测试用例,更贴近实际
(3)GC是性能的重要因素。可以参考的点:
a)减少GC暂停时间是优化的目标
b)避免内存碎片对应用的影响
c)观察线上系统GC状况避免故障(内存泄露、FullGc)
d)Gc 日志和gc 监控帮助我们发现最合理的配置
(4)线上最容易发现隐患,测试人员要多参与线上应用情况和线上问题的分析。
(5)有bug也不能影响系统稳定,系统不可能没有bug,往往出了bug如何处理比bug本身更重要,这对系统的健壮性和系统的自我调节和报警能力提出了更高的要求。
(1)分布式事务最难搞。需要注意的点有三个:
a)单系统、单机出现异常不能影响事务正确性
b)不可过分信任依赖系统
c)系统设计时的检查更为重要,多系统异常难模拟,难考虑完整。在系统设计时的reivew更能提前发现问题,避免后续测试出现问题再排查浪费时间。
(2)性能的小问题不容忽视。主要体现在以下几个方面:
a)关键性能指标看不到是系统稳定性的地雷
b)通过关注测试系统的性能表现可以快速发现线上系统隐患
c)测试人员比开发人员对线上性能更有发言权
d)及时的给出测试数据和改进意见是测试价值的体现
e)关注线上性能表现可以完善测试用例,更贴近实际
(3)GC是性能的重要因素。可以参考的点:
a)减少GC暂停时间是优化的目标
b)避免内存碎片对应用的影响
c)观察线上系统GC状况避免故障(内存泄露、FullGc)
d)Gc 日志和gc 监控帮助我们发现最合理的配置
(4)线上最容易发现隐患,测试人员要多参与线上应用情况和线上问题的分析。
(5)有bug也不能影响系统稳定,系统不可能没有bug,往往出了bug如何处理比bug本身更重要,这对系统的健壮性和系统的自我调节和报警能力提出了更高的要求。