CINXE.COM
TCK tools and documentation
<title>TCK tools and documentation</title> <!-- ** BEGIN: header.jsp ** //--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <link href="/includes/css/menu.css" rel="stylesheet" type="text/css"></link> <link href="/includes/css/style.css" rel="stylesheet" type="text/css"></link> <!--[if lt IE 6]><link href="/includes/css/style5.css" rel="stylesheet" type="text/css" ></link><![endif]--> <!--[if gte IE 5]><link href="/includes/css/style6.css" rel="stylesheet" type="text/css" ></link><![endif]--> <link href="/includes/css/tabs.css" rel="stylesheet" type="text/css"></link> <script type="text/javascript" src="/includes/scripts/tabs.js"></script> <script type="text/javascript" src="/includes/scripts/menu.js"></script> <title>The Java Community Process(SM) Program - Community Resources - TCK Tools & Info</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script>!function(a){var e="https://s.go-mpulse.net/boomerang/",t="addEventListener";if("False"=="True")a.BOOMR_config=a.BOOMR_config||{},a.BOOMR_config.PageParams=a.BOOMR_config.PageParams||{},a.BOOMR_config.PageParams.pci=!0,e="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="UE9G5-FVEGY-MA38N-LMMNY-SBQP2",function(){function n(e){a.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!a.BOOMR||!a.BOOMR.version&&!a.BOOMR.snippetExecuted){a.BOOMR=a.BOOMR||{},a.BOOMR.snippetExecuted=!0;var i,_,o,r=document.createElement("iframe");if(a[t])a[t]("load",n,!1);else if(a.attachEvent)a.attachEvent("onload",n);r.src="javascript:void(0)",r.title="",r.role="presentation",(r.frameElement||r).style.cssText="width:0;height:0;border:0;display:none;",o=document.getElementsByTagName("script")[0],o.parentNode.insertBefore(r,o);try{_=r.contentWindow.document}catch(O){i=document.domain,r.src="javascript:var d=document.open();d.domain='"+i+"';void(0);",_=r.contentWindow.document}_.open()._l=function(){var a=this.createElement("script");if(i)this.domain=i;a.id="boomr-if-as",a.src=e+"UE9G5-FVEGY-MA38N-LMMNY-SBQP2",BOOMR_lstart=(new Date).getTime(),this.body.appendChild(a)},_.write("<bo"+'dy onload="document._l();">'),_.close()}}(),"".length>0)if(a&&"performance"in a&&a.performance&&"function"==typeof a.performance.setResourceTimingBufferSize)a.performance.setResourceTimingBufferSize();!function(){if(BOOMR=a.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var e=""=="true"?1:0,t="",n="bdpnbetikgfhuz2deqgq-f-dbc88282d-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,_={"ak.v":"39","ak.cp":"1164872","ak.ai":parseInt("695954",10),"ak.ol":"0","ak.cr":1,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"234582cd","ak.r":34600,"ak.a2":e,"ak.m":"dscx","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":50280,"ak.gh":"104.81.138.85","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1732453389","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==2Yp0h/B+WxfJKTE25UxkHtNw65yUefR6q5R3v5nzgNtZd2ZFmPB4JC0ITBmwcYc5GG9NOGcNlmA4HxWl42URA4ham+SNopOO92NF8IEv/f3F40/cfyrrBHJ8HCQOaYrTg5Je1Arh5Uet8tsSSSwTX/vYeDDDYldfM9WWzAciVH0WQFV3daPb24AuEYRxaRIlT2/aE+3NKk9VXxK9CJb+ACBVonq343ig/kpnJvqZ+z5TDR0EhuG3VFHVj9n9LhpCz5BcZefngJkyJZWixjkwm6xOsrodRPRFY9y/gnMmWTVlIJsE4Cs82SZoT7cBNG2Eax3NqkkNDXhu1VBf2wQTaUcZxbAE6uZ6Hjiw5gV8lPu7WG6ytlX1UdIDnzp9/dcpjMKLWJOywpWMd3n9kUZFNqf0rNPrLkPMgrEuRljWcMw=","ak.pv":"21","ak.dpoabenc":"","ak.tf":i};if(""!==t)_["ak.ruds"]=t;var o={i:!1,av:function(e){var t="http.initiator";if(e&&(!e[t]||"spa_hard"===e[t]))_["ak.feo"]=void 0!==a.aFeoApplied?1:0,BOOMR.addVar(_)},rv:function(){var a=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(a)}};BOOMR.plugins.AK={akVars:_,akDNSPreFetchDomain:n,init:function(){if(!o.i){var a=BOOMR.subscribe;a("before_beacon",o.av,null,null),a("onbeacon",o.rv,null,null),o.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head> <body onload="P7_initPM(0,1,0,0,-1)"> <a name="top"></a> <div id="header"> <div id="logo"> <a href="/en/home/index"><img src="/images/spacer.gif" alt="Java Community Process" height="81" width="151"></a> </div> <div id="tools"> <div class="search"> <form name="search" action="/en/jsr/summary" method="get" onsubmit="return validate_search()"> <input name="id" value="Search JSRs" size="16" class="form" onfocus="nullify_if_equal(this, 'Search JSRs')" type="text"> <a href="javascript:document.search.submit()" onclick="return validate_search()"><img src="/images/button_go.gif" width="21" height="16" border="0" alt="Submit this Search" name="sub_search"></a> </form> </div> <div class="tools"> <a href="/en/press/pressroom">Press Room</a> | <a href="http://java.com/java/download/index.jsp?cid=jdp78399">Get Java Here</a> | <!-- <a href="javascript:void(0)">Print Format</a> | --> </div> </div> <div style="clear: right;"></div> <div class="topbar"><img src="/images/spacer.gif" alt="" height="3" width="154"></div> <div id="update"> </div> </div> <!-- ** BEGIN: Content Table ** //--> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <!-- ** BEGIN: Navigation Column ** //--> <td width="150" id="leftcontent" valign="top"> <!-- Navigation Placeholder //--> <div class="bar"><img src="/images/hr_dots1.gif" alt="" height="3" width="150"></div> <!-- begin find JSRs form --> <!-- IMPORTANT! do not convert this form to Struts < html : form > tag. javascript change of form.action property fails. --> <img src="/images/hd_find-jsrs.gif" alt="Find JSRs" height="18" width="150"> <form name="findjsr" action="/en/jsr/summary" method="get" class="pt5" onsubmit="return validate_findjsr()"> <input name="id" size="18" class="form" value="Search JSRs" onfocus="nullify_if_equal(this, 'Search JSRs')" type="text"> <a href="javascript:document.findjsr.submit()" onclick="return validate_findjsr()"><img src="/images/button_go.gif" width="21" height="16" border="0" alt="Submit this Search" name="sub_search"></a> </form><br><br> <!-- ** Menu Start ** //--> <ul id="p7PMnav"> <li><a href="/en/jsr/platform">JSRs by Platform</a></li> <li><a href="/en/jsr/tech">JSRs by Technology</a></li> <li><a href="/en/jsr/stage">JSRs by Stage</a></li> <li><a href="/en/jsr/ec">JSRs by Committee</a></li> <li><a href="/en/jsr/all">List of All JSRs</a></li> <!--end find JSRs form --> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="25" width="1"></div> <!--begin my JCP --> <img src="/images/hd_my-jcp.gif" alt="My JCP" height="18" width="150"> <form name="login" method="get" action="/en/user/login" > <input name="Sign-in" type="submit" title="Sign-in" value="Sign-in" /> </form> <div style="clear:both"><img src="/images/global/spacer.gif" width="1" height="3" alt=""></div> <div class="noNav"> <a href="/en/user/register">Register for Site</a> </div> <div class="bar"><img src="/images/hr_dots1.gif" alt="" height="3" width="150"></div> <div class="noNav" style="color: #666666; padding: 0;"> Use of JCP site is subject to the <a href="/en/home/terms" style="display:inline;padding: 0">JCP Terms of Use</a> and the <a href="http://www.oracle.com/us/legal/privacy/index.html" style="display:inline;padding: 0" href="">Oracle Privacy Policy</a> </div> <div style="clear:both"><img src="/images/global/spacer.gif" width="1" height="25" alt=""></div> <!--begin JCP info --> <img src="/images/hd_jcp-info.gif" alt="JCP Info" height="18" width="150"> <li><a href="/en/procedures/overview" class="p7PMtrg">About JCP</a> <ul> <li><a href="/en/procedures/overview">Program Overview</a></li> <li><a href="/en/procedures/jcp2">JCP Process Document</a></li> <li><a href="/en/whatsnew/calendar">Calendar</a></li> <li><a href="/en/participation/members">JCP Members</a></li> <li><a href="/en/participation/committee">Executive Committee</a></li> <li><a href="/en/whatsnew/elections">Elections</a></li> </ul> </li> <li><a href="/en/participation/overview" class="p7PMtrg">Get Involved</a> <ul> <li><a href="/en/participation/overview">Overview</a></li> <li><a href="/en/participation/membership">Becoming a JCP Member</a></li> <li><a href="/java-in-education">Java in Education</a></li> </ul> </li> <li><a href="/en/resources/contents" class="p7PMtrg">Community Resources</a> <ul> <li><a href="/en/resources/contents">Overview</a></li> <li><a href="/en/resources/tutorials">Tutorials</a></li> <li><a href="/en/resources/multimedia">JCP Podcasts</a></li> <li><a href="/en/resources/guide">Spec Lead Guide</a></li> <li><a href="/en/resources/tdk">TCK Tool & Info</a></li> <li><a href="/en/resources/license_reference">License Reference</a></li> </ul> </li> <li><a href="/en/press/pmo" class="p7PMtrg">Community News</a> <ul> <li><a href="/en/press/pmo">News</a></li> <li><a href="/en/press/news/awards/awards_main">Programs & Awards</a></li> <li><a href="/en/press/releases">Press Releases</a></li> <li><a href="/en/press/success">Success Stories</a></li> </ul> </li> <li><a href="/en/introduction/faq">FAQ</a></li> <li><a href="/en/resources/contacts">Contact Us</a></li> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="25" width="1"></div> <!--[if lte IE 6]><style>#p7PMnav a{height:1em;}#p7PMnav li{height:1em;float:left;clear:both;width:100%}</style><![endif]--> <!--[if IE 6]><style>#p7PMnav li{clear:none;}</style><![endif]--> <!--[if IE 7]><style>#p7PMnav a{zoom:100%;}#p7PMnav li{float:left;clear:both;width:100%;}</style><![endif]--> </ul> <!--begin ad space --> <div class="ads"> <a href="http://java.com/java/download/index.jsp?cid=jdp78399" target="_blank"><img style="display: ;" src="/images/ad_banner2.gif" alt="Ad Banner" border="1" height="70" width="150"></a> </div> <!--end ad space --> <!-- ** Menu End ** //--> <br> <br> <br> <br> <img src="/images/common/trans.gif" alt="" width="1" height="150"><br> </td> <!-- ** END: Navigation Column ** //--> <!-- ** BEGIN: Gutter Column ** //--> <td width="10" nowrap><img src="/images/common/trans.gif" alt="" width="10" height="1"></td> <!-- ** END: Gutter Column ** //--> <!-- ** BEGIN: Content Column ** //--> <td width="100%" valign="top"> <script type="text/javascript"> String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.ltrim = function() { return this.replace(/^\s+/,""); } String.prototype.rtrim = function() { return this.replace(/\s+$/,""); } function validate_search() { if (document.search.id.value == "Search JSRs" || document.search.id.value.trim().length == 0) { alert("Search terms must be entered first"); return false; } return true; } function validate_findjsr() { if (document.findjsr.id.value == "Search JSRs" || document.findjsr.id.value.trim().length == 0) { alert("Search terms must be entered first"); return false; } return true; } function nullify_if_equal(field, str) { // alert("val=" + field.value); if (field.value == str) { field.value = ""; } } </script> <!-- ** END: header.jsp ** //--> <div class="header2">Community Resources</div> <div class="header1">TCK tools and documentation</div> <div class="anybar"><img src="/images/global/bar_green.gif" alt="" width="12" height="4"></div> <h3>Test tools</h3> <p>Oracle provides the following tools to help Spec Leads with their TCK development responsibilities. </p> <table border="0" cellspacing="15"> <tr valign="top"> <th width="130" align="left"> Tool </th> <th width="130" align="left"> Open Source Links </th> <th align="left"> Description </th> </tr> <tr valign="top"> <td> JavaTest/JT Harness </td> <td valign="top" nowrap> • <A HREF="http://jtharness.java.net">JT Harness project</A> <br> • <A HREF="http://download.java.net/jtharness/download.html">Download page</A> <br> • <A HREF="http://jtharness.java.net/jt_docs.html">Documentation</A></td> <td> JT harness is the open source version of the JavaTest harness. JT harness is a general purpose, fully-featured, flexible, and configurable test harness very well suited for most types of unit testing, especially TCK test suites. The JT harness is an excellent tool for configuring, sequencing, and running test suites that consist of large numbers of discrete, independent tests. It is especially good at testing APIs and compilers. Originally developed as a test harness to run the JCK test suite, it has since evolved into a general purpose test platform well suited for use with all TCK test suites and other types of test suites. <p> </td> </tr> <tr valign="top"> <td> <a name="SigTest"></a>SigTest <p> (Signature Test tool and API Coverage tool) </td> <td nowrap> • <A HREF="http://sigtest.java.net">SigTest project</A> <br> • <A HREF="http://download.java.net/sigtest/download.html">Download page</A> <br> • <A HREF="http://sigtest.java.net/sigtest_docs.html">Documentation</A></td> <td> <p>Signature Test tool verifies that a Java technology implementation undergoing compatibility testing and its reference APIs are mutually compatible as defined in Chapter 13, Binary Compatibility, of <i>The Java Language Specification</i>. The tool automates this verification process with a signature test algorithm that compares the API under test with a reference API. </p> <p>Use of the Signature Test tool is the preferred way of meeting the JSP Process requirement that TCKs provide 100% signature-test coverage.</p><p> APICover tool uses the Signature Test tool engine to provide static analysis of test coverage of an API. This is a useful metric for determining the quality of a TCK. </p> </td> </tr> <tr valign="top"> <td> Java ME Framework</td> <td nowrap> • <A HREF="http://cqme.java.net/framework.html">ME Framework project</A> <br> • <A HREF="http://download.java.net/mobileembedded/cqme/download.html">Download page</A> <br> • <A HREF="http://download.oracle.com/javame/test-tools/me-fw/framework_dev_guide.pdf">Documentation</A> <br> </td> <td> The ME Framework is a set of JT harness plugins that provides support for the Java ME platform. TCK architects use the JT harness and the ME Framework to construct TCK test suites for Java ME technologies.</td> </tr> </table> <h3>Documentation</h3> <p> Oracle provides the following documents to help Spec Leads with their TCK development responsibilities. </p> <p><strong>WARNING:</strong> these are "legacy documents" that describe how Sun did (and how Oracle now does) TCK development. They contain references to tools used internally, some of which are available for third-party use (see above) and others (primarily <em>Spec Trac</em>, which is a tool used for specification markup) that are not externally available. Nevertheless, the documents contain much useful information and are therefore provided on an "as-is" (unsupported) basis. </p> <table border="0" cellspacing="15"> <tr valign="top"> <th width="205" align="left"> Document </th> <th align="left"> Description </th> </tr> <tr valign="top"> <td><i><a name="PPDG"></a></i><a href="/aboutJava/communityprocess/ec-public/TCK-docs/ppg.pdf">TCK Project Planning and Development Guide</a> </td> <td> Provides an overview and starting point for an Expert Group responsible for developing a technology compatibility kit (TCK) under the Java Community Process program. It is a high-level planning guide for project managers. </td> </tr> <tr valign="top"> <td><a href="/aboutJava/communityprocess/ec-public/TCK-docs/tsdg.pdf">Java Technology Test Suite Development Guide</a></td> <td> <p>Describes in detail how to design and write TCK tests and to build a TCK. </p> <p>The <em>Sample TCK tests</em> mentioned in this document are <a href="/aboutJava/communityprocess/ec-public/TCK-docs/examples.zip">available for download here</a>.</p></td> </tr> <tr valign="top"> <td> <a href="/aboutJava/communityprocess/ec-public/TCK-docs/tck_ug_template.pdf">Java Technology Compatibility Kit User's Guide Template</a> </td> <td> Provides an outline and template that can be used as the basis for creating a complete User's Guide for a TCK. </p> <p>NOTE: this template assumes that your TCK will be built with the JT Harness and is therefore considerably more complex than might be necessary for your purposes. For a simpler template see the next item.</p></td> </tr> <tr valign="top"> <td> <i><a name="SimpleTemplate"></a></i><a href="/aboutJava/communityprocess/ec-public/TCK-docs/simple_template.pdf">Simplified TCK User's Guide Template</a> </td> <td> Provides a simple template that can be used as the basis for creating a User's Guide for a TCK. Because the template contains sample Compatibility Requirements it will be particuarly helpful in ensuring that your TCK meets the requirements of the JCP's Process Document.</td> </tr> <tr valign="top"> <td><a name="TCD"></a><a href="/aboutJava/communityprocess/ec-public/TCK-docs/Sample-TCD.html">Sample Test Coverage Document</a></td> <td>Provides a sample Test Coverage Document (TCD) that can be used as a model for the TCD that you deliver to the PMO with the final version of your TCK.</td> </tr> </table> <h3>Other resources</h3> <p>The following external resources also provide information helpful in the TCK development process.</p> <table border="0" cellspacing="15"> <tr valign="top"> <th width="205" align="left"> Resource </th> <th align="left"> Description </th> </tr> <tr valign="top"> <td><i><a name="OASIS-TAG" id="OASIS-TAG"></a></i><a href="http://www.oasis-open.org/committees/download.php/44696/taguidelines-v1.0-wd02.pdf">OASIS Test Assertion Guidelines</a></td> <td><p>The OASIS Test Assertion Guidelines (TAG) Technical Committee produced a Committee Note providing guidelines and best practices for writing and using test assertions. This Note provides extensive background on the theory and practice of using Test Assertions in conformance testing.</p></td> </tr> </table> <p><br> Questions? Comments? Contact us at: pmo <fake_tag>@</fake_tag> jcp.org.</p> <!-- ** BEGIN: footer.jsp ** //--> </td> </tr> </table> <!-- ** END: Content Table ** //--> <!-- ** BEGIN: Footer Table ** //--> <div id="footer" style="clear: both;"> <div class="footleft"> <a href="/en/resources/contacts">Contact Us</a> </div> <div class="botbar"><img src="/images/spacer.gif" alt="" height="23" width="1"></div> <div class="footleft2"> © 2024, Oracle Corporation and/or its affiliates. <a href="/en/home/terms">Terms of Use</a>. <a href="http://www.oracle.com/us/legal/privacy/index.html">Privacy Policy</a>. <a href="http://www.oracle.com/us/legal/third-party-trademarks/third-party-trademarks-078568.html">Trademarks</a> </div> <div class="footright"> <img src="/images/common/logo_oracle_footer.gif" alt="Oracle Corporation" height="22" width="91"> </div> <div style="clear: both;"><img src="/images/spacer.gif" alt="" height="30" width="1"></div> </div> <!-- ** END: Footer Table ** //--> <!-- ** Menu Start ** //--> </body> </html> <!-- ** END: footer.jsp ** //-->