stringtranslate.com

Kit de compatibilidad tecnológica

Un kit de compatibilidad tecnológica ( TCK ) es un conjunto de pruebas que, al menos nominalmente, verifican el cumplimiento de una supuesta implementación particular de una solicitud de especificación de Java (JSR). Es una de las tres piezas requeridas para un JSR ratificado en el Proceso de la Comunidad Java , que son:

Contenidos y arquitectura

Los TCK tienden a obtenerse del líder de especificación de un JSR determinado. Por lo general (pero no siempre) constan de una aplicación host gráfica que se comunica a través de TCP/IP con el dispositivo o la máquina virtual Java que se está probando. Por lo general, el dispositivo obtiene las pruebas a través de HTTP y los resultados se envían a la aplicación host de manera similar. Este desacoplamiento permite que los TCK se utilicen para probar máquinas virtuales en dispositivos como teléfonos móviles CLDC que no tienen la capacidad para ejecutar la aplicación host TCK completa.

Las pruebas contenidas en el JSR supuestamente se derivan de las declaraciones de la especificación JSR. Cualquier API determinada tendrá un conjunto de pruebas para garantizar que se comporta de la forma prevista, incluso en condiciones de error.

Para declarar la conformidad con un JSR determinado, una implementación de Java debe pasar el TCK asociado. Cualquier excepción (rara) debe negociarse con el responsable de especificaciones. Por este motivo, los TCK son de gran importancia a la hora de implementar un JSR. El primer gran hito es lograr que TCK se ejecute en primer lugar, lo que necesariamente implica que la implementación de Java y la pila de red subyacente tengan un cierto nivel de madurez. A continuación, el TCK debe configurarse correctamente; como debe ser lo suficientemente flexible para hacer frente a cualquier implementación, existen muchas opciones. (Por ejemplo, enumerar todos los formatos multimedia admitidos y los controles opcionales asociados para JSR135 ). Las pruebas particulares también requieren cierta actividad de configuración; esto tiende a ser particularmente complejo para las pruebas que aseguran un comportamiento correcto en condiciones de error, porque la implementación de Java debe ponerse en el estado correcto para causar cada error. Finalmente, cada prueba fallida debe corregirse, lo que generalmente se maneja mediante los mecanismos habituales de seguimiento de defectos .

Algunos implementadores de Java consideran que su producto estará prácticamente completo una vez que pasen los TCK. Si bien es cierto que los TCK son bastante completos, hay muchas áreas que no cubren. Estos incluyen el rendimiento, así como las características opcionales. No hay otra alternativa que realizar muchas pruebas en el mundo real para abordar estas deficiencias, aunque conjuntos de pruebas adicionales como JDTS pueden ayudar.

TCK para la plataforma Java

El kit de compatibilidad tecnológica para una plataforma Java concreta se denomina kit de compatibilidad de Java (JCK) . Es un amplio conjunto de pruebas utilizado por Oracle y sus licenciatarios para garantizar implementaciones compatibles de la plataforma.

Se ha publicado el código fuente JCK para Java 6.0 . [1] [2] La licencia asociada inicialmente no permitía a los usuarios compilar o ejecutar las pruebas, [3] pero el derecho a ver el código no está asociado con problemas de contaminación y se permiten comentarios públicos sobre el código fuente. [1] Sin embargo, desde el lanzamiento de OpenJDK , una licencia específica permite ejecutar JCK en el contexto OpenJDK, es decir, para cualquier implementación GPL que se derive sustancialmente de OpenJDK. [4] [5]

El Acuerdo de licencia OpenJDK Community TCK v 2.0 se publicó para la especificación Java SE 7 desde diciembre de 2011. [6]

marco TCK

La herramienta de arnés JavaTest es hoy el marco de pruebas unitarias más común utilizado para verificar el cumplimiento de la implementación. Es un marco de pruebas de propósito general diseñado para ejecutar pruebas TCK. Sin embargo, algunas especificaciones también utilizan JUnit o TestNG . [7]

Licencia y controversia

Después del lanzamiento de OpenJDK por parte de Sun , Sun lanzó una licencia específica para permitir ejecutar TCK en el contexto de OpenJDK para cualquier implementación de GPL que se derive sustancialmente de OpenJDK. [8]

