ZStack——自动化测试系统3:基于模型的测试

模型测试系统是zstack-woodpecker中的一个子项目。通过有限状态机和行为选择策略,它可以产生随机的API操作,一直运行下去,直到遇到一个缺陷或者预定义的退出条件。ZStack依赖模型测试去测试真实世界中难以遇到的边界用例,在测试覆盖度方面补充集成测试和系统测试。

概述

测试覆盖率是一个判断一个测试系统品质的重要指示器。常规测试方法论,例如单元测试,集成测试,系统测试,都是由人类逻辑思考构建的,难以覆盖软件中的边界场景。这个问题在IaaS软件中变得更加明显,因为管理不同的子系统会导致极为复杂的场景。

ZStack通过引入基于模型的测试来解决这个问题。它可以产生由随机API组合构成的场景,会持续运行知道遇到预定义的退出条件或者找到一个缺陷。作为机器驱动的测试,基于模型的测试可以克服人类逻辑思考的缺陷来执行一些,看起来反人类逻辑,但是API完全正确的测试,帮助发现难以被人类主导的测试发现的边界问题。

一个例子可以帮助理解这个思想。基于模型的测试系统通常在执行大约200个API后暴露一个bug,在调试后,我们找到最小重现这个问题的序列是:

  1. 创建一个VM

  2. 关闭这个VM

  3. 为这个VM的根云盘创建一个云盘快照

  4. 从这个VM的根云盘创建一个新的数据云盘快照

  5. 销毁这个VM

  6. 创建一个新的数据云盘,使用4中的模板

  7. 从6中的数据云盘创建一个新的云盘快照

这个操作序列显然是反逻辑的,我们相信没有测试者会写一个集成测试用例或者系统测试用例这么做。这就是机器思考闪光的地方,因为它没有人类的感情,会做人类感觉不合理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值