让它简单吗?

2plus2 Make it simple? 规范是重要的 - 这句话是大家都清楚。 一种广泛使用的产品,没有一个规范的技术或语言是没有用的。 一个没有一个TestSuite规范是危险的。 一个没有标记的TestSuite和考验是不可能的。 这个过程相当复杂。 不过有一些方法可以简化的标记阶段。

至于Java语言规范 (JLS的)和 Java虚拟机规范 (JVM中)他们在FrameMaker中写的。 后来规范是出口到HTML和PDF。 标记嵌入到HTML版本。 我的看法是,标记信息应该被置于(或连接)的起源文字。 在我们的情况下,它是FrameMaker中的文件。 我不知道这是有可能的话,但我猜它是。 如果没有,也许FrameMaker中是不是最好的解决办法。 因此,我们将大大减少时间和转移旧标记和标记了新的案文需要努力争取。 而且在写作的规范下一次修订与TCK的团队撰文标记连同所有chenged和新论断。 我想说的最佳途径是写作的规范和标记过程是在同一时间内完成。 这是合理的撰文指出测试应该测试什么报表开发。




  • 分享/书签
Print This Post 打印此职位

断言和标记

book Assertions and markup

这是非常重要的是有一个好的过程,同时编写测试套件。 我会谈谈JLS的使用,这对于一个。

正如前面提到的最终产品是考验。 之间有一个测试和规范的关系。 断言驱动的过程给出了一个不知是什么,其实每个组的测试检查,规范。 开发利用这一关系可以计算的覆盖范围,获得关于该试验不写,等断言名单

断言是从一个可以测试规范的声明。 和第一个步骤是确定在规范的所有断言。 之后,开发人员可以编写测试。

断言为例从爪哇语言规范: smt Assertions and markup

  • 一个编译时错误,如果同样的修饰符出现不止一次在接口声明。
  • 一个可执行文件名成员的类型包括其立即封闭类型,其次是$,其次是各成员的简单名称的二进制名称。
  • 阿continue语句只能出现在一段时间,这样做,或声明。

有可能是是非可测试的不确定性或涉及许多发言。 有时候,这些陈述包括像“可能”或“可能”。 这不是真的,如果一个句子有“可以”一词是不检验的,但通常是这样。

举例非可验证的发言:

  • 我们不推荐这种“混合符号”的数组声明。
  • 情况下一个对象的类不是静态已知可能导致运行时类型错误。
  • 但是,如果一个表达式的评价抛出一个异常,那么该表达式完成突然说。

有许多讨论和争议的断言。 有人说,不应作为例子断言对待。 也有人说,每个语句是一个主张和他们有两种类型:可测试和非测试的。 我个人的看法是,一种说法是肯定的东西可测试。 而且在大多数情况下的例子只是因为测试可以书面检查的具体例子断言。

查明在规范的过程称为断言标记。 有许多方法。 但在任何情况下,用户必须能够获得这一声明是否是一个声明,并以某种方式区别不同的说法信息。 可以有一个单独的映射与断言库和他们的ID的的声明。 我喜欢纳入规范的标记的想法。 这种方法被选中,是因为语言方面的Java SE的测试套件。 JLS的是书面的FrameMaker中。 随着出口机制的PDF和HTML版本创建的。 HTML的版本是使用了测试套件的创建。

在JLS和一些特殊的锚JLS的2所确定的开始和结束的说法。 其他信息是assertionID和声明的简短摘要。 最终锚图像和对测试环节。 HTML视图和代码视图显示在相应的插图。 断言ID的是arr033,arr034,arr020等

JLC2 html1 Assertions and markup

JLC2 html code1 Assertions and markup

总的想法可以被描述为:

的<a name=assertionID> <! - HTML注释shord描述为- >
在这里断言声明
<img src="pics/assert.gif">的<a href="path到test">测试ID,这是相同的说法编号</一>

如果规格不同地区分别发表的声明是一个测试测试第一个标记会像arr033_0,arr033_1,arr033_2东西。

这种建筑形式被用于JLS和JLS的2。 这是轻微JLS3修改,但主要的想法得到了维护。 我知道与非静态断言在一个单独的仓库,其中编号是一些哈希值计算,并根据内容的ID保存方法的一些例子。 有几个原因显示了它是不是一个非常好的解决方案。 总有一个艰难的过程迁移到新版本的规格。 但在我看来,这是很大的问题,静态ID的更容易嵌入到规范。




  • 分享/书签
Print This Post 打印此职位