记录合规性–关于TCK,规格和测试

使用软件规格非常困难。 不论在哪个地方提出; 您最终遇到了一个大问题:是否已实施并测试了所有指定的内容? 在瀑布驱动的方法学时代,这一直是一个问题,即使在撰写本文的今天,敏捷性和用户故事仍然不能保证您完美匹配。 如今,许多敏捷方法都与测试驱动开发甚至行为驱动开发概念完美地结合在一起,可以将问题颠倒过来。 而不是问“我的代码是否覆盖书面说明的每个句子?” 那些人只是假设首先编写测试是获得所需覆盖率的有效方法。 不利之处是缺乏容易发生的文档。 此外,您永远找不到合适的文档工作流程来将测试重构为一个文档。 如果您查看诸如“技术兼容性套件”(TCK)之类的东西,这些东西本质上或多或少是从任何基于文档的书面规范中收集的,那么对单个解决方案和项目可能有效的方法就结束了。

Java平台的TCK

深入探讨此类主题始终是使开发社区两极分化的一个不错的选择。 特别是因为文档仍然是一个话题,往往会被遗忘或完全拖延。 对我而言,文档是可能水平上的关键。 在框架级别,它确保您的用户不会挣扎,并且为快速采用奠定了良好的基础。 对我来说,Arquillian项目和团队在成立的第一年就做得非常出色。 即使在项目级别,也可以快速进出新团队成员而又不会失去知识。 但是还有另一个领域,不仅可以从中受益,而且与文档有很强的联系:Java TCK。 所有Java平台都将Java规范请求(JSR)定义为语言改进的重点。 技术兼容性套件(TCK)是一套测试套件,至少名义上检查Java规范请求(JSR)的特定所谓实现是否符合要求。 鉴于事实,大多数规范都存在于某些Office之类的文档中,并以PDF的形式发布以供审阅和评论,几乎不可能说TCK完全具有原始规范的定义范围。 这充其量是可怕的。 在大多数情况下,这很烦人,因为参考实现(RI)只是忘记覆盖规范的某些部分,而用户必须以特定的方式处理由此产生的错误或行为。 如果有可能的话。

这里只是有关TCK可用性的简短说明。 其中大多数截止到今天都还不可用,但要遵守许可条款和财务协议。 希望随着Java Community Process即将进行的更改,这种情况将会改变。

一些JBoss女神可以治愈文档

但是,一些聪明的人提出了解决方案。 几个RedHats付出了巨大的努力,这并不奇怪。 最初是作为hibernate-validator项目的一部分而创建的一个小项目,它是BeanValidation的RI,在这里可以解决这些问题。 未知且几乎未做文档记录的jboss-test-audit项目自称为“ TCK测试覆盖率报告的实用程序类”。 这完美地钉住了它。 它是对任何RI的非常轻量级但仍然强大的补充,它可以对特殊注释的源进行后处理,以收集任何旨在实施规范的项目的覆盖率报告。 它已获得Apache许可,版本2.0的许可,您只需要很少的步骤就可以根据自己的设置运行该程序。 这一切都始于规范。 这是一个xml文档,它定义了不同的部分和必需的断言。

<specification><section id="1" title="Chapter 1 - Introduction"/><section id ="2" title="Chapter 2 - What's new"><assertion id="a"><text>A simple sample test</text></assertion>
</section>
</specification>

本文档是您测试的基础。 现在,您需要继续进行,并为所有测试配备相关的部分和断言信息。 看起来可能如下所示:

