option
Cuestiones
ayuda
daypo
buscar.php

DAM.MP8.Programación multimedia y dispositivos móviles UF1

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
DAM.MP8.Programación multimedia y dispositivos móviles UF1

Descripción:
UF1.Pac y preguntas examen. --Comprobado OK.

Fecha de Creación: 2021/12/01

Categoría: Informática

Número Preguntas: 98

Valoración:(72)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

UF1-PAC1-001 ¿Cuál de los siguientes IDEs no desarrolla para Android?. Visual Android. Eclipse. Android Studio. Netbeans.

UF1-PAC1-002 A la hora de organizar los ficheros del proyecto de una aplicación en Android, los que contengan el código Kotlin para controlar la programación de las Activities se guardarán en el directorio: java. kotlin. res. Manifest. Gradle.

UF1-PAC1-003 ¿Qué es Logcat?. Herramienta de registro. IDE de Android Studio. Fichero de configuración de la aplicación. Compilador de Android.

UF1-PAC1-004 Señala cuál de las siguientes NO es ejemplo de limitaciones más relevantes que se han de tener en cuenta a la hora de desarrollar aplicaciones para dispositivos móviles: Memoria EPROM. Seguridad. Consumo de batería. Memoria RAM. Conexión a Internet.

UF1-PAC2-005 Una aplicación se compone de... una o más actividades. siempre varias actividades. solo una actividad. al menos dos actividades.

UF1-PAC2-006 Una actividad es el componente de la aplicación que... que permite la interacción con el usuario. que no permite la interacción con el usuario. que permite la interacción con el móvil. ninguna es correcta.

UF1-PAC2-007 Una actividad es... cada una de las pantallas que componen la aplicación. cada una de las aplicaciones que componen la pantalla. cada una de las composiciones que se aplican a la pantalla. Ninguna es correcta.

UF1-PAC2-008 Google ha desarrollado un sistema de reconocimiento de voz que nos permite... Todas son correctas. evitar distracciones al volante. controlar las características de nuestra conducción. Todas son incorrectas.

UF1-PAC2-009 Método que siempre se debe de implementar y es el primero en ejecutarse al crear la actividad: onCreate(). onStart(). onResume(). onCreater().

UF1-PAC2-010 En este estado la actividad se prepara para ser visible mientras entra en primer plano y recibe el foco: onCreate(). onStart(). onResume(). onPause().

UF1-PAC2-011 En este estado la actividad ya es visible para el usuario, es el último método que se ejecuta mientras la actividad permanezca en primer plano. onCreate(). onStart(). onResume(). onPause().

UF1-PAC2-012 En este método se ejecuta ante cualquier indicio de que el usuario va a abandonar la aplicación o ha perdido el foco. onCreate(). onStart(). onResume(). onPause().

UF1-PAC2-013 Ahora, indica cuál de los métodos se llama antes de terminar una actividad, tanto si ha sido desechada por el usuario o si ha sido el sistema el que ha decidido matarla para liberar los recursos que estaba utilizando: onStop(). onResume(). onDestroy(). onPause().

UF1-PAC2-014 Indica qué componente del inspector del Layout se corresponde con la definición: " Visor de pantalla ". muestra una representación muy similar a la que se mostraría en el dispositivo real. muestra un listado de las vistas y componentes gráficos que forman el layout. muestra las propiedades gráficas del componente seleccionado. ninguna es correcta.

UF1-PAC2-015 Indica qué componente del inspector del Layout se corresponde con la definición: " Árbol de vistas ". muestra una representación muy similar a la que se mostraría en el dispositivo real. muestra un listado de las vistas y componentes gráficos que forman el layout. muestra las propiedades gráficas del componente seleccionado. ninguna es correcta.

UF1-PAC2-016 Indica qué componente del inspector del Layout se corresponde con la definición: " Tabla de propiedades ". muestra una representación muy similar a la que se mostraría en el dispositivo real. muestra un listado de las vistas y componentes gráficos que forman el layout. muestra las propiedades gráficas del componente seleccionado. ninguna es correcta.

UF1-PAC3-017 Los layout son elementos... no visibles. visibles. transparentes. semi-visibles.

