基于模型驱动的自动化测试设计
上一篇 /
下一篇 2012-10-15 09:26:25
/ 个人分类:自动化测试
51Testing软件测试网$N
i Vx M n~7knVF 序言:一直在思考一个问题:业界,自动化测试被
大家认为应用的场景主要是产品稳定、周期较长的测试项目,而且自动化测试不是用来发现和定位问题的。大家应该知道,“杀虫剂效应”,虫子对农药产生抗体
的,那产品何尝不会对反复不变的测试产品抗体呢,那么这样,自动化测试的效果只会越来越差,根本上只能去更改自动化测试脚本,让其变得更有适应性。这其实
自然界的一种规律。而更好的方法,我觉得是只需要在自动化测试系统中添加相应的因子或者是模型,系统则会自动适应生成一系列的自动化测试用例,业界内流行的机器学习也是让程序变得有学习型,前两个月对自动化测试中的基于模型的技术进行了研究,还弄了个小专利,不过没有推广,因为其要求测试人员的一些编程功底,而且成熟度不够,但是却让我更相信证一个事实,那就是自动化测试是可以用来发现更多问题的。
7i0kj:y"X
u0y B0rIby-m;o0 (PS:序言好像写的有点长了…)51Testing软件测试网g6r"YA,C#Fv
h
z)T p5iO0 一、人工测试的场景51Testing软件测试网,x4vR0Yc*K5mO3\
y6~r)Clu-e0 为什么人工往往比自动化测试更具有效率,分析一下:51Testing软件测试网#C,zM;X0H.d
51Testing软件测试网,G_%R[2Q's 1、人工具有反应性,发现产品异常不是去继续按用例执行,而是根据异常结果进行不同的处理,因而能快速发现问题。
Pk7f&_n'd051Testing软件测试网*yz.i/GF?-^ 2、人工具有变化性,能够自我学习,并且基于功能,快速发现新的测试用例,从而让测试变得更有充分性和适应性。
'tG
tk(eR04h xIlc-_i^0 二、基于模型驱动的应用51Testing软件测试网5hUrz nn/k8X
bP
51Testing软件测试网%s4}j#m7[)O ]
x
所谓的model,其实是一系列的状态机,一般都是有限状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型可以,可以将一个有限
状态机看做是一个特殊的有向图(这个在算法导论中可以参照),它包括一些状态(节点)和连接这些状态的有向弧。每一个有限状态机都有一个启始状态和一个终
止状态和若干中间状态。每一条弧上带有从一个状态进入下一个状态的条件。下图是我画的一个说明图:51Testing软件测试网(h,~K&|C6BA&l
51Testing软件测试网$AK1NOJ6H9P`
从开始模型起,箭头表示上一个模型能够根据不同的条件触发进入下一个模型,经历若干个模型后,到达结束模型止。从而获得了一系列的遍历路径。这么一说,也许大家就能想到如何将其技术小用在测试中了吧。
I,}'cDx2i0 三、基于模型驱动的自动化测试设计