记录合规性–关于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个测…

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

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

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

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

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

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

Python API简单验证

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

前端js编码

1、首先是encodeURI和encodeURIComponent&#xff1b; 从名字可以清晰的看出他两都是主要用于url编码的&#xff0c;那之间有什么区别呢&#xff1f;唯一区别就是编码的字符范围&#xff0c;其中 encodeURI方法不会对下列字符编码 ASCII字母、数字、~!#$&*():/,;?&#x…

Python中 sys.argv[]的用法简明解释

Python中 sys.argv[]的用法简明解释 因为是看书自学的python,开始后不久就遇到了这个引入的模块函数&#xff0c;且一直在IDLE上编辑了后运行&#xff0c;试图从结果发现它的用途&#xff0c;然而结果一直都是没结果&#xff0c;也在网上查了许多&#xff0c;但发现这个问题的比…

文件上传漏洞及其绕过、对策、过狗

1. 文件包含上传&#xff1a; php://input属于php内置的封装协议&#xff0c;其实都主要是include&#xff08;&#xff09;函数处理不当如果有文件是以下写法&#xff0c;xxx随便&#xff1a;<?phpinclude($_GET[xxx]);?> 以上保存到test.php&#xff0c; 我们访问ht…

一维二维_更高效的一维、二维材料过渡态搜索

前言本文中&#xff0c;我们首先介绍如何使用NEB方法搜索过渡态&#xff0c;以及在NEB的结果的基础上&#xff0c;进一步提高精度优化出高精度、可验证的过渡态。本文以MoS2的一维条带(其中一个Mo原子被Co替代掺杂)为例进行演示。一般来说&#xff0c;这种反应&#xff0c;周期…

Mybatis之逆向工程

前面几篇基本把mybatis简单使用学习了下,今天学习下mybatis逆向工程&#xff0c;我们在开发中经常需要先设计数据库表结构或者先设计model,那就是能不能有工具可以只需在一边设计之后另一边自动生成呢&#xff1f;于是逆向工程来了。这里的逆向功能是通过数据库的表生成java po…

2023航天推进理论基础考试划重点(W老师)-液体火箭发动机1

适用于期末周求生欲满满的西北工业大学学生。 1、液体火箭发动机的基本组成及功能是什么&#xff1f; 推力室组件、推进剂供应系统、阀门与调节器、发动机总装元件等组成。 2、液体火箭发动机的分类和应用是什么&#xff1f;3、液体火箭发动机系统、分系统的概念是什么&…

Java EE 7是最终版本。 思想,见解和进一步的指针。

我们花了不到三年的时间才推出了下一个Java EE版本 。 今年4月16日&#xff0c; JCP EC对JSR 342进行了投票并获得批准。 这是一个成功的故事&#xff0c;因为在去年八月下旬的最后时刻撤消了拥有云就绪平台的最初想法。 作为EG的成员&#xff0c;撰写即将发布的功能或多或少容…

dbgrideh指定某单元格变色_一招搞定按指定名称批量新建文件夹

文 / 雷哥小鱼儿 编辑 / 小瓜子假如你有一个100行的Excel名单文件。业务需要&#xff0c;需要按姓名单独做成一个个文件夹。普通小白做法&#xff1a;用复制粘贴大法一个个去修改文件夹名字........雷哥Tips&#xff1a;EXCEL中为了实现某目标&#xff0c;出现了N次重复的操作…

如何编写自己的Java / Scala调试器

通过这篇文章&#xff0c;我们将探讨Java / Scala调试器的编写和工作方式。 诸如Windows的WinDbg或Linux / Unix的gdb之类的本机调试器通过操作系统直接提供给它们的钩子来获取其强大功能&#xff0c;以监视和操纵外部进程的状态。 JVM充当OS之上的抽象层&#xff0c;它提供了自…

软件测试bug文档模板,软件bug测试记录模板

软件bug测试记录模板 XXX软件bug测试记录表 文档编号&#xff1a; 背景信息 项目名称 测试目的 硬件环境 软件环境 测试时间 测试人员 测试说明 1、严重等级&#xff1a; A-Crash(崩溃的)&#xff1a;由于程序所引起的死机、非法退出、死循环&#xff1b;数据库发生死锁&#x…

Java即时编译:不仅仅是一个流行词

最近的Java生产性能问题迫使我重新审视并真正欣赏Java VM即时&#xff08;JIT&#xff09;编译器。 大多数Java开发人员和支持人员都听说过这种JVM运行时性能优化&#xff0c;但是有多少人真正理解并欣赏它的好处&#xff1f; 本文将与您分享在添加新的虚拟服务器&#xff08…

win10设置计算机关机时间,教你windows10电脑怎么设置定时关机

今天小编教你windows10电脑怎么设置定时关机&#xff0c;相信大家都有过这样的经历吧!那就是有时开着电脑玩累了,躺在床上睡了一会&#xff0c;结果醒来的时候发现睡了比较久&#xff0c;且还不愿意下床关电脑怎么办&#xff0c;其实我们可设置定时关机&#xff0c;有需要的用户…

Android内存优化9 内存检测工具3 MAT比Menmery Monitor更强大

在Android性能优化第&#xff08;一&#xff09;篇---基本概念中讲了JAVA的四大引用&#xff0c;讲了一下GCRoot&#xff0c;第二篇Memory Monitor检测内存泄露仅仅说了Menmery Monitor的使用&#xff0c;这篇博客谈一下MAT来寻找内存泄露&#xff0c;相对来说&#xff0c;Memo…

计算机三种引用方式,单元格的引用方式有哪几种

EXCEL单元格的引用包括绝对引用、相对引用和混合引用三种。单元格引用是Excel中的术语&#xff0c;指用单元格在表中的坐标位置的标识。是计算机基础的重要学习内容。1、绝对引用&#xff1a;单元格中的绝对单元格引用(例如$F$6)总是在指定位置引用单元格F6。如果公式所在单元格…