断言着色

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

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

此解决方案的缺点是颜色是静态的,因为它是建立在标题属性为基础。阿第二个解决方案将是,工具将检查以便就断言ID或在关联为基础的一个断言测试(存在的)。If测试存在,我们会做一些设置的这一说法的颜色。它可以像设置标题属性的简单。 阿该解决方案将是不利的说法着色将仍然静态的,而是当用户运行脚本的基础。

在给定的一个变化是,我们的解决方案将动态生成的覆盖面时,该规范是在浏览器中查看数据。 如果我们将确定一个考验,对一个给定的断言和色彩的说法相应的测试目录是否存在。 为此,可以通过一个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 打印此职位

规范,一致性,兼容性,测试...它们是什么一回事呢?

有时候这一切条件似乎很混乱。 或者它不如说他们通常甚至总是这样。 abstract Specification, conformance, compatibility, tests... What are they all about? 特别是当不同的个人和公司以不同的方式了解他们周围的情况。 因此,让我们从头开始。

有大量的标准规格或我们身边。 韦伯斯特字典描述标准, 例如设立的机关或某事,自定义一个模型,或一般的同意 所以基本上这是规则,其他人在使用清单必须服从。

让我们创建一个计算机语言。 所有规范首先是必要的,这将描述整个概念模型,告诉什么可以作为程序开发人员编写,将如何表现,将是什么编制,执行和在创建所有必需的文件,等等 - 就是这样,人都阻挡不了那里。 如果这个想法是不够好几个其他公司可能希望创建自己的实现:菲编译器和执行环境。 但他们必须遵守的规范。 否则,相同的程序将运行在一个并运行不同,甚至失败的其他执行。 规定由指定的专递执行所有被称为一致性

为什么会这样重要? money coins Specification, conformance, compatibility, tests... What are they all about? 那么,让我们说,这门新的语言是用于创建股票交换计划。 想象一下,这是写在美国,在纽约证券交易所以及测试和使用。 它是那么好,这在世界各地购买了许可证,并开始使用自己的语言实现这一新计划的其他国家。 如果执行不遵守规范,同样的程序可能与客户的钱不同的事情。 基本上这可能出售股票交流计划时,商业代理,推行“购买”按钮,或购买钢材代替水果。

良好的问题可以是:“为什么不同的实现? 让我们创建一个并使用它。“。 有不同的答案。 有几家公司可能想使用此不同的平台(Solaris操作系统,Linux,Windows)和设备(台式电脑,移动电话,掌上电脑,学生计算器等语言)。 其他人想要他们的需要优化算法,铁执行这些大型数据库程序等将是10倍的速度。

关键的一点是,几个不同的实现必须完全相同的工作,并根据该规范。 如果他们这样做,他们被称为兼容 坏的部分是,没有人可以肯定的。 这就是为什么核查机制是必要的。 通常它是一个测试套件,验证一致性和兼容性。 而在这种情况下,说是错误的东西几乎是兼容或99%兼容。 有可能是或否。

no bug2 Specification, conformance, compatibility, tests... What are they all about? 让我们走向一个例子。 Sun微系统发明Java语言。 为了更精确的几个不同版本的Java市场创建。 最有名的是 Java ME的 Java SE中 Java EE的 并为他们每个人是一个单独的规范。 Sun微系统有其自己的实现,这是最常用的。 然而,语言是那么好,有不少其他公司和它们的实现。 出于兼容性和一致性的目的有TCKs( 测试一致性工具包 )。 TCK的是一种产品,其中包括多项测试,这是正确的,如果按一个实现从规范的规则检查。

我的打算是让一个什么样的规格,一致性,兼容性和TCK的是,为什么他们是如此的重要思想。




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