UF1-PAC3-018 Los layout son elementos cuya función es... establecer la posición de los componentes gráficos. establecer la posición del la pantalla de la aplicación. no establecer la posición de los widges. ninguna es correcta.

UF1-PAC3-019 Indica el directorio en el que encontraremos las imágenes de la aplicación. drawable. Gradle Script. layout. values. Manifest.

UF1-PAC3-020 Indica el directorio en el que encontraremos los ficheros para la compilación de la aplicación. drawable. Gradle Script. layout. values. Manifest.

UF1-PAC3-021 Indica el directorio en el que encontraremos los ficheros que definen el diseño de las pantallas de la app. drawable. Gradle Script. layout. values. Manifest.

UF1-PAC3-022 Indica el directorio en el que encontraremos los estilos y códigos de colores. drawable. Gradle Script. layout. values. Manifest.

UF1-PAC3-023 Indica el directorio en el que encontraremos los permisos de la aplicación. drawable. Gradle Script. layout. values. Manifest.

UF1-PAC3-024 La parte visual que contiene todos los elementos que podemos representar en ella (botones, imágenes, textos, enlaces, etc) y que está programada en XML es: Layout. Activity. Component Tree o árbol de vistas. Tabla de propiedades.

UF1-PAC3-025 La parte lógica invisible al usuario que contiene el código de programación en lenguaje java o kotlin y configura la funcionalidad de los elementos situados en la parte visual: Layout. Activity. Tabla de propiedades. Component Tree o árbol de vistas.

UF1-PAC3-026 Las aplicaciones Android se empaquetan en archivos APK para... ser instaladas o distribuidas. No se empaquetan se comprimen. solo para ser instaladas. solo para ser distribuidas.

UF1-PAC3-027 Las actualizaciones de una aplicación se distribuyen en un nuevo fichero... empaquetado APK. comprimido APK. empaquetado PKT. comprimido RAR.

UF1-PAC3-028 Las aplicaciones... pueden ser totalmente desinstaladas del dispositivo. no pueden ser totalmente desinstaladas del dispositivo, pues quedan siempre almacenadas en el core del sistema operativo. no pueden ser totalmente desinstaladas del dispositivo, siempre queda algún archivo, aunque sea el de instalación. pueden ser totalmente desinstaladas, solo si ejecutamos un programa especial para eliminarlas.

UF1-PAC3-029 En Android Studio... podemos configurar varios dispositivos para emular nuestras aplicaciones. solo podemos configurar un único dispositivo emulador para probar nuestras aplicaciones. solo podemos configurar un emulador desde Android Studio y además nuestro propio dispositivo. solo nuestro propio dispositivo.

UF1-PAC3-030 En una aplicación... pueden convivir ficheros escritos en Kotlin y ficheros escritos en Java. no pueden convivir ficheros escritos en Kotlin y ficheros escritos en Java. pueden convivir ficheros escritos en Kotlin y ficheros escritos en JavaScrip. Solo se puede programar en Kotlin, Java esta obsoleto.

UF1-PAC3-031 Cuando una aplicación está en estado "Started", ésta tiene una prioridad... baja o nula. media. alta. ninguna es correcta.

UF1-PAC3-032 " En el sistema operativo Android finaliza una aplicación... esta decisión reside en la gestión de la pila de aplicaciones del propio sistema Android. cuando el usuario decide. en función de las necesidades de memoria en cada momento. lógicamente cuando llega al final.

UF1-PAC4-033 Identifica a qué tipos de servicios pertenecen estos ciclos de vida. 1) Servicio iniciado. 2) Servicio enlazado. 1) Servicio enlazado. 2) Servicio iniciado. 1) Servicio privado. 2) Servicio iniciado. 1) Servicio iniciado. 2) Servicio finalizado.

UF1-PAC4-034 La ejecución de tareas en segundo plano... hacen que el usuario no perciba su existencia ya que carecen de interfaz gráfica asociada. hacen que el usuario perciba su existencia ya que carecen de interfaz gráfica asociada. hacen que el usuario no perciba su existencia ya que no carecen de interfaz gráfica asociada. hacen que el usuario perciba su existencia ya que no carecen de interfaz gráfica asociada.

UF1-PAC4-035 Los servicios se ejecutan... en el dispositivo sin que se dé cuenta el usuario. en el dispositivo siempre con permiso del usuario. fuera del dispositivo sin que se dé cuenta el usuario. Ninguna de las opciones es correcta.

