Kit de compatibilidade de tecnologia - Technology Compatibility Kit

Um Technology Compatibility Kit ( TCK ) é um conjunto de testes que, pelo menos nominalmente, verifica a conformidade de uma suposta implementação particular de um Java Specification Request ( JSR ). É uma das três peças necessárias para uma JSR ratificada no Java Community Process , que são:

Conteúdo e arquitetura

Os TCKs tendem a ser obtidos no líder de especificação de um determinado JSR. Eles geralmente (mas nem sempre) consistem em um aplicativo host gráfico que se comunica por TCP / IP com o dispositivo ou máquina virtual Java que está sendo testado. Os testes são normalmente obtidos pelo dispositivo em HTTP e os resultados são postados de volta no aplicativo host de maneira semelhante. Esse desacoplamento permite que os TCKs sejam usados ​​para testar máquinas virtuais em dispositivos como telefones móveis CLDC que não têm o poder de executar o aplicativo host TCK completo.

Os testes contidos no JSR são supostamente derivados das instruções na especificação JSR. Qualquer API terá um conjunto de testes para garantir que se comporte da maneira pretendida, inclusive em condições de erro.

Para declarar a conformidade com um determinado JSR, uma implementação Java deve passar o TCK associado. Quaisquer (raras) exceções devem ser negociadas com o líder de especificações. Por isso, os TCKs são de grande importância ao implementar um JSR. O primeiro grande marco é fazer com que o TCK funcione em primeiro lugar, o que necessariamente envolve a implementação Java e a pilha de rede subjacente com um certo nível de maturidade. Em seguida, o TCK deve ser configurado corretamente - porque eles devem ser flexíveis o suficiente para lidar com qualquer implementação, há muitas opções. (Por exemplo, listando todos os formatos de mídia suportados e controles opcionais associados para JSR135 ). Testes específicos também requerem alguma atividade de configuração - isso tende a ser particularmente complexo para os testes que garantem o comportamento correto em condições de erro, porque a implementação Java deve ser colocada no estado correto para causar cada erro. Finalmente, cada teste com falha deve ser corrigido, o que geralmente é tratado pelos mecanismos usuais de rastreamento de defeitos .

Alguns implementadores de Java consideram seu produto principalmente completo depois que os TCKs são aprovados. Embora seja verdade que os TCKs sejam bastante abrangentes, há muitas áreas que eles não cobrem. Isso inclui desempenho, bem como os recursos opcionais. Não há alternativa a não ser fazer muitos testes do mundo real para resolver essas deficiências, embora suítes de teste adicionais, como JDTS, possam ajudar.

TCK para a plataforma Java

O Kit de compatibilidade de tecnologia para uma plataforma Java específica é denominado Kit de compatibilidade Java (JCK) . É um amplo conjunto de testes usado pela Oracle e licenciados para garantir implementações compatíveis da plataforma.

O código-fonte JCK para Java 6.0 foi lançado. A licença associada não permitia inicialmente que os usuários compilassem ou executassem os testes, mas o direito de ver o código não está associado a problemas de contaminação e comentários públicos sobre o código-fonte são permitidos. No entanto, desde o lançamento do OpenJDK , uma licença específica permite a execução do JCK no contexto do OpenJDK, ou seja, para qualquer implementação GPL derivada substancialmente do OpenJDK.

O OpenJDK Community TCK License Agreement v 2.0 foi publicado para a Especificação Java SE 7 desde dezembro de 2011.

Estrutura TCK

A ferramenta de harness JavaTest é hoje a estrutura de teste de unidade mais comum usada para verificar a conformidade da implementação. É uma estrutura de teste de propósito geral projetada para executar testes TCK. No entanto, algumas especificações também usam JUnit ou TestNG .

Licença e polêmica

Após o lançamento do OpenJDK pela Sun, a Sun lançou uma licença específica para permitir a execução do TCK no contexto do OpenJDK para qualquer implementação GPL derivada substancialmente do OpenJDK.

Este requisito nega ao projeto Apache Harmony um direito compatível com a Licença Apache de usar o TCK. Em 9 de novembro de 2010, a Apache Software Foundation ameaçou retirar-se do Java Community Process se não recebesse uma licença TCK para Harmony sem restrições adicionais.

Em 9 de dezembro de 2010, a Apache Software Foundation renunciou ao seu assento no Comitê Executivo Java SE / EE.

Veja também

Referências

links externos