stringtranslate.com

Kit de compatibilidad de tecnología

Un kit de compatibilidad de tecnología ( TCK ) es un conjunto de pruebas que, al menos nominalmente, comprueban la conformidad de una supuesta implementación particular de una solicitud de especificación de Java (JSR). Es una de las tres piezas requeridas para una JSR ratificada en el proceso de la comunidad Java , que son:

Contenidos y arquitectura

Los TCK suelen obtenerse del responsable de especificaciones de un JSR determinado. Por lo general (pero no siempre) consisten en 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. Normalmente, el dispositivo obtiene las pruebas a través de HTTP y los resultados se envían a la aplicación host de forma similar. Esta disociación permite utilizar los TCK para probar máquinas virtuales en dispositivos como teléfonos móviles CLDC que no tienen la potencia necesaria para ejecutar la aplicación host TCK completa.

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

Para poder 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 la especificación. Por este motivo, los TCK son de gran importancia a la hora de implementar un JSR. El primer gran hito es poner en funcionamiento el TCK en primer lugar, lo que implica necesariamente 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 (ya que debe ser lo suficientemente flexible como para hacer frente a cualquier implementación, existen muchas opciones). (Por ejemplo, enumerar todos los formatos de medios compatibles 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 garantizan un comportamiento correcto en condiciones de error, porque la implementación de Java debe ponerse en el estado correcto para provocar cada error). Por último, cada prueba fallida debe corregirse, lo que normalmente se gestiona mediante los mecanismos habituales de seguimiento de defectos .

Algunos implementadores de Java consideran que su producto está prácticamente completo una vez que pasan las pruebas TCK. Si bien es cierto que las pruebas TCK son bastante completas, hay muchas áreas que no cubren, como el rendimiento y las características opcionales. No hay otra alternativa que realizar muchas pruebas en el mundo real para solucionar estas deficiencias, aunque pueden resultar útiles conjuntos de pruebas adicionales como JDTS .

TCK para la plataforma Java

El kit de compatibilidad tecnológica para una plataforma Java en particular se denomina Java Compatibility Kit (JCK) . Es un conjunto de pruebas extenso que utilizan Oracle y sus licenciatarios para garantizar implementaciones compatibles de la plataforma.

El código fuente de JCK para Java 6.0 ya ha sido publicado. [1] [2] La licencia asociada no permitía inicialmente a los usuarios compilar o ejecutar las pruebas, [3] pero el derecho a ver el código no está asociado con preocupaciones 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 de OpenJDK, es decir, para cualquier implementación GPL que derive sustancialmente de OpenJDK. [4] [5]

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

Marco TCK

La herramienta de pruebas JavaTest es actualmente el marco de pruebas unitarias más común que se utiliza para verificar la conformidad 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 la ejecución de TCK en el contexto de OpenJDK para cualquier implementación GPL que 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 Java Community Process si no se le 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]

Véase también

Referencias

  1. ^ ab Hamilton, Graham (13 de diciembre de 2004). "Fuentes de prueba de compatibilidad J2SE publicadas". Archivado desde el original el 16 de diciembre de 2004. Consultado el 8 de marzo de 2008. Hemos intentado asegurarnos de que la licencia satisfaga las necesidades razonables de los desarrolladores que desean evaluar las fuentes JCK: está disponible sin costo alguno, a través de una licencia de clic; no hay "contaminación". Una vez que elimine su copia de JCK, no tendrá restricciones en sus acciones futuras. Para intentar 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 quedan en su cabeza están bien para usarlas en el futuro; puede publicar comentarios y opiniones públicamente.
  2. ^ Proyecto JCK Archivado el 8 de julio de 2007 en Wayback Machine .
  3. ^ "ACUERDO DE LICENCIA DE FUENTE "SOLO LECTURA", v1.0 JAVA (TM) COMPATIBILITY KIT 6a". Sun Microsystems . Junio ​​de 2007. Archivado desde el original el 2010-12-31 . Consultado el 2008-03-08 .
  4. ^ Darcy, Joseph (6 de marzo de 2008). "Coincidencia de versiones de JDK y JCK". 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 LA COMUNIDAD OPENJDK TCK V 1.1" (PDF) . Sun Microsystems . Consultado el 8 de marzo de 2008 . Sujeto a y condicionado a que su Implementación del Licenciatario se derive sustancialmente del Código OpenJDK y, si dicha Implementación se ha distribuido o se distribuirá a un tercero, que se distribuya bajo la Licencia GPL, Sun otorga por la presente al Licenciatario, en la medida de los Derechos de propiedad intelectual de Sun en el TCK, una licencia mundial, personal, no exclusiva, intransferible y limitada para usar el TCK internamente y únicamente con el propósito 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 LA COMUNIDAD OPENJDK TCK V 1.1" (PDF) . Sun Microsystems . Consultado el 8 de marzo de 2008 . Sujeto a y condicionado a que su Implementación del Licenciatario se derive sustancialmente del Código OpenJDK y, si dicha Implementación se ha distribuido o se distribuirá a un tercero, que se distribuya bajo la Licencia GPL, Sun otorga por la presente al Licenciatario, en la medida de los Derechos de propiedad intelectual de Sun en el TCK, una licencia mundial, personal, no exclusiva, intransferible y limitada para usar el TCK internamente y únicamente con el propósito de desarrollar y probar la Implementación del Licenciatario.
  9. ^ Declaración de la Junta Directiva de la ASF sobre nuestra participación en el Proceso de la Comunidad Java, blog de la 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