UF1-PAC4-036 En los servicios enlazados, se utiliza el método... bindService(). startService(). openService(). restoreService().

UF1-PAC4-037 Los servicios Bound o enlazado... está enlazado cuando un componente de la aplicación llama a bindService para establecer una conexión con él. realiza una tarea sobre la que el usuario no tiene ningún control, como, por ejemplo, un cálculo complejo o la compresión de los mensajes en la app de mensajería. puede llevar a cabo tareas de larga duración, pero se ve obligado a mostrar un indicador para que el usuario sepa que está activo. Ninguna es correcta.

UF1-PAC4-038 A partir de la versión 26 de la API de Android... los servicios en segundo plano tienen muchas limitaciones. los servicios en segundo plano tienen muchas menos limitaciones. los servicios en primer plano tienen muchas limitaciones. los servicios en primer plano tienen muchas menos limitaciones.

UF1-PAC4-039 Los servicios Foreground o primer plano... puede llevar a cabo tareas de larga duración, pero se ve obligado a mostrar un indicador para que el usuario sepa que está activo. realiza una tarea sobre la que el usuario no tiene ningún control. ofrece una interfaz cliente-servidor que permite una comunicación directa con el servicio desde la app. Ninguna opción correcta.

UF1-PAC4-040 Todos los servicios se deben declarar en... el archivo AndroidManifest.xml, mediante la etiqueta <Service>. el archivo Permissions.xml, mediante la etiqueta <Service>. el archivo AndroidConfig.xml, mediante la etiqueta <Service>. el archivo AndroidServices.xml, mediante la etiqueta <Service>.

UF1-PAC4-041 Cualquier señal ajena al canal puede afectar a la calidad de la misma, degradando la comunicación. Estabilidad. Eficiencia. Seguridad. Conectividad.

UF1-PAC4-042 Cada mecanismo se adaptará a las necesidades de velocidad de transmisión, consumo de energía, espacio de datos en memoria, etc. Estabilidad. Eficiencia. Seguridad. Conectividad.

UF1-PAC4-043 Es necesario controlar que no existan agentes que puedan interceptar los canales de información y acceder a los datos. Estabilidad. Eficiencia. Seguridad. Conectividad.

UF1-PAC5-FL01 Relaciona el tipo de almacenamiento de datos con la forma de trabajo desde Android. Base de datos internas. Bases de datos externas. Almacenamiento de pares clave-valor. Librería ORM que ayuda en la traducción de SQL a lenguaje de POO.

UF1-PAC5-044 Los proveedores de contenido multimedia requieren: la seguridad de que nadie podrá consumir sus productos sin haber sido autorizado. un permiso para poder ser usados a la hora de acceder a los contenidos. de una versión de Android superior a la Oreo. el pago por sus servicios antes de poder acceder a ellos.

UF1-PAC5-045 Las bases de datos NoSQL no tienen una estructura de tablas y filas ni usan SQL como lenguaje de definición o acceso a los datos que almacenan. Un ejemplo de este tipo de BD es: Firebase. SQLite. MySQL. Derby.

UF1-PAC5-046 Si eliminamos la aplicación y volvemos a instalarla... la configuración guardada con SharedPreferences no sigue almacenada. la configuración guardada con SharedPreferences sigue almacenada. la configuración guardada con SharedPreferences sigue en la nube. Ninguna es correcta.

UF1-PAC5-047 Cuando trabajamos con SharedPreferences... almacenamos un archivo con extensión XML. almacenamos un archivo con extensión SQL. almacenamos un archivo con extensión APK. almacenamos un archivo con extensión EXE.

UF1-PAC5-048 Podemos proteger el fichero de Preferencias para que no sea accesible desde otras aplicaciones... usando la etiqueta MODE_PRIVATE. usando la etiqueta MODE_OCCULT. usando la etiqueta MODE_HIDDEN. usando la etiqueta MODE_COVERT.

UF1-PAC5-FL02 Indica en qué evento de la clase Asynctask se realizan las siguientes instrucciones: Es el encargado de ejecutar el código en la hebra principal. Es el encargado de ejecutar el código en la hebra secundaria. Se usa para comunicar el progreso de la tarea. Es utilizado para finalizar la hebra.

