基于模型的智能测试

在DevOps盛行的今天,大家越来越关注软件自动化测试。在我的理解里,自动化测试有两种。

  • 由人工编写好各种测试用例,设计各种测试场景,然后通过软件、脚本去自动执行这样的测试。如常见的CI普遍采用这种测试方式。
  • 由人工对软件模型进行描述,由机器自动根据软件模型,生成测试用例,然后自动执行测试。

第一种测试方式比较常见。我们主要讨论第二种测试方式。第二种测试方式,也是开源软件ZStack所采用的测试方式。

基于模型驱动的测试

基于模型驱动的测试,并不是一个新的技术。早在六七年前已经在开始使用。基于模型驱动的测试指的是:开发人员首先对软件进行模型抽象,分离出操作有限状态机。在将状态模型输入,由算法自动进行测试用例的设计,并且执行测试。

列表内容

上图为ZStack提供的虚拟机状态转移图。软件开发人员对操作进行抽象后,将模型输入测试机。测试机将会根据该模型进行测试用例设计。这样的测试用例设计会比人工设计更加全面。
但是这种方法的一个主要的难点在于,在模型设计好了以后,如何去设计实现自动测试用例的设计。在基本状态模型输入后,我们设计几种不同的测试用例生成方案。如公平调度算法和基于历史测试路径的调度算法。 公平调度算法会让智能测试系统尽量选择最少执行的行为作为下一个操作。 基于历史测试路径的算法可以让智能系统选择曾经没有测试过的路径。
因此,此种类型的测试方式,对于测试的实现,具有较大的挑战。开源Laas软件ZStack对其进行了实现,可以参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值