27 | 产品测试:除了性能跑分,还能测个啥?
王磊
该思维导图由 AI 生成,仅供参考
你好,我是王磊,你也可以叫我 Ivan。
这一讲我们的关键词是“测试”。无论是作为程序员还是架构师,我们都不会忽视测试的重要性,它贯穿于软件工程的整个生命周期,是软件质量的重要保障手段。
不过,提到分布式数据库的测试,你也许会有些疑问,我又不是数据库研发人员,还要关心测试吗?
当然是需要了。比如,拿我来说,一名银行的科技人员。银行和很多传统企业一样,多数应用系统都是构建在商业软件之上,对于基础软件研发的投入比较有限,所以多数银行是不具备自研分布式数据库能力的。但是,分布式数据库的高并发、高可用性特点,意味着使用它的一定是非常重要和关键的业务系统。那么,为了保证系统的安全运行,即使不是开发者,我们也仍然需要做大量的验证和测试工作。
说到这,我猜你会想到一个词。对,就是 POC(Proof of Concept)。POC 的意思是概念验证,通常是指对客户具体应用的验证性测试。那验证性测试又具体要测些什么呢?对于数据密集型系统,很多企业的 POC 都会使用 TPC 基准测试。
TPC-C
TPC(Transaction Processing Performance Council),也就是国际事务性能委员会,是数十家会员公司参与的非盈利组织。它针对数据库不同的使用场景组织发布了多项测试标准,其中被业界广泛接受有 TPC-C 、TPC-H 和 TPC-DS。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
混沌工程和形式化验证在分布式系统测试中的重要性 混沌工程和形式化验证是分布式系统测试中的两个关键概念。混沌工程旨在提升系统的容错性,通过在生产环境进行实验来建立对系统抵御不可预知问题的信心。它强调故障注入和观测系统在受控范围内,体现了反脆弱的思想,试图从整体运维的视角提升系统的可用性。另一方面,形式化验证则是通过数学方法去证明系统的正确性,使用数学工具定义程序逻辑,从而达到证明软件无Bug的目标。虽然形式化验证在实际工程中的应用成本较高,但它在验证关键设计逻辑方面具有重要意义。 在测试方面,TPC-C是针对OLTP数据库的测试规范,而Jepsen则是用来测试分布式存储系统的一致性验证框架。TPC-C在企业的POC测试中广泛应用,但需要注意产品针对性优化可能导致评测指标失真,因此对产品架构的深入了解至关重要。而Jepsen通过故障注入的方式进行测试,覆盖了普通测试无法发现的场景,具有一定的权威性。 总之,混沌工程和形式化验证在分布式系统测试中都具有重要意义。混沌工程试图提高系统的可用性和稳定性,而形式化验证则致力于证明系统的正确性。这两个概念为分布式系统测试提供了不同的思路和方法,有助于提升系统的质量和稳定性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库 30 讲》,新⼈⾸单¥59
《分布式数据库 30 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- ifxdba多数银行是不具备自研分布式数据库能力的~~~对于很多城商行或省行有必要使用分布式数据库么? 真的有这个业务需求么?
作者回复: 28讲我列举了十家银行的选型,并不是说大多数银行都使用了分布式数据库。有意思的是,大型银行更加保守,反而是一些城商行率先上线了分布式数据库,它们并不是从单一的技术视角来评估。
2020-11-121 - webmin以前看到有文章介绍测试多线程操作时是否会出现死锁的情况,用证伪的用例是很难模拟一些瞬间的情况,最终的手段是使用数学建模的方式来证明,但是文章没有给出具体的理论和工具,今天看到了老师给出可实操的工具,真是捡到宝,感谢老师。
作者回复: 很高兴对你有帮助:)
2020-10-141 - 佳佳的爸分布式存储的测试工具很多: 1. 元数据性能测试: mdtest 可以加上mpi 在多机并行执行 2. 存储性能测试: fio,vdbench, iozone, iometer等。其中fio已经成为首选的SSD读写性能测试工具 3. POSIX语义测试: fstest套件。2021-06-094
- 游弋云端混沌工程在TIDB和阿里做的比较好,都做了相应的开源。2020-10-224
- wy看这片文章开拓了视野,了解到到了混沌工程和tla,对于像数据库这种基础设施,形式化验证少不了,因为它要面对的业务太多太复杂,无法全部通过测试用例的手段去验证。2021-01-31
收起评论