Documentation
Verificación AQAvit™

El proyecto AQAvit fue creado para "hacer que la calidad sea una certeza". La verificación AQAvit se logra a través del proceso de ejecutar y superar un conjunto prescrito y versionado de pruebas en la suite de pruebas AQAvit. La Licencia de Software de Verificación de Calidad de la Fundación Eclipse (QVSL) requiere que aquellos que deseen verificar su producto compartan un resumen de los resultados de las pruebas mediante los cuales se logró la verificación. Este documento describe cómo ejecutar las pruebas de verificación AQAvit, comprobar que la verificación se ha superado y recopilar los resultados de las pruebas requeridas para su publicación.

La verificación AQAvit es uno de los criterios para figurar en el Marketplace de Adoptium. Aprovechar la suite de pruebas AQAvit para asegurar la calidad de los binarios listados en el Marketplace de Adoptium no solo comunica a los consumidores lo seriamente que nos tomamos la calidad, sino que también consolida las buenas prácticas de verificación de los miembros del Grupo de Trabajo de Adoptium bajo un esfuerzo centralizado. AQAvit alinea sus estándares de la suite de pruebas con los requisitos en constante cambio de la base de usuarios.

Descripción general

La suite de pruebas AQAvit es un gran conjunto de pruebas, muchas de ellas aportadas al proyecto AQAvit y algunas extraídas de diversos proyectos de código abierto, que sirven para verificar la calidad de los binarios OpenJDK. La suite es adecuada para probar versiones de Java SE 8 o superiores en todas las plataformas compatibles. Para verificar los binarios, los evaluadores clonan una versión específica del repositorio de GitHub aqa-tests (la última versión estable del repositorio aqa-tests), configuran su entorno de prueba, ejecutan y superan los objetivos de prueba requeridos contra cada binario que planean verificar y ponen a disposición los resultados de esas ejecuciones de prueba según lo establecido en la QVSL.

Objetivos de prueba de AQAvit a ejecutar

Las pruebas se dividen en diferentes grupos y esos grupos se dividen en 3 niveles. Esta categorización lógica de las pruebas proporciona flexibilidad y granularidad y puede representarse visualmente en una cuadrícula.

vista de cuadrícula

Para la versión actual de AQAvit, el conjunto de objetivos de prueba de nivel superior requeridos para ejecutar son [sanity.functional, extended.functional, special.functional, sanity.openjdk, extended.openjdk, sanity.system, extended.system, sanity.perf, extended.perf]. En versiones posteriores de AQAvit, se añadirán objetivos para elevar aún más el listón de calidad.

Detalles sobre la ejecución de las pruebas

AQAvit se puede ejecutar en varios entornos de CI/CD, así como directamente a través de la línea de comandos en un contenedor o en una máquina de prueba que tenga instalados los prerrequisitos de prueba. Los pasos básicos son los mismos en cualquier entorno.

Los archivos .tap y los archivos de metadatos contienen marcas de tiempo e información sobre el binario bajo prueba. Esta información se recopila de la salida de java -version, la información del archivo de lanzamiento y la consulta de algunas propiedades del sistema durante la ejecución de la prueba. Cuando sea aplicable, la información debe coincidir con el binario listado en el marketplace.

Verificación de resultados

La suite de pruebas AQAvit produce archivos de resultados de prueba y archivos de metadatos al final de la ejecución de la prueba. Al ejecutar y superar cada uno de los nueve objetivos de prueba requeridos, los archivos de resultados y los archivos de metadatos deben recopilarse y compartirse. Para los objetivos de prueba que contienen fallos, se debe abordar la causa raíz del fallo y se puede volver a ejecutar el objetivo y producir y compartir un archivo de resultados de prueba actualizado.

Los archivos de resultados de prueba que se producen siguen una cierta convención de nomenclatura y utilizan un protocolo simple TAP (Test Anything Protocol). Cuando los objetivos de nivel superior se ejecutan en serie, se produce un único archivo .tap, por ejemplo:

Test_openjdk11_hs_sanity.system_aarch64_linux.tap

contiene la versión, impl/distribución, objetivo de prueba e información de la plataforma en el nombre, y su contenido se ve así:

# Timestamp: Wed Mar  2 10:51:55 2022 UTC
1..168
ok 1 - MachineInfo_0
  ---
    duration_ms: 581
  ...
ok 2 - ClassLoadingTest_5m_0
  ---
    duration_ms: 304339
  ...
ok 3 - ClassLoadingTest_5m_1
  ---
    duration_ms: 303883
  ...
etc.
  ...
ok 168 - MauveMultiThrdLoad_5m_1
  ---
    duration_ms: 304296
  ...

Se puede ver en este ejemplo que el objetivo de nivel superior sanity.system contiene 168 subobjetivos. Del conjunto de subobjetivos esperados, algunos pueden ser 'omitidos' debido a que se filtran por no ser aplicables para una versión o plataforma en particular, pero no debe haber ninguno que haya fallado. Dentro del archivo tap, se mostrarán como 'not ok' si han fallado. Los subobjetivos fallidos se pueden volver a ejecutar individualmente y el archivo tap producido para esa ejecución individual se puede incluir en el archivo <resultados>.zip para indicar que el binario bajo prueba pudo superar todos los objetivos esperados.

Autores de la documentación
gdamssmlambertllxiatellisonNickJavaDev88
edit icon

¡Ayúdanos a mejorar esta documentación!

Toda la documentación de Adoptium es de código abierto. ¿Has encontrado algo incorrecto o confuso?

gradient overlay mobile
message icon

Connect with the community

Join our Slack channel to discuss work and reach out to project maintainers.