基于模型的测试 (MBT, Model-based testing):通过构建能够正确描述被测软件系统功能特性的模型,然后基于这个模型产生测试用例并执行这些测试用例的过程。
步骤:
- 为被测试系统(SUT)建模
- 基于模型产生测试用例
- 将抽象的测试具体化使测试用例具有可执行性
- 执行测试
- 分析测试结果
3.6.1功能图方法
每个程序的功能通常由静态说明和动态说明组成:
静态说明描述了输入条件和输出条件之间的对应关系;
动态说明描述了输入数据的次序或者转移的次序。
功能图法:一种为了解决动态说明问题的一种测试用例的设计方法 。
功能图由状态迁移图(state transition diagram,STD)和逻辑功能模型(logic function model, LFM)构成
状态迁移图:描述系统状态变化的动态信息——动态说明,由状态和迁移来描述,状态指出数据输入的位置(或时间),而迁移则指明状态的改变 。
设计测试用例:
功能图法设计测试用例,就是如何覆盖软件所表现出来的所有状态,可以转化为两个层次的测试用例:
从功能逻辑模型(决策表或因果图)导出局部测试用例,覆盖各个状态的各种输入数据的组合。
从状态迁移图导出整体的测试用例,以覆盖系统(程序)控制的逻辑路径。
功能图法: 综合运用黑盒方法和白盒方法来设计测试用例,即整体上选用白盒方法——路径覆盖、分支和条件覆盖等,而局部上选用的是黑盒方法——决策表或因果图方法 。
3.6.2 模糊测试方法
模糊测试(Fuzz testing)方法:构造大量的变异数据作为系统的输入,从而检验系统在各种数据情况下是否会出现问题。
模糊测试方法:可模拟黑客对系统发动攻击测试,完成安全性测试,并能应用于服务器的容错性测试。