基于模型的测试简介(一)
作者:freeball 来源:www1.testage.net 转自http://www.csai.cn
定义和摘要:基于模型的测试简单的说,就是在根据系统的需求、功能规格说明对系统进行建模。根据模型自动生成测试用例,并执行验证过程的测试方式。
基于模型的测试 (MBT) 能产生下列益处:
缩短日程,降低成本,提高质量
得到用户行为模型
提高开发和测试的沟通
尽早发掘出规格说明和设计中的含混性因素
自动生成测试
自动运行测试
减少需求变更带来的测试套件的变更
能够评价回归测试
能够达到软件质量
一般过程为:
(1) 建立模型
(2) 生成期待输入
(3) 生成期待输出
(4) 运行测试
(5) 比较实际的输出有期待输出 , 和 (5) 决定下一步操作 ( 是否更改模型 , 生成更多的测试 ,
或停止测试 , 估计软件的可靠性 ( 质量 ))
建立模型:要想建立一个以测试为目的的模型,首先要把系统功能抽象的表达出来。
测试员不仅仅要了解软件,还要搞清楚软件的运行得环境。
模型应该是软件的行为一个描述,这个描述包括了系统接受的输入序列。它们是通过程序(模块)的动作、条件、输出逻辑或者数据。
为了让很多人能够协同测试系统,那么我们描述的模型必须是符合实际,并且清晰,一致和容易理解的。
有用的模型能够自动生成测试。
有很多建模技术可供选择。
常用的行为建模技术包括Decision Tables、判定表
Finite State Machines、有限状态机
Grammars
Markov Chains (Markov process)
Table 1: 建模方法指南
|
系统特征 |
建议建模方法 |
|
Processes formal language (e.g., web browser process HTML, compiler) |
Grammar |
|
Protocol-based |
Grammar |
|
State-rich systems (e.g., telephony systems) |
Finite State Machines |
|
Few states, transitions caused by external conditions, as well as user inputs |
Prefer statecharts over Finite State Machines |
|
Capable of being model by Finite State Machine; statistical analysis of failure data or reliability assessment is desired. |
Prefer Markov chains over Finite State Machines |
|
Use of operational profiles to guide test generation is desired. |
Markov chains |
|
Must ensure correctness for all combinations of input values. |
A tabular model; |
|
Need to represent conditions under which inputs cause a particular response, Finite State Machines too awkward. |
Decision tables |
|
Parallel system, individual components capable of being modeled by state machines |
Statecharts |
|
Parallel system,some components not capable of being modeled by state machines |
Models for different components; “one gaping hole” [El-Far 2001a] in Model-Based Testing |