基于模型的测试简介(一)
作者: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;
Prefer Finite State Machines over Markov chains

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

回《软件评测师》