Кіріспе

Технологиялық үйлесімділік жиынтығы (TCK) – бұл Java Specification Request (JSR) ережелеріне сәйкестігін, кем дегенде, формалды түрде тексеруге арналған тесттер жинағы. Java Community Process-те бекітілген JSR үшін қажетті үш құрамдас бөліктің бірі болып табылады: JSR спецификациясы, JSR эталондық іске асырылымы және технологиялық үйлесімділік жиынтығы (TCK).

Мазмұны мен құрылымы

ТКК әдетте белгілі бір ЖЖЖ-ның спецификациялық жетекшісінен алынады. Олар көбінесе (бірақ әрқашан емес) сынақтан өтетін құрылғымен немесе Java виртуалды машинасымен TCP/IP арқылы байланысатын графикалық хост қолданбасынан тұрады. Сынақтар әдетте құрылғы HTTP арқылы алады, ал нәтижелер хост қолданбасына ұқсас тәсілмен қайтарылады. Бұл байланыссыздық ТКК-ны толық ТКК хостын іске асыруға жеткілікті қуаты жоқ CLDC ұялы телефондары сияқты құрылғылардағы виртуалды машиналарын сынау үшін пайдалануға мүмкіндік береді. ЖЖЖ-дегі сынақтар ЖЖЖ спецификациясындағы талаптарға сәйкес жасалған деп есептеледі. Кез келген API-дың, қателік жағдайларын қоса алғанда, күтілгендей жұмыс ілеуін қамтамасыз ету үшін сынақтар жиынтығы болады. Java іске асырылымы белгілі бір ЖЖЖ-ға сәйкес екенін көрсету үшін тиісті ТКК-дан өтуі керек. Кез келген (сирек) ерекшеліктер спецификациялық жетекшімен келісілуі керек. Осы себепті ТКК-ны іске асыру кезінде маңызды рөл атқарады. Бірінші маңызды кезең – ТКК-ны іске қосу, бұл Java іске асырылымы мен негізгі желілік стектің белгілі бір деңгейде дамығанын білдіреді. Содан кейін ТКК дұрыс конфигурациялануы керек, себебі ол кез келген іске асырылыммен жұмыс істеуге жеткілікті икемді болуы керек, көптеген опциялар бар. (Мысалы, JSR135 үшін қолдау көрсетілетін барлық медиа форматтары мен байланысты қосымша басқару элементтерінің тізімін көрсету). Кейбір сынақтарды орнату қажет, бұл қателік жағдайында дұрыс жұмыс ілеуін қамтамасыз ететін сынақтар үшін әсіресе күрделі, себебі Java іске асырылымы әр қатеге себеп болатын дұрыс күйге келтірілуі керек. Соңында, әрбір сәтсіз сынақ түзетілуі керек, бұл әдетте ақауларды қадағалау жүйесі арқылы жүзеге асырылады. Кейбір Java іске асырушылар ТКК-ны сәтті өткеннен кейін өнімдерін толыққанды деп санайды. ТКК өте толық болғанымен, олар қамтымайтын көптеген салалар бар. Оларға өнімділік және қосымша мүмкіндіктер кіреді. Бұл кемшіліктерді жою үшін нақты жағдайда көптеген сынақтар жүргізу қажет, бірақ JDTS сияқты қосымша сынақ жиынтықтары да көмектесе алады.

Java платформасы үшін TCK

Белгілі бір Java платформасы үшін Технологиялық үйлесімділік жиынтығы Java үйлесімділік жиынтығы (JCK) деп аталады. Бұл Oracle және лицензия иелері платформаның үйлесімді іске асырылуын қамтамасыз ету үшін пайдаланатын кең ауқымды тест жиынтығы. Java 6.0 коды үшін JCK жарияланды. Қоса берілген лицензия бастапқыда пайдаланушыларға тесттерді құрастыруға немесе іске қосуға рұқсат бермеді, бірақ кодты қарау құқығы бұзылу туралы алаңдаушылықтармен байланысты емес және кодқа қатысты қоғамдық пікірлерге жол беріледі. Java SE 7 спецификациясы үшін OpenJDK Community TCK лицензиялық келісімшарты v 2.0 2011 жылдың желтоқсанынан бері жарияланды.

ТКК-ның негіздемесі

JavaTest құралы қазіргі күні іске асырудың сәйкестігін тексеру үшін қолданылатын ең көп таралған бірлік сынақ аясы болып табылады. Бұл TCK сынақтарын орындауға арналған мақсаты жалпы тестілеу аясы. Дегенмен, кейбір талаптар JUnit немесе TestNG-ді де пайдаланады.

Лицензия және даулар

Sun компаниясы OpenJDK-ны шығарғаннан кейін, OpenJDK-дан маңызды үлесте алынған кез келген GPL іске асыру үшін OpenJDK аясында TCK-ны іске қосуға рұқсат беретін арнайы лицензия жариялады. Бұл талап Apache Harmony жобасына Apache лицензиясымен үйлесімді TCK-ны пайдалану құқығын жоққа шығарады. 2010 жылдың 9 қарашасында Apache Software Foundation, егер оларға қосымша шектеулерсіз Harmony үшін TCK лицензиясы берілмесе, Java Community Process-тен шығумен қорқытты. 2010 жылдың 9 желтоқсанында Apache Software Foundation Java SE/EE атқару комитетіндегі өкілдігінен бас тартты.