【测试分析】语法测试
◆版权声明:本文出自胖喵~的博客,转载必须注明出处。
转载请注明出处:http://www.cnblogs.com/by-dream/p/5268958.html
ESSENTIAL SOFTWARE TEST DESIGN——TESTING SYNTAX
语法都有着同样的格式,语法测试的不同随着涉及的工作的不同而不同。我打算将概念分成两部分:总体的和详细的。总体的语法测试包含检测不正确的语法格式在窗口中、报告中或者其他数据输出的地方,如何控制基本的输入流就是总体语法测试该做的。非法的数据在模块或者窗体应该有着同样的缺陷处理的方法。这往往是一部分的可用性测试。基于此,你可以用通用的标准,检查清单、数据模型、设计文档。需求、设计、开发都有着相同点,不同的地方需要不同的人来处理。这样测试可以确保我们的应用是有着同样的格式。详细的语法测试需要用在这些部分,这些部分就是一个参数的语法格式是否很小心的用对了。举个例子,当涉及到处理日期、个人电话号码、邮编地址。
一、数据模型——总体语法测试:
首先从创建一个新窗口或者表格开始。对每一个参与的对象,列出它们不同的域和语法。
页眉 | logo | 名 | 姓 | |
对话1 | ||||
对话2 | ||||
表格1 | ||||
表格2 | ||||
邮件输出1 | ||||
邮件输出2 | |
这就是总体语法测试的模板,这很重要:有一个同样格式的应用程序,尽管涉及需求的人和开发的人员是不同的。
二、测试数据——总体语法测试:
随着字段定义的帮助和基本技术相等的划分和边界值分析,你需要涉及适当的测试值。这是特别重要的:所有的值都必须经过测试。所以长的名字和不常见的符号在输出的报告中需要容纳它们。
1、Check-listing 的值:
对于不受严格语法控制的部分,你可以适当的使用下面的check-list,这里面为每个不同的部分设置的通用的字段。可能的话,你已经测试了之前的测试用例的正常值。
• 空域
• 字符的最小值
• 字符的最大值
• 数字字符
• 非数字字符
• 默认值
• 无效值
• 必填字段填写的一个检查
• 语法格式
还有什么可说的,你可以在所有的字段中输入无效值,但你应该尝试无效值输入到一个你可以自己更改内容的区域。你可能需要取执行一个分析日期字段和其他被严格定义格式的字段,因为这些字段相比其他字段更需要去检查。
2、Check-listing 的布局
使用一个check-list 去检查:
- 所有的元素都存在:页眉、页脚、logo、按钮、字段
- 标题、页眉、页脚和按钮有正确的外观和位置
- 标题和信息在所涉及的所有窗口保持一致
- 功能按钮的在整个应用程序以相同的方式进行工作
- 所有参数在所有元素中都以相同的方式来显示
举个例子:语法的check-list
在这个例子中,我通过网络上的表单注册自己的信息,正如一些人感兴趣的公告,有关测试会议的。前两个公告包含了几个有趣的和不正确的变化的在地址标签上。第三个公告包括一个单卡,这个单卡在附加的标签上有一个地址,并且功能似乎正常工作中。
名 | 姓 | 地址 | 城市 | |
web注册 | Torbjörn | Ryber | Värtavägen 73 | Sweden |
Letter 1 | Torbj rn | Ryber | V rtav gen 73 | Sweden |
Letter 2 | Torbj}rn | Ryber | V|rtav|gen 73 | Sweden |
Letter 3 | Torbjörn | Ryber | Värtavägen 73 | Sweden |
从语法测试的结果来看,其中在相同的系统中格式不同。在这里不同的功能无法处理瑞典字符。
个人理解:
这里其实就是对有着一类相同格式的系统去验证他们是否有着同样的样式和属性。例如QQ的单人会话、讨论组和群聊:
虽然他们是不用的页面,但是他们都有着固定的格式,比如头像的大小、摆放的位置,各个区域的大小、分类等等,这里只是为了更好的解释这个测试方法,所以来举例,真是测试的过程中确实有些牵强,个人感觉此章节可能更适合传统的银行测试系统之类的软件吧。
三、数据模型——详细语法测试:
对于严格语法控制的部分,你需要执行更详细的测试。你描述的是一个适用的规则列表,它是一个连续的分解到它的最小量。一种格式是常见的是贝克诺尔格式 - BNF(见下文)。所有这些规则必须再详细进行测试:测试数据的分组已经在模型中了。
举例:根据BNF来处理"瑞典的个人识别号码"(Personnummer)
规则 1:Personnummer = 年 月 日 «–» Number
规则 2: 年 = 1880 < 整型 ≤ 2007
规则 3: 月 = 01 < 整型 ≤12
规则 4: 日 = «01» < 整型 ≤ «31» if 月 = «01»| «03»| «05»| «07»| «08»|«10»| «12»
规则 5: 日 = «01» < 整型 ≤ «30» if 月= «04»| «06»| «09»| «11»
规则 6: 日 = «01» < 整型 ≤ «28» if 月 = «02» if 年不是闰年
规则 7: 日 = «01» < 整型 ≤ «29» if 月 = «02» if 年是闰年
规则 8: Number = N1 N2 N3 N4
规则 9: N1, N2 = «0» < 整型 ≤ «9»
规则 10: N3: «1»| «3»| «5»| «7»| «9» if 性别为男
规则 11: N3: «2»| «4»| «6»| «8»| «0» if 性别为女
规则 12: N4 = 通过公式计算出的一个控制码
四、文本有多大?
在报表中的字段必须能够处理的特定字符数。在数据中,它是什么字符都不要紧,但实际上一个20个字符的书面文本字符串该有多大呢?在大写字母和小写字母的选择上这可以有很大的区别,而不是依赖它字符是什么。
iiiiiiiiiiiiiiiiiii
WWWWWWWWWWWWWWWWWWWW
不用语言的文本有着不同的长度?IBM估计,从英语翻译到其他语言,使得文本增加了空间,例如:
英语- 字个符数 |
其他语言- 需要额外的空间 |
最大10 | 101 - 200 % |
11 — 12 | 81 - 100 % |
21 — 30 | 61 - 100 % |
31 — 50 | 41 - 60 % |
51 — 70 | 31 - 40% |
超过70个 | 30% |
从英语翻译到别的语言,举个例子,瑞典语就需要给文本增加空间。Source: Cem Kaner et al. (1999):Testing Computer Software (Originally from IBM)
这会出现问题,例如菜单和对话从英语翻译成另一种语言。举个例子:text Preview 翻译成瑞典语为Förhandsgranska,这有之前的两倍长。
其他内容:
下面这篇论文所讲述的是另外一种语法测试,更侧重于代码层面的静态分析,和上面提到的 "语法测试" 有些不一样。