一、概述
-
很多程序设计的说明书是采用形式化的方法进行描述的,对于这种程序规格说明书可以采用语法测试的技术进行测试。
-
形式化的描述方法采用的是巴克斯范式,巴克斯范式是一种通过递归的思想来表达计算机语言符号集的定义规范。
二、基于两个目标来设计测试用例
使用语法测试技术设计测试用例时要基于下面两个目标进行设计:
1、正面测试
2、负面测试
三、语法测试测试用例的设计原则
1、每当语法强制选择时,就为该选择的每个备选方案导出一个“选项”。
2、每当语法强制执行迭代时,为此迭代导出至少两个“选项”;一个包含了最小重复次数,另一个则大于最小重复次数。
3、每当迭代被要求具有最大重复次数时,为此迭代导出至少两个“选项”,一个具有最大重复次数,另一个则超过最大重复次数。
4、对于任何输入,可以对定义的语法改变以导出无效输入(“变异”)。
四、巴克斯范式简单举例
1、单词=一个字母或多个字母
单词::=<字母>|<字母><单词>
2、email的语法
例如:123456abc@qq.com
规则: 名字@名字.域名
email ::= <name> "@" <name> "." <domain>
name ::= <alpha> | <alpha> <username>
alpha ::= <letter> | <digit> | "_"
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
letter ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
domain ::= "com" | "edu" | "org"