Комплект совместимости технологий
В этой статье используются голые URL-адреса , которые неинформативны и уязвимы к порче ссылок . ( Август 2022 г. ) |
Комплект совместимости технологий ( TCK ) — это набор тестов, который, по крайней мере номинально, проверяет конкретную предполагаемую реализацию запроса спецификации Java (JSR) на соответствие. Это один из трех обязательных элементов для ратифицированного JSR в процессе сообщества Java , а именно:
- спецификация JSR
- JSR эталонная реализация
- комплект совместимости технологий (TCK)
Содержание и архитектура
[ редактировать ]TCK обычно получают от руководителя спецификации данного JSR. Обычно (но не всегда) они представляют собой графическое хост-приложение, которое обменивается данными через TCP/IP с тестируемым устройством или виртуальной машиной Java. Тесты обычно получаются устройством через HTTP, а результаты отправляются обратно в хост-приложение аналогичным способом. Такое разделение позволяет использовать TCK для тестирования виртуальных машин на таких устройствах, как CLDC мобильные телефоны , которые не имеют возможности запуска полного хост-приложения TCK.
Тесты, содержащиеся в JSR, предположительно основаны на утверждениях спецификации JSR. Любой конкретный API будет иметь набор тестов, чтобы гарантировать, что он ведет себя должным образом, в том числе в условиях ошибки.
Чтобы заявить о соответствии данному JSR, реализация Java должна передать соответствующий TCK. Любые (редкие) исключения должны быть согласованы с руководителем спецификации. По этой причине TCK имеют большое значение при реализации JSR. Первой важной вехой является запуск TCK, что обязательно включает в себя реализацию Java и базовый сетевой стек, имеющий определенный уровень зрелости. Далее TCK необходимо правильно настроить — ведь они должны быть достаточно гибкими, чтобы справиться с любой реализацией, вариантов много. (Например, список всех поддерживаемых форматов мультимедиа и связанных с ними дополнительных элементов управления для JSR135 ). Отдельные тесты также требуют некоторых действий по настройке - это обычно бывает особенно сложно для тестов, которые обеспечивают правильное поведение в условиях ошибки, поскольку реализация Java должна быть переведена в правильное состояние, чтобы вызвать каждую ошибку. Наконец, каждый неудачный тест должен быть исправлен, что обычно выполняется с помощью обычного отслеживания дефектов. механизмы.
Некоторые разработчики Java считают, что их продукт в основном завершен после прохождения TCK. Хотя TCK действительно являются достаточно всеобъемлющими, существует множество областей, которые они не охватывают. К ним относятся производительность, а также дополнительные функции. Нет другого выхода, кроме как провести большое количество реальных испытаний для устранения этих недостатков, хотя дополнительные наборы тестов, такие как JDTS, могут помочь.
TCK для платформы Java
[ редактировать ]Комплект совместимости технологий для конкретной платформы Java называется Комплектом совместимости Java (JCK) . Это обширный набор тестов, используемый Oracle и лицензиатами для обеспечения совместимости реализаций платформы.
JCK для Java 6.0 . Выпущен исходный код [1] [2] Соответствующая лицензия изначально не позволяла пользователям компилировать или запускать тесты. [3] но право на просмотр кода не связано с угрозой его порчи, и публичные комментарии к исходному коду разрешены. [1] Однако с момента выпуска OpenJDK специальная лицензия позволяет запускать JCK в контексте OpenJDK, то есть для любой реализации GPL, в значительной степени производной от OpenJDK. [4] [5]
Лицензионное соглашение TCK сообщества OpenJDK версии 2.0 опубликовано для спецификации Java SE 7 с декабря 2011 года. [6]
TCK-фреймворк
[ редактировать ]Инструмент JavaTest на сегодняшний день является наиболее распространенной средой модульного тестирования, используемой для проверки соответствия реализации. Это среда тестирования общего назначения, предназначенная для запуска тестов TCK. Однако в некоторых спецификациях также используются JUnit или TestNG . [7]
Лицензия и споры
[ редактировать ]После выпуска OpenJDK компанией Sun компания Sun выпустила специальную лицензию, позволяющую запускать TCK в контексте OpenJDK для любой реализации GPL , в значительной степени производной от OpenJDK. [8]
Это требование лишает Apache Harmony проект лицензией Apache права на использование TCK, совместимого с . 9 ноября 2010 года Apache Software Foundation пригрозил выйти из процесса сообщества Java, если им не будет предоставлена лицензия TCK для Harmony без дополнительных ограничений. [9]
9 декабря 2010 г. Apache Software Foundation покинула свое место в Исполнительном комитете Java SE/EE. [10]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Гамильтон, Грэм (13 декабря 2004 г.). «Выпущены исходные коды тестов совместимости J2SE» . Архивировано из оригинала 16 декабря 2004 г. Проверено 8 марта 2008 г.
Мы постарались убедиться, что лицензия отвечает разумным потребностям разработчиков, которые хотят оценить исходные коды JCK: она доступна по нулевой цене через лицензию по клику; Никакого "порчи" нет. Удалив копию JCK, вы больше не ограничены в своих дальнейших действиях. Чтобы прояснить это, мы включили раздел, явно предоставляющий то, что юристы называют «остаточными правами», что по сути означает, что вещи, которые застревают у вас в голове, можно использовать в будущем; Вы можете публиковать отзывы и комментарии публично.
- ↑ Проект JCK. Архивировано 8 июля 2007 г., в Wayback Machine.
- ^ « ТОЛЬКО ДЛЯ ЧТЕНИЯ» ИСХОДНОЕ ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ, КОМПЛЕКТ СОВМЕСТИМОСТИ JAVA (TM) v1.0 6a» . Сан Микросистемс . Июнь 2007 г. Архивировано из оригинала 31 декабря 2010 г. Проверено 8 марта 2008 г.
- ^ Дарси, Джозеф (6 марта 2008 г.). «Соответствие версий JDK и JCK» . Архивировано из оригинала 12 августа 2011 г. Проверено 8 марта 2008 г.
Если вы заинтересованы в использовании JCK в контексте проектов OpenJDK, доступна лицензия.
- ^ «ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ СООБЩЕСТВА OPENJDK TCK V 1.1» (PDF) . Сан Микросистемс . Проверено 8 марта 2008 г.
При условии, что его реализация Лицензиата в значительной степени является производной от кода OpenJDK, и, если такая реализация распространяется или будет распространяться третьей стороне, она распространяется по лицензии GPL, Sun настоящим предоставляет Лицензиату в пределах интеллектуальных прав Sun. Права собственности на TCK, глобальная, личная, неисключительная, не подлежащая передаче, ограниченная лицензия на использование TCK для внутренних целей и исключительно с целью разработки и тестирования реализации Лицензиата.
- ^ http://openjdk.java.net/legal/OpenJDK-TCK_SE7_27Dec2011.pdf [ только URL-адрес PDF ]
- ^ «Обзор исходного кода: jsr-352-git-repository» . Архивировано из оригинала 05 марта 2013 г. Проверено 12 февраля 2014 г.
- ^ «ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ СООБЩЕСТВА OPENJDK TCK V 1.1» (PDF) . Сан Микросистемс . Проверено 8 марта 2008 г.
При условии, что его реализация Лицензиата в значительной степени является производной от кода OpenJDK, и, если такая реализация распространяется или будет распространяться третьей стороне, она распространяется по лицензии GPL, Sun настоящим предоставляет Лицензиату в пределах интеллектуальных прав Sun. Права собственности на TCK, глобальная, личная, неисключительная, не подлежащая передаче, ограниченная лицензия на использование TCK для внутренних целей и исключительно с целью разработки и тестирования реализации Лицензиата.
- ^ Заявление Правления ASF о нашем участии в процессе сообщества Java , Apache Software Foundation , 9 ноября 2010 г. блог
- ^ ASF уходит из исполнительного комитета JCP , Apache Software Foundation , 9 декабря 2010 г. блог