Este requisito niega al proyecto Apache Harmony un derecho compatible con la licencia Apache para utilizar el TCK. El 9 de noviembre de 2010, la Apache Software Foundation amenazó con retirarse del Proceso de la comunidad Java si no se les concedía una licencia TCK para Harmony sin restricciones adicionales. [9]

El 9 de diciembre de 2010, la Apache Software Foundation renunció a su puesto en el Comité Ejecutivo de Java SE/EE. [10]

Ver también

Referencias

  1. ^ ab Hamilton, Graham (13 de diciembre de 2004). "Se publicaron las fuentes de prueba de compatibilidad de J2SE". Archivado desde el original el 16 de diciembre de 2004 . Consultado el 8 de marzo de 2008 . Hemos tratado de asegurarnos de que la licencia satisfaga las necesidades razonables de los desarrolladores que desean evaluar las fuentes de JCK: está disponible sin costo alguno, a través de una licencia de clic; No hay "contaminación". Una vez que elimine su copia del JCK, no estará limitado en sus acciones futuras. Para tratar de dejar esto realmente claro, incluimos una sección que otorga explícitamente lo que los abogados llaman "derechos residuales", lo que básicamente significa que las cosas que se te quedan en la cabeza están bien para usar en el futuro; Puede publicar opiniones y comentarios públicamente.
  2. ^ Proyecto JCK Archivado el 8 de julio de 2007 en Wayback Machine .
  3. ^ ""SOLO LECTURA "ACUERDO DE LICENCIA DE FUENTE, KIT DE COMPATIBILIDAD 6a DE JAVA (TM) v1.0". Microsistemas solares . Junio ​​de 2007. Archivado desde el original el 31 de diciembre de 2010 . Consultado el 8 de marzo de 2008 .
  4. ^ Darcy, José (6 de marzo de 2008). "Versiones JDK y JCK coincidentes". Archivado desde el original el 12 de agosto de 2011 . Consultado el 8 de marzo de 2008 . Si está interesado en ejecutar JCK en el contexto de proyectos OpenJDK, hay una licencia disponible.
  5. ^ "ACUERDO DE LICENCIA DE OPENJDK COMMUNITY TCK V 1.1" (PDF) . Microsistemas solares . Consultado el 8 de marzo de 2008 . Sujeto y condicionado a que la Implementación del Licenciatario se derive sustancialmente del Código OpenJDK y, si dicha Implementación se ha distribuido o se va a distribuir a un tercero, se distribuya bajo la Licencia GPL, por la presente Sun otorga al Licenciatario, en la medida de los derechos intelectuales de Sun. Derechos de propiedad en TCK, una licencia mundial, personal, no exclusiva, intransferible y limitada para usar TCK internamente y únicamente con el fin de desarrollar y probar la implementación del Licenciatario.
  6. ^ http://openjdk.java.net/legal/OpenJDK-TCK_SE7_27Dec2011.pdf [ URL básica PDF ]
  7. ^ "Buscar código fuente: jsr-352-git-repository". Archivado desde el original el 5 de marzo de 2013 . Consultado el 12 de febrero de 2014 .
  8. ^ "ACUERDO DE LICENCIA DE OPENJDK COMMUNITY TCK V 1.1" (PDF) . Microsistemas solares . Consultado el 8 de marzo de 2008 . Sujeto y condicionado a que la Implementación del Licenciatario se derive sustancialmente del Código OpenJDK y, si dicha Implementación se ha distribuido o se va a distribuir a un tercero, se distribuya bajo la Licencia GPL, por la presente Sun otorga al Licenciatario, en la medida de los derechos intelectuales de Sun. Derechos de propiedad en TCK, una licencia mundial, personal, no exclusiva, intransferible y limitada para usar TCK internamente y únicamente con el fin de desarrollar y probar la implementación del Licenciatario.
  9. ^ Declaración de la Junta de ASF sobre nuestra participación en el Proceso de la Comunidad Java, blog de Apache Software Foundation , 9 de noviembre de 2010
  10. ^ La ASF dimite del Comité Ejecutivo del JCP, blog de la Apache Software Foundation , 9 de diciembre de 2010

enlaces externos