UF1-PAC6-FL03 Ordena las fases: Primera fase. Segunda fase. Tercera fase. Cuarta fase.

UF1-PAC6-049 ¿En qué directorio se guardarán las pruebas unitarias?. modulo/src/test/java. modulo/src/test. modulo/src/res/test. Ninguna de las opciones es correcta.

UF1-PAC6-050 ¿Qué pruebas permiten probar el funcionamiento de módulos?. unit tests. Loogin Tools. Android Testing. ProGuard.

UF1-PAC6-051 Android ofrece documentos de log como los: unit tests. Loggin Tools. Android Testing. ProGuard.

UF1-PAC6-052 ¿Qué extensión tiene una aplicación Android?. APK. SDK. EXE. JAR.

UF1-PAC6-053 Si tengo el siguiente archivo AndroidManifest.xml, ¿Cómo se denominará la aplicación que genere?. AppGame. miGame. ic_launcher. miPrimeraApp.

UF1-TestEval-FL04 Completar el gráfico: 1. 2. 3. 4. 5. 6. 7.

UF1-Ex-054 ¿En qué directorio podemos encontrar los ficheros de diseño de los layouts?. /res/layout. /java/layout. /kotlin/layout. /drawable/layout.

UF1-Ex-055 ¿Qué permiso debemos declarar dentro del AndroidManifest para escribir en el almacenamiento interno del dispositivo?. No necesitamos ningún permiso para acceder a la memoria interna del dipositivo. WRITE_STORAGE. WRITE_INTERNAL_STORAGE. WRITE_EXTERNAL_STORAGE.

UF1-Ex-056 En Android Studio existe una funcionalidad que controla todo el mecanismo de compilación mediante unos ficheros de configuración, se trata de: Gradle. APK. Logcat. AndroidManifest.

UF1-Ex-057 El tipo de conexiones que hace referencia a las tecnologías wireles para iniciar comunicaciones a pocos centímetros de distancia se conoce como... NFC. WLAM. Bluetooth. Telecom.

UF1-Ex-058 "¿Qué hace el código que se muestra a continuación? val i = Intent (this, Activity2::class.java); i.putExtra("mensaje", "Esto es otro mensaje para la Actividad 2"); i.putExtra("ID", 85); startActivity(i);. La actividad que lo invoca envía a la Actividad 2 un mensaje de texto y un dato numérico. Envía dos mensajes de texto al proceso 85 que cargará la Actividad B. Ninguna de las opciones es correcta. La actividad principal que lo ejecuta recibe dos mensajes de la Actividad B, que tiene un identificador de proceso con ID 85.

UF1-Ex-059 ¿En que directorio de un proyecto Android crearemos la animaciones de vistas?. res/anim. res/drawable/anim. res/animations. res/animator.

UF1-Ex-060 ¿Qué significan las siglas AVD?. Android Virtual Device. Android Virtual Debug. Android Virtual Debugger. Android Visual Device.

UF1-Ex-061 "Una de las herramientas que Android Studio usa para solucionar e identificar errores podemos encontrarla en las pestañas inferiores y muestra los errores del sistema y los mensajes que configuremos en nuestra APP. Esta herramienta se conoce como". Logcat. Gradle. error.xml. AndroidManifest.

UF1-Ex-062 ¿Qué es un servicio?. Es un proceso ejecutado de forma invisible para el usuario, existen tres tipos diferentes. Es un proceso ejecutado de forma visible para el usuario, existen dos tipos diferentes. Es un proceso ejecutado de forma invisible para el usuario, pero puede comunicarse con el. Es un proceso ejecutado de forma invisible para el usuario, existe un único tipo en las aplicaciones Android.

UF1-Ex-063 ¿Qué dos métodos son obligatorios en la clase AsyncTask?. doInBackground() y onPostExecute(). start() y onFinishExecute(). doInBackground() y start(). onExecute() y onPostExecute().

