让它简单吗?

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

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




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

断言着色

rainbow Assertion coloring 一致性测试开发涉及到确定在一个规范的说法,写一致性测试,检查连接确定的断言和测试,它测试的说法。
让我们从以下几点:
- 断言标记
- 实际的说法是很难查看规格(目前只有小的GIF断言在每个断言结束的)
- 完整的说法,只是通过阅读网页直接或寻找在每个单独的测试效果
- 断言开始是很难看到的html代码
- 提供一个可视化的方式来查看轻易断言是问题,我们正在努力解决。

主要的一点是要颜色的说法(规范文本本身)使用HTML标签。 研究了哪些HTML标签来使用。 科,跨度,表和字体标签被看着。 最好的解决办法是字体标签。 因此,与周围的文本字体标记。 字体标签的class属性对应的说法,类型。 铁如果是新的asserion它与红色,以表明,该测试需要书写,老断言色绿,表明测试已经存在。 应该有一个实用程序(脚本或Java程序)来扫描标明了规格,并自动添加着色所需的标签。文本的背景颜色将会由断言标题属性的颜色决定的。 这种方法和工程实施罚款。 对于可用性的目的,应该有一个机制来隐藏着色,铁一个javascript。

这一解决方案的缺点是,色彩是静态的,因为它是基于属性的标题。阿秒的解决办法,将检查的tool为一对身份证的断言或in断言link基于一个测试(existence)。如测试存在,我们会做一些设置的这一说法的颜色。它可以像设置标题属性的简单。 阿该解决方案将是不利的说法着色将仍然静态的,而是当用户运行脚本的基础。

在给定的一个变化是,我们的解决方案将动态生成的覆盖面时,该规范是在浏览器中查看数据。 如果我们将确定一个考验,对一个给定的断言和色彩的说法相应的测试目录是否存在。 为此,可以通过一个JavaScript / VBScript中使用对象,允许访问文件系统。 这种方法将是动态的,应该始终拥有最新的断言覆盖状况。

下面是一些例子, JLS3章“转换及推广”和“接口”:

JLS3 colored Assertion coloring

JLS3 colored2 Assertion coloring

断言conv063,conv047,conv065,conv48,conv66和conv049从以前版本的规范,他们没有改变,并不需要更新测试 - 颜色是海蓝宝石(neurtal绿色)。 Conv155和conv156是新的,应制定新的考验,断言是明显的红色。 Conv064已更改,测试更新是必要的 - 橙色。 Annot019是一个新的,测试存在,但他们必须改变 - 鲑鱼的颜色。 Annot020是新的,但кудумфте测试存在 - 颜色浅绿色。

该规范着色的主要优点是,规范是可视化。 用户可以看到整个断言和它的标题。 一看就知道在规格,其中有与覆盖率低的部分或大量的测试,应添加或更改的区域。 基本上是有可能看到一个规范是如何好标记,以及如何以及它是经过测试。




  • 分享/书签
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 打印此职位