SpecVersion(spec = "spectests", version = "1.0.0")
public class AppTest {@Test@SpecAssertion(section = "2", id = "a")public void simpleTestForAssertion() {App app = new App();assertEquals(app.sayHello("Markus"), "Hello Markus");}

结合一点Maven魔术(maven-processor-plugin),所有注释都将被解析,并且会生成一个有关总体覆盖率的报告。 如果您想看完整的引导示例,请在github.com/myfear上找到它。

坚硬的零件

这显然是显而易见的。 在测试中添加一些注释并不是您做过的最难的事情。 真正困难的是将您的文档转换成该精美的审核xml格式。 有很多方法可以做到这一点。 鉴于事实,领导JSR的大多数公司都已实施某种硬核文档管理,这应该使它成为一生难忘的事情。 如果您使用的是Microsoft Word,则还可以使用可用的xml模式与它一起编写格式正确的文档(这很痛苦!不要这样做!)。

大量的想法

小实用程序类的工作相当好。 但是,仍有很大的改进空间。 在此处具有一些支持性信息(例如问题编号或其他参考文献)可能是一个有效的想法。 我也希望能够在文档中使用asciidoc。 但是我在这里不是抱怨,因为我不会自己更改它。 但是,如果有人感兴趣,完整的内容在github.com上 ,我相信这些人知道社区的工作方式并接受贡献。

JCP的未来愿望

有了这种简单的方法,与JSR一起促进采用是一件好事。 因此,如果您喜欢它,可以与您信任的EC成员联系,并使他/她意识到这一点,并将其作为想法列入他们的清单。

参考: 法规遵从性文档–关于我们的JCG合作伙伴 Markus Eisele在有关Java的企业软件开发中的 TCK,规范和测试的信息。

翻译自: https://www.javacodegeeks.com/2013/06/documenting-compliance-about-tcks-specifications-and-testing.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgis已试图对空几何执行该操作_ArcGIS中地理配准与空间校正的不同

ArcGIS中地理配准与空间校正都是用于数据坐标变换的目的&#xff0c;他们之间有什么区别呢&#xff1f;1、处理对象不同&#xff1a;地理配准针对栅格数据&#xff0c;而空间校正针对矢量数据。因此空间校正需要建立在矢量数据编辑的基础上&#xff0c;空间校正之前应开始编辑。…

【计算机视觉】深度学习视觉领域常用数据集汇总

本文结合笔者在研究生学习、科研期间使用过以及阅读文献了解到的深度学习视觉领域常用的开源数据集&#xff0c;进行介绍和汇总。MNIST深度学习领域的“Hello World!”&#xff0c;入门必备&#xff01;MNIST是一个手写数字数据库&#xff0c;它有60000个训练样本集和10000个测…

CSS Hack 汇总速查一览

由于浏览器之间存在兼容性问题&#xff0c;在制作网页的时候&#xff0c;为了使页面能在不同浏览器中显示相对一致或者其他原因&#xff0c;网页制作人员总结了种种 Hack 方法&#xff1b;在解 决兼容性问题之前&#xff0c;这些方法还经常会用到。接下来&#xff0c;大前端将给…

玩游戏4g计算机的内存不足,玩游戏时出现存储空间不足, 无法完成此操作, 到底是何原因?...

游戏是Just Cause 2(即《正当防卫2》, 对不&#xff1f;这款游戏需要很高的硬件配置&#xff0c;显卡必须在DirectX10以上才行;你的是什么显卡&#xff1f;请确保安装了最新的.NET和DX10&#xff1b;另我搜索到下面的解决方法&#xff0c;仅供参考&#xff1a;解决方法&#xf…

win10安装opcenum_Win10提示Windows无法安装到GPT分区形式磁盘

Win10系统提示Windows无法安装到GPT分区形式磁盘该怎么办&#xff1f;最近有用户反映说在安装Win10原版系统的时候&#xff0c;采用的是U盘安装Win10的方法&#xff0c;到磁盘选择这一项的时候&#xff0c;选中C盘不能安装&#xff0c;提示&#xff1a;Windows无法安装到这个磁…

JPA 2 | EntityManagers,事务及其周围的一切

介绍 对我来说&#xff0c;最令人困惑和不清楚的事情之一是&#xff0c;作为Java开发人员&#xff0c;一直是围绕事务管理的谜团&#xff0c;尤其是JPA如何处理事务管理。 事务什么时候开始&#xff0c;什么时候结束&#xff0c;实体的持久化方式&#xff0c;持久性上下文等等。…

JavaScript高级特征之面向对象笔记

Javascript面向对象&#xff1a;函数&#xff1a; * Arguments对象&#xff1a; * Arguments对象是数组对象 * Arguments对象的length属性可以获取参数的个数 * 利用Arguments对象模拟函数的重载效果&#xff08;javascript中不存在函…

Object.prototype.hasOwnProperty与Object.getOwnPropertyNames

Object.prototype.hasOwnProperty() 所有继承了 Object 的对象都会继承到 hasOwnProperty 方法。这个方法可以用来检测一个对象是否含有特定的自身属性&#xff1b;和 in 运算符不同&#xff0c;该方法会忽略掉那些从原型链上继承到的属性。 使用 hasOwnProperty 方法判断属自身…

IE9真的支持CSS3和HTML5?

微软昨天在其2009年专业开发者大会上展示 了下一个版本的Internet Explorer浏览器IE9。 尽管只是一个早期版本&#xff0c;IE开发团队还是比较高调的宣布了IE9的一些改 进&#xff0c;比如速度比之前的IE版本都更快些&#xff0c;缩小与FF和webkit之间的差距(也就是还是赶不上了…

绘图用计算机软件的基本种类有,主编教您电脑绘图软件有哪些

绘图软件是指专业人员根据一定准则设计的用于计算机绘图软件程序&#xff0c;种类非常多&#xff0c;通过它们可以满足足广大用户的基本绘图要求。下面&#xff0c;我就给大家介绍电脑绘图软件有哪些。电脑是根据指令进行高速计算的电子设备&#xff0c;功能强大&#xff0c;时…

python安装math库_Python-math库

导入函数import mathe#表示一个常量>>> math.e2.718281828459045exp#返回math.e,也就是2.71828的x次方exp(x)>>> math.exp(1)2.718281828459045>>> math.exp(2)7.38905609893065>>> math.exp(3)20.085536923187668pi#数字常量&#xff0c;…

使用Encog,ROME,JSoup和Google Guava进行博客分类

继续使用Programming Collection Intelligence &#xff08;PCI&#xff09;&#xff0c;下一个练习是使用距离得分根据相关博客中使用的单词确定博客列表。 我已经找到Encog作为AI /机器学习算法的框架&#xff0c;为此&#xff0c;我需要一个RSS阅读器和一个HTML解析器。 我…

HTML浮动导致高度塌陷,HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法(高度欺骗)...

元素浮动定义float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像&#xff0c;使文本围绕在图像周围&#xff0c;不过在 CSS 中&#xff0c;任何元素都可以浮动。浮动元素会生成一个块级框&#xff0c;而不论它本身是何种元素。如果浮动非替换元素&#xff0c;则要指定…

Python API简单验证

前言 因为CMDB内部的需求&#xff0c;需要一个API进行数据传输&#xff0c;用来传递需要抓取的服务端信息信息给抓取的autoclient&#xff0c;autoclient抓取好之后再通过API传输到服务器&#xff0c;保存到数据库。但是为了防止恶意的API访问&#xff0c;需要做一个验证。 设想…

完全CSS实现鼠标移上出现层的效果(超简单)

看过许多鼠标事件&#xff0c;都很复杂&#xff0c;太多的文件和繁杂的代码,而且好多都是用js实现&#xff0c;加载速度很慢。 这几天一直在找一种简单的实现效果&#xff0c;完全 CSS编写的效果&#xff0c;现在找到了&#xff0c;非常的少。 这就是完全 CSS实现的层效果&am…

搜索引擎学习日志

了解是什么&#xff1a;Google的咖啡因系统、Megastore云存储系统、Pregel云图计算模型、暗网爬取技术、Web2.0网页作弊、机器学习排序、情景搜索、社会化搜索 学习思想&#xff1a;先全局、再细节 《这就是搜索引擎&#xff1a;核心技术详解》page 33 / 315 开始第二章&#x…

前端微信签名验证工具_微信小程序API 用户数据的签名验证和加解密

用户数据的签名验证和加解密数据签名校验为了确保 开放接口 返回用户数据的安全性&#xff0c;微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验&#xff0c;确保数据的完整性。签名校验算法涉及用户的session_key&#xff0c;通过 wx.login 登录流程获取…

会计电算化的过程 实质上是用计算机,会计电算化的过程,实质上是用计算机()的过程。A.单一地替代手工会计操作B.单一地替代对会计进行分...

会计电算化的过程&#xff0c;实质上是用计算机()的过程。A&#xff0e;单一地替代手工会计操作B&#xff0e;单一地替代对会计进行分更多相关问题以下对冷饮操作要求描述错误的是&#xff1a;()客舱网路的功用。()次高速减脂过程中一般每减多少做一个平台过渡()架线施工时弧垂…

Spring MVC控制器的单元测试:配置

传统上&#xff0c;为Spring MVC控制器编写单元测试既简单又成问题。 尽管编写调用控制器方法的单元测试非常简单&#xff0c;但问题是这些单元测试不够全面。 例如&#xff0c;我们不能仅通过调用已测试的控制器方法来测试控制器映射&#xff0c;验证和异常处理。 Spring MVC…

css实现鼠标覆盖显示大图

html <div <a href”#”> <img src”img01.jpg”> <img src”img02.jpg”> </a> </div> css img{border:none;} .pic{position:relative;top:10px;left:10px} .pic a .large{position:absolute;height:0;width:0;} .pic a:hover{di…