UF1-Ex-064 Cada actividad tiene…. Capa lógica (la cual establece el funcionamiento de la aplicación) y parte gráfica (son los archivos xml que forman los distintos layouts). Capa lógica (la cual establece el funcionamiento de la aplicación) y parte gráfica (son los archivos java que forman los distintos layouts). Parte gráfica (la cual establece el funcionamiento de la aplicación) y capa lógica (son los archivos java que forman los distintos layouts). Parte gráfica (la cual establece el funcionamiento de la aplicación) y capa lógica (son los archivos xml que forman los distintos layouts).

UF1-Ex-065 Los proveedores de contenido permiten: Recoger información de otras aplicaciones, como puede ser el listín telefónico. Todas son correctas. Recoger los mensajes de WhatsApp. Recoger información propia del teléfono, como puede ser el nivel de batería.

UF1-Ex-066 Cada actividad…. Necesita un archivo .java y un .xml, además de que cada una debe ser declarada en el AndroidManifest.xml. Necesita un archivo .APK y un .xml. Necesita un archivo .java y un .xml. No es necesario declarar la actividad en el AndroidManifest.xml. Solamente se necesita un archivo .xml.

UF1-Ex-067 ¿Cómo se denomina al entorno de EJECUCIÓN de Android?. ART (Android Runtime). ADV (Android Virtual Device, AVD). ADB (Android Debug Bridge). JDK (Java Development Kit).

UF1-Ex-068 ¿Cuál es uno de los métodos para lanzar el intent?. startActivity(intent). getActivity(intent). onStartActivity (intent). setActivity(intent).

UF1-Ex-069 Todos los elementos se colocan en pila (linealmente) y pueden ser en forma vertical u horizontal. Señala la correcta: LinearLayout. FrameLayout. RelativeLayout. GridLayout.

UF1-Ex-070 ¿Qué permisos son necesarios para enviar SMS desde nuestra app Android?. SEND_SMS. sendTextMessage. SmsManager. SEND _TEXT _MESSAGE.

UF1-Ex-071 El encargado de lanzar una actividad: Intent. AndroidManifest.xml. Activity. Botón. Layout.

UF1-Ex-072 En el archivo AndroidManifest.xml se declaran. Los permisos. Las variables. Los métodos. Los intents.

UF1-Ex-073 Todos los elementos se colocan en una posición con respecto a otro elemento o al layout que lo contiene. RelativeLayout. FrameLayout. TableLayout. GridLayout.

UF1-Ex-074 ¿Qué es un proveedor de contenidos?. Componente usado para compartir datos entre distintas aplicaciones. Permisos para acceder a internet. Componente que detecta y reacciona frente a mensajes globales del sistema. Componente sin interfaz gráfica que se ejecuta en segundo plano.

UF1-Ex-075 ¿Cuáles de las siguientes son ejemplos de limitaciones más relevantes que se han de tener en cuenta a la hora de desarrollar aplicaciones para dispositivos móviles?. Todas son correctas. Seguridad. Consumo de batería. Memoria RAM.

UF1-Ex-076 Al crear nuestra base de datos que vamos a usar en nuestra aplicación, puede ocurrir que ya existiera una versión anterior, por lo que es necesario que se lance un método para que se actualicen los datos con la nueva información. Esta función es... onUpgrade(). onCreate(). Ninguna respuesta es correcta. onRestore().

UF1-Ex-077 ¿Qué métodos se ejecutan al volver a la aplicación?. onRestart(), onStart() y onResume(). onPause(), onRestart() y onResume(). onPause(), onResume() y onDestroy(). onStop(), onPause() y onRestart().

UF1-Ex-078 ¿Que es GenyMotion?. Emulador. IDE. Galería de imágenes y sonidos para Android. Ninguna de las opciones es correcta.

UF1-Ex-079 Indica qué método de los que has estudiado en el ciclo de vida de las aplicaciones de Android ha de ser implementado en toda Actividad ya que es el primero que se invoca al crearse ésta. onCreate(). onResumen(). onStart(). onRecycle.

UF1-Ex-080 Cuando una aplicación está en estado "Stoped", ésta tiene una prioridad. alta. baja o nula. media. ninguna de las anteriores es correcta.

UF1-Ex-081 ¿Para que se utiliza ListView?. Es un grupo de vistas que muestran una lista de elementos desplazables. Es un elemento de comunicación entre los distintos componentes de una aplicación. Mediante diferentes librerías, permiten manipular datos en un XML. Permite almacenar la configuración del usuario en la aplicación.

UF1-Ex-082 ¿Qué métodos se ejecutan si cerramos la aplicación?. onPause(), onStop() y onDestroy(). onStop(), onPause () y onResume(). onPause(), onRestart() y onResume(). onPause(), onResume() y onDestroy().

UF1-Ex-083 Existen varios tipos de layout, indica cuales: (Elige la opción más correcta). FrameLayout, LinearLayout, RelativeLayout, TableLayout o GridLayout. VerticalLayout, HorizontalesLayout, RelativosLayouts. FrameLayout, LinearLayout, IndexLayout, PanelsLayout. Ninguna opciones es la correcta.

UF1-Ex-084 Las actividades en primer plano tienen... 3 estados, Created, Started y Resumed. 3 estados, Started, Paused y Stoped. 3 estados, Resumed, Paused y Stoped. 3 estados, Created, Paused y Stoped.

UF1-Ex-085 ¿Qué hace este trozo de código? override fun onCreate(db: SQLiteDatabase) { db.execSQL(SQL_CREATE_JUGADORES) db.execSQL(SQL_CREATE_PARTIDAS) } override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) { db.execSQL(SQL_DELETE_JUGADORES) db.execSQL(SQL_DELETE_PARTIDAS) onCreate(db) }. El método onCreate() crea la base de datos, si ya existe dicha base de datos, solo la abrirá. El método onUpgrade() de encarga de actualizar la estructura de dicha base de datos, es decir, si el número de versión es superior al que estaba establecido, se ejecutará este método. se crea la base de datos y se le introduce una serie de datos. El método onUpgrade() crea la base de datos, si ya existe dicha base de datos, solo la abrirá. El método onCreate() de encarga de actualizar la estructura de dicha base de datos, es decir, si el número de versión es superior al que estaba establecido, se ejecutará este método. Se crea una actividad enlazando el archivo. java y el .xml.

UF1-Ex-086 Cuando una aplicación está en estado "Destroyed", ésta tiene una prioridad... alta. media. baja o nula. ninguna de las anteriores es correcta.

UF1-Ex-087 Cuando una aplicación está en estado "Paused", ésta tiene una prioridad... media. baja o nula. alta. pausada.

UF1-Ex-088 Cuando una aplicación está en estado de "Resumed" ésta tiene una prioridad... baja o nula. alta. pausada. media.

UF1-Ex-089 ¿Cuál es uno de los métodos para lanzar el intent?. startActivity(intent). getActivity(intent). setActivity(intent). onStartActivity(intent).

UF1-Ex-090 ¿Qué métodos se ejecutan al cambiar de aplicación?. onPause() y onStop(). onPause() y onResume(). onStop() y onRestart(). onRestart() y onPause().

UF1-Ex-091 ¿Qué hace el siguiente código? Intent intent = new Intent( MainActivity.this , MainActivity2.class ); startActivity( inten );. Se crea un objeto de la clase Intent para poder acceder a la actividad MainActivity2. Se destruye la actividad llamada MainActivity y se accede a la actividad MainActivity2. Se enlaza la parte lógica con la parte gráfica de las dos activitys. Se crea un objeto de la clase Intent para juntar componentes de las dos actividades.

UF1-Ex-092 Antes de ver la actividad por pantalla se ejecutan 3 métodos: onCreate(), onStart() y onResume(). onCreate(), onStart() y onPause(). onCreate(), onStart() y onRestart(). onStart(), onResume() y onRestart().

UF1-Ex-093 ¿Cómo de puede enviar parámetros de una actividad a otra?. Se envían mediante el método putExtras() y se reciben en la nueva actividad mediante el método getExtras(). Se envían mediante el método getExtras() y se reciben en la nueva actividad mediante el método putExtras(). Se envían y se reciben mediante el método putExtra(). Se envían y se reciben mediante el método getExtras().

UF1-Jorge-94 ¿Qué es un socket?. es un mecanismo que permite la comunicación entre aplicaciones a través de la red, es decir, abstrae al usuario del paso de la información entre diferentes capas. recurso que es capaz de interactuar con el usuario y se encarga de recoger los eventos. recurso que se utiliza para lanzar un servicio. es un mecanismo para poder conectar elementos de una actividad.

Denunciar Test