El Ascenso de los Robots

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Descubre el futuro de las pruebas automatizadas de aplicaciones móviles con un brazo mecánico impulsado por JavaScript. Durante esta charla exploraremos el diseño, prototipado e implementación de esta solución de vanguardia, optimizando la eficiencia y precisión de las pruebas en dispositivos móviles reales. También discutiremos los desafíos de construir una solución de hardware para el mundo real y cómo superarlos.

This talk has been presented at TestJS Summit 2023, check out the latest edition of this JavaScript Conference.

FAQ

Theodor es un ingeniero de software basado en Atenas, Grecia y el fundador de Proxima Analytics, una plataforma de análisis ética de código abierto.

Theodor trabajó en una empresa donde desarrollaron tres productos principales: una aplicación web, una aplicación móvil para Android y otra para iOS.

Las pruebas de extremo a extremo en móviles son complicadas debido a la necesidad de probar en emuladores y dispositivos reales, las interrupciones externas como llamadas y notificaciones, y las restricciones de seguridad que limitan la interacción con el sistema operativo.

Un robot Delta tiene una base en la parte superior con tres o cuatro motores adjuntos y pares de brazos conectados al actuador. Es fácil de operar, rápido y eficiente, lo que lo hace adecuado para movimientos naturales y repetitivos.

Jason Huggins es el fundador de Tapster y uno de los creadores de Appium y Selenium. Tapster ofrece dispositivos de código abierto para la automatización de pruebas.

JavaScript es útil en la programación de microcontroladores para dispositivos de IoT, utilizando frameworks como Joni 5, que actúa como un proxy permitiendo controlar el dispositivo mediante un servidor de Node.js.

Theodore Vorillas
Theodore Vorillas
27 min
07 Dec, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla discute la posibilidad de que los robots tomen el control basándose en las tres leyes de la robótica de Asimov. Explora el uso de robots de automatización para pruebas, incluyendo su construcción y control. La charla también cubre la implementación de interfaces, la realización de desafíos de juegos matemáticos y las capacidades de las pruebas de automatización. Aborda preguntas sobre diseño responsive, acoplamiento de cámaras y el futuro mapa de ruta. También se discute la asequibilidad de la configuración y el potencial para la automatización futura, junto con una sesión de preguntas y respuestas rápidas.
Available in English: Rise of the Robots

1. Introducción a la Cuestión de la Toma de Control por Parte de los Robots

Short description:

Hola a todos. Soy Theodor, un ingeniero de software y fundador de Proxima Analytics. Vamos a discutir si los robots tomarán el control basándose en las tres leyes de la robótica de Isaac Asimov.

Hola a todos. Espero que estén disfrutando de la conferencia hasta ahora. Bueno. Soy Theodor. Soy un ingeniero de software basado en Atenas, Grecia. También soy el fundador de Proxima Analytics. Es una plataforma de análisis ética de código abierto que definitivamente deberías revisar esto. Y también puedes encontrarme en línea a través de la palabra sin alianza. Entonces, si hay una pregunta que podemos hacer para 2023, va a ser ¿los robots realmente van a tomar el control? ¿Es decir, tu freeds te va a tomar como rehén, o vamos a perder nuestros trabajos como ingenieros de software? Y la verdad sea dicha, esta pregunta es, digamos, bastante antigua. Este es Isaac Asimov, uno de los autores de ciencia ficción más famosos. Y en uno de sus libros, que se llama iRobot, en 1953, creo, se le ocurrieron las tres leyes de la robótica. Entonces, básicamente, este es un manual para cuando los robots realmente vayan a tomar el control. Y hoy, vamos a desafiar esta pregunta, y vamos a intentar averiguar si esto es cierto o no.

2. Explorando Robots de Automatización para Pruebas

Short description:

En 2018, mientras trabajaba para una empresa, experimenté con diferentes aspectos de la ingeniería de software. Las pruebas de extremo a extremo en móviles son desafiantes debido a las aplicaciones aisladas y las interrupciones externas. Tuve la idea de construir un robot para automatizar pruebas en dispositivos reales. Hay tres categorías de robots de automatización basados en el movimiento: robots cartesianos, brazos robóticos y robots Delta.

Avancemos rápidamente, en 2018, estaba trabajando para una empresa. Y además de eso, también estaba tratando de experimentar con diferentes aspectos de la ingeniería de software, tratando de mezclar cosas como la impresión 3D, la electrónica, y demás.

Y estaba trabajando para una empresa donde teníamos tres productos principales. Como, el primero era una aplicación web y dos aplicaciones móviles, una para Android y otra para iOS. Y realmente puedo decirte esto. Las pruebas de extremo a extremo en móviles son bastante difíciles. Realmente lo son.

Entonces, si alguna vez has intentado realizar pruebas de extremo a extremo en aplicaciones móviles, básicamente estamos más o menos atascados con el emulador. Por otro lado, también necesitamos probar las aplicaciones móviles en dispositivos reales, ¿verdad? Pero es bastante complicado, en realidad. Por razones de security, la mayoría de las aplicaciones están aisladas. Eso significa que no podemos probar realmente cómo nuestras aplicaciones interactúan con el sistema operativo. No podemos probar el compartir enlaces entre aplicaciones. No podemos probar un flujo de trabajo en el que queremos autenticar a los usuarios utilizando el cliente de correo en el teléfono móvil.

Además, tenemos interrupciones externas como las llamadas telefónicas. Los teléfonos móviles son como organismos vivos. Así que tenemos llamadas telefónicas, notificaciones, notificaciones push, y así sucesivamente. Y entonces tuve esa extraña idea, como, ¿qué pasaría si pudiéramos intentar construir un robot para automatizar pruebas en dispositivos reales? ¿Y sabes qué? Sé que la mayoría de la gente pensaría en algo aterrador o grande como el Terminator o algo así. Pero la verdad sea dicha, podemos categorizar los robots de automatización en tres grandes categorías basadas en su movimiento.

Entonces, la primera categoría se llama robots cartesianos. Tenemos tres ejes. Y básicamente, el actuador se mueve en el espacio tridimensional usando pernos y ruedas. Las impresoras 3D y las máquinas CNC funcionan de esa manera, en ese formato, en realidad. Pero en nuestro caso, no funciona porque tienes un área limitada con la que trabajar. Y además, el movimiento no se siente tan natural.

A continuación, tenemos los brazos robóticos, que básicamente están hechos con motores separados y tres o cuatro partes adjuntas. Son un estándar innecesario para la industria del automóvil y las operaciones médicas también. Pero son bastante difíciles de operar. Y además, son bastante caros y se utilizan principalmente para tareas repetitivas. Así que nuestra elección para hoy se llama robots Delta. Tenemos una base en la parte superior, tres o cuatro motores adjuntos.

3. Construyendo el Robot con Tapster y Joni 5

Short description:

Tenemos pares de brazos conectados al actuador, que son fáciles de operar. El movimiento es rápido, eficiente y natural. Tapster, fundada por Jason Huggins, ofrece dispositivos de código abierto como Tapster Bot. Margaret es un dispositivo real construido basado en el diseño de Tapster. JavaScript es una gran opción para programar microcontroladores con frameworks como Device Script, Joni 5, Notebots y Esprino. Joni 5 actúa como un proxy para el microcontrolador Arduino nano, permitiendo que el robot ejecute comandos.

Y como puedes ver, tenemos pares de brazos que están conectados al actuador. Son bastante fáciles de operar. Básicamente, podemos usar trigonometría básica para calcular la posición y mover el robot. Y el movimiento es rápido, eficiente y realmente natural.

Pero, ¿cómo podemos construir realmente ese tipo de dispositivo, verdad? Afortunadamente para nosotros, existe una empresa llamada Tapster. Y fue fundada por Jason Huggins, quien también es uno de los creadores de Appium y Selenium. Y dos de sus dispositivos son de código abierto. Así que esto se llama Tapster Bot. Esta es la versión uno. Y basado en su design, realmente bifurqué todo el setup y el código. Y hoy, voy a presentarte un dispositivo real. Así que esta es Margaret, como puedes ver aquí. Muchas gracias. Por cierto, todo este setup se ejecuta dentro de mi navegador, así que esto es una transmisión en vivo aquí. Como puedes ver, tenemos brazos adjuntos aquí. La mayor parte de esta parte está usando pernos, tuercas, tornillos y partes impresas en 3D también.

El cerebro y corazón de este dispositivo es un pequeño microcontrolador. Pero podrías estar preguntando, ¿dónde diablos está JavaScript? Esta es una conferencia de JavaScript, ¿verdad? Así que, para ser honesto, JavaScript es una muy buena opción si quieres programar cosas en microcontroladores. Hay un montón de frameworks por ahí como Device Script, Joni 5, Notebots, Esprino, lo que sea. Y JavaScript es un lenguaje realmente bueno porque estamos manejando eventos de forma natural, callbacks también. Así que estas son las cosas que estás haciendo con un dispositivo como este. En nuestro caso, vamos a usar Joni 5.

El cerebro y corazón del robot es en realidad un microcontrolador Arduino nano. Así que Joni 5 funciona como un proxy. El dispositivo está conectado a mi estación de trabajo, y luego podemos ejecutar directamente un servidor de Node.js en el backend, y podemos enviar comandos que el robot los ejecuta. Así que esta es una clase básica que nos permite ejecutar un robot realmente básico. Primero tenemos que instanciar la placa Joni 5. El microcontrolador tiene pines etiquetados. Así que podemos decir que estamos ejecutando tres motores de servidor en los pines dos, tres y cuatro. Y luego, cuando la placa se instancia, podemos ejecutar la clase real.

4. Implementación de Interfaz y Control del Robot

Short description:

Y aquí está la implementación básica de la interfaz para tocar, mover, deslizar y reiniciar el dispositivo. Con un servidor Node.js en el backend, tenemos la flexibilidad para exponer APIs REST o web sockets. El robot puede ser controlado a través del eje x, y, y z, e incluso realizar movimientos de baile. La calibración es necesaria para determinar la posición del teléfono móvil, lograda a través de una interfaz web sencilla. Deslizar implica tocar la pantalla, arrastrar a un punto y soltar. La implementación incluye una interfaz de usuario tipo Tinder para seleccionar opciones. Con el servidor Node.js, tenemos varias opciones para controlar el robot.

Y aquí está la implementación muy básica de la interfaz para hacerlo. Tienes la función de inicialización, y luego algunas funciones auxiliares como tocar, mover, deslizar y reiniciar el dispositivo. Y te dije que esto es en vivo, ¿verdad? Así que, como tenemos un servidor Node.js en el backend, podemos hacer lo que queramos.

Así que aquí tengo... Podemos exponer APIs REST o incluso web sockets. Así que aquí, como puedes ver, puedo mover directamente el robot a través del eje x, y, y z también. O incluso puedo hacer que baile por un rato. El movimiento básico es más o menos enviar comandos y coordenadas, como ir al punto 0, 0, 0, y así sucesivamente. Déjame desenfocar este.

Así que si lo piensas, podemos mover el robot simplemente enviando las coordenadas dentro de un intervalo. Si estamos hablando de toques, como tocar el dispositivo real, eso es simplemente bajar el eje z a 0, como tocar el dispositivo real en la parte inferior del robot. Y aquí está la implementación básica para hacerlo. Pero hay una cosa aquí. Debido a que ese dispositivo no sabe exactamente dónde está el teléfono móvil, necesitamos realmente calibrar y hacer que el robot sea consciente de dónde está el teléfono móvil. Para hacerlo, he creado una interfaz web realmente sencilla. Así que podemos iniciar el proceso de calibración. El robot baja hasta el dispositivo, y cuando la pantalla táctil es tocada, envía un comando de vuelta para que podamos tomar puntos de referencia y averiguar dónde está todo en este momento.

Ahora hablemos de deslizamientos. Ahora que el robot está calibrado, deslizar es simplemente tocar la pantalla en el punto A, arrastrar hasta el punto B y soltar. Para hacerlo, he recreado la interfaz de usuario de Tinder, ya sabes, la de las tarjetas. Así que podemos empezar a elegir nuestra pareja para hoy. Genial. Déjame desenfocar este. Vale. Así que eso es todo lo que realmente necesitamos hacer. Así que tenemos toques, y tenemos deslizamientos. Como tenemos el servidor Node.js en el backend, podemos hacer lo que queramos. Podemos dirigir con la API REST. Podemos usar un web socket. Podemos usar también Opium.

5. Desafío del Juego Matemático Interactivo

Short description:

En este ejemplo, simplemente estamos instanciando el SDK de Opium JS y enviando comandos de vuelta al servidor web. Vamos a desafiar al robot real y tener un simple juego de matemáticas en el que puedes competir contra el robot por la oportunidad de ganar premios. El juego implica resolver ecuaciones lo más rápido posible. ¡Prepárate para jugar!

En este ejemplo, simplemente estamos instanciando el SDK de Opium JS, y luego enviamos comandos directamente de vuelta al servidor web. Así que todo está en su lugar, y podemos empezar a testing nuestra aplicación.

Pero sé que quieres la demostración completa, ¿verdad? Pero como te dije, hoy vamos a desafiar al robot real. Así que quiero que todos en esta sala o de forma remota tomen sus teléfonos. Eso es algo nuevo para una conferencia, ¿verdad? Así que vas a competir contra el robot.

Tenemos un juego realmente simple aquí. También tenemos dos grandes premios, ¿verdad? Si el robot gana, estamos condenados. Intenta encontrar el búnker. Intenta huir. Pero si alguno de ustedes gana, entonces hay un patrocinio de un año completo por parte de Egghead, como un año completo, así como una copia de Node.js design patterns de Luciano Mamino. Proporcioné este para un afortunado ganador. Y aquí está el juego.

Vas a competir con matemáticas contra el robot en vivo en esta sala. Así que puedes ir a dab.sh slash play. Tienes que entrar, simplemente elige un nombre de usuario para hacerlo. Por favor, por favor, gente, sean amables. Y una vez que todos se hayan registrado, podemos empezar a jugar. El juego es realmente simple. Tienes una ecuación, como una suma matemática. Tienes que elegir la respuesta correcta lo más rápido que puedas. El tiempo importa aquí. Vale. Solo voy a darte, como, diez segundos o algo así. El juego completo durará aproximadamente un minuto. ¿Todos listos? ¿Todos listos? ¿Estamos bien? Vale. Entonces, ¿estás listo? Solo un minuto. Y puedes empezar a jugar. Vale. Es difícil, ¿verdad? Vale. Casi allí.

6. Capacidades de Pruebas de Automatización y Conclusión

Short description:

Cinco. Cuatro. Y hemos terminado. Felicitaciones a Rahul, Mikhail, y al robot. Podemos probar enlaces profundos, compartir, flujos de autenticación, ejecutar el dispositivo 24-7 en diferentes dispositivos, probar notificaciones posteriores e interacciones con el sistema operativo. Podemos adjuntar una cámara para detectar lo que el robot toca o desliza, obtener métricas significativas, replicar escenarios de errores, someter a prueba de estrés la aplicación, y entrenar nuestros propios modelos de IA. Gracias por su tiempo y paciencia.

Cinco. Cuatro. Y hemos terminado. Manos en los teléfonos. Todos. Vale. Veamos cómo fue eso. ¿Están listos para los resultados? Sí. Hagámoslo. Chatterbox Coder, ¿hay alguien más? ¿No? Vale.

En la aplicación, podemos encontrar su ID que puede enviarme a través de un DM. Felicitaciones a Rahul, Mikhail, y al robot, de hecho. Pero realmente buen trabajo. De hecho, Chatterbox lo clavó.

Vale. Entonces. Esto es todo. Vamos a intentar y ver qué más podemos hacer con una configuración como esta. Entonces, ya que tenemos un sistema de automation completo, podemos probar enlaces profundos, compartir, como flujos de authentication, como te dije antes. Podemos ejecutar el dispositivo 24-7 en diferentes dispositivos, iPads basados en la base real que podemos Entonces, podemos escalar el robot hacia arriba y hacia abajo como queramos. Podemos probar notificaciones posteriores e interacciones con el sistema operativo.

Pero también hay más. Entonces, por ejemplo, podemos adjuntar una cámara y tener una transmisión en vivo para detectar lo que el robot toca o desliza. Podemos obtener métricas realmente significativas, como cuánto tiempo tarda nuestra aplicación en cargar. Esto es realmente interesante, porque podemos obtener métricas sobre el comportamiento del usuario o análisis. Y debido a que las coordenadas y el movimiento se basan en matrices de números a través del tiempo, podemos replicar efectivamente escenarios de errores o intentar pasar por flujos de trabajo. También podemos someter a prueba de estrés la aplicación, como tocar la pantalla con fuerza y así sucesivamente. Y finalmente, ya que los movimientos pueden describirse muy bien, podemos entrenar nuestros propios modelos de IA y podemos auto-generar rutas de usuario y flujos de trabajo para proporcionar automation testing también.

Entonces, eso es todo de mi parte ahora. Me gustaría agradecerles mucho por su tiempo y paciencia.

QnA

Preguntas y Pruebas

Short description:

Y espero que hayan disfrutado de la conferencia hasta ahora. Hablemos de algunas de estas preguntas. La siguiente pregunta se refiere a Axis y al diseño responsivo. Si es un dispositivo más grande, no es necesario actualizar la prueba porque podemos interactuar con la interfaz web y adaptarnos fácilmente a diferentes diseños. Tabletop Robotics ha creado una base que puede rotar e inclinar el dispositivo para probar el giroscopio. Las notificaciones push se pueden probar interactuando con una interfaz web y utilizando localizadores.

Y espero que hayan disfrutado de la conferencia hasta ahora. Aplaudámosle. Veamos las preguntas.

Antes de hacer las preguntas, tengo una confesión que hacer. También me siento realmente mal por esto. Soy Chatterbox Kodar, y me di cuenta a mitad de camino de que, oh, espera, si simplemente pasas rápidamente por las preguntas y te equivocas, aún así acelera la siguiente pregunta. Así que, simplemente estaba haciendo matemáticas con los dos primeros dígitos y llevando uno y viendo si funcionaba. Así que, creo que Rahul debería llevarse el premio. Así que, dondequiera que esté Rahul, levanta las manos. Aplaudámosle dondequiera que esté, y si está en casa, envíale un DM a Theodore.

Muy bien. Eso es bastante justo para ti, ¿verdad? Sí. Bueno, hablemos de algunas de estas preguntas. Así que, dejaremos la primera pregunta para el final, pero la siguiente pregunta que se refiere a Axis. Si es un dispositivo más grande con diseño responsivo... Empezaré de nuevo. Si es un dispositivo más grande con diseño responsivo, ¿necesitarás actualizar la prueba? Probablemente no, porque ya que estamos... Así que, en mi ejemplo, estoy interactuando con una interfaz web, por lo que puedes colocar localizadores e identificar las coordenadas, dónde está todo. Además, cuando el dispositivo se inicia, obtenemos información sobre el área de visualización, sobre la pantalla del dispositivo real por lo que es bastante fácil adaptarse a diferentes diseños también. Tabletop Robotics también ha creado una base que puede rotar el dispositivo y inclinarlo para identificar, para probar el giroscopio y cosas así. Así que no.

Ah, bien, gracias. Creo que es muy interesante cómo empiezas con algo realmente simple, te preguntas, oh, ¿puede hacer esto? Y añades las características. Es como un producto real que estás desarrollando. Eso es realmente genial. Muy bien. Voy a desplazarme hasta la siguiente pregunta. Pasaremos por algunas de las preguntas más atrevidas más tarde, no te preocupes, las guardaré para más tarde. Pero, ¿cómo pruebas las notificaciones push? ¿Podemos hacer que el robot sepa que se ha recibido una notificación push, etc? Claro. Así que, en este ejemplo, simplemente estoy interactuando con una interfaz web, colocando localizadores y así sucesivamente.

Adjunto de Cámara y Velocidad del Robot

Short description:

TabSir ofrece una forma única de adjuntar una cámara para la comparación de imágenes y la detección de notificaciones. La velocidad del robot depende del movimiento y la calibración precisa. JavaScript es una buena opción para IoT con microcontroladores y sensores. No se necesita software especial, lo que facilita la experimentación.

TabSir ha proporcionado realmente una forma en la que puedes adjuntar una cámara para identificar lo que está en la pantalla y también puedes usar un interruptor para transmitir los resultados. Así que puedes hacer una comparación de imágenes e identificar que hay una notificación emergente, o puedes, ya que esta es una interfaz web, obtener una devolución de llamada cuando la notificación push realmente surge. Eso es bastante genial. Eso es realmente impresionante también y es una forma tan única de usar la cámara. Tenemos otra pregunta, que es sobre la velocidad, y supongo que esto se aleja un poco del software hacia la robótica. ¿Cuál es el límite de velocidad y cómo afectaría esto a la duración de los pipelines de CI en comparación con una solución solo de software? Así que la velocidad depende del movimiento porque tienes que calibrar con precisión el movimiento. Por ejemplo, si quieres hacer toques concurrentes en diferentes lugares, tienes que mover el robot bastante rápido, pero el área de trabajo es demasiado pequeña. Así que creo que es bastante rápido. Hay videos allí de TabSir que están tocando la pantalla de manera agresiva muy rápidamente. También tienen una demostración sobre cómo jugar, ¿cómo se llama? ¿Tappy Bird? Sí. El que sube y baja. Sí, sube y baja. Así que es bastante rápido. Creo que eso también es realmente genial. El hecho de que pueda capturar esa imagen y aún moverse y ser básicamente más rápido que la mayoría de los humanos es bastante impresionante también. Otra cosa, tal vez si hay algunos desarrolladores de JavaScript que quieren entrar en IoT, claramente estás muy, muy metido en IoT.

JavaScript para IoT

Short description:

JavaScript es una buena opción para dispositivos IoT con sensores o botones. Jony5 funciona como un proxy, lo que facilita su uso. Esprit y Device Script son adecuados para aplicaciones independientes. Puedes experimentar con un simple clon de Arduino y LEDs sin necesidad de software especial. Puedes ejecutar diferentes ID dentro de tu navegador para actualizaciones en vivo.

Alguien preguntó si recomiendas usar JavaScript con IoT, ya que un dispositivo IoT tiene menos memoria y la mayoría de los desarrolladores prefieren usar programas en C++. Primero, hablemos de lo que prefieres, y luego demos algunos consejos para cualquiera que quiera iniciarse con JavaScript. Bueno, en realidad depende mucho. Si quieres desarrollar una aplicación IoT completa, sí, claro, C++ tiene mucho sentido. Por otro lado, JavaScript es realmente bastante bueno, porque básicamente, si tenemos un microcontrolador, es muy básico. Es solo una pequeña unidad de cálculo. Pero si empiezas a conectar sensores, o botones y demás, JavaScript es una muy buena opción. Jony5 funciona como un proxy, por lo que es bastante fácil de usar como una estación de trabajo. Si quieres desarrollar aplicaciones independientes, Esprit y Device Script son realmente adecuados para eso. Así que lo que funcione para ti, esa es la respuesta correcta. Pero si quieres experimentar, puedes gastar un par de dólares, conseguir un simple clon de Arduino, algunos LEDs, y es bastante sencillo hacerlo. La otra parte interesante es que no necesitas software especial para hacerlo. Así, por ejemplo, hay diferentes ID que puedes ejecutar dentro de tu navegador, y es bastante genial, porque tienes actualizaciones en vivo, en lugar de tener un paso de compilación y demás. Eso tiene sentido. Gracias, gracias.

Multi-touch, Mapa de ruta futuro y Sensores de cámara

Short description:

Hemos recibido preguntas sobre multi-touch, el mapa de ruta del producto futuro y la implementación de sensores de cámara. El método actual de entrada táctil implica el uso de un lápiz que puede ser conectado al microcontrolador. Características adicionales, como deslizar, se pueden lograr conectando varios lápices. Al implementar sensores de cámara, el enfoque depende del resultado deseado. Para aplicaciones móviles, los eventos por sí solos no pueden ser utilizados para afirmaciones. La comparación de imágenes y los localizadores son métodos alternativos. El juego jugado durante la demostración utilizó una interfaz web y comunicación WebSocket. La flexibilidad de usar tecnologías y APIs familiares hace que esta configuración sea accesible. El costo aproximado de la configuración es de alrededor de $40 a $50, dependiendo de la disponibilidad de una impresora 3D.

Tenemos un montón de preguntas diferentes que realmente son la misma cosa, que es sobre multi-touch. Así que, zoom, pellizco, y diferentes cosas. ¿Cuál es el mapa de ruta del producto futuro, supongo? Esa es la pregunta real.

Ahora mismo, para tocar la pantalla, tenemos un lápiz. Así que básicamente, es un lápiz para teléfono, el barato, como $1 o algo así, que está conectado a tierra al microcontrolador. Básicamente, puedes conectar lo que quieras. Si conectas un lápiz, eso es un trazador. Si conectas un hotend, eso es una impresora 3D. Así que, básicamente, puedes conectar un pequeño... Como dos dedos, como dos lápices para crear deslizamientos y así sucesivamente. Depende de tu imaginación y de lo que seas capaz de hacer.

Bien, bien. Tenemos otra pregunta, y muchas de estas son personas que ven que esto es genial, quieren usarlo, y tal vez hay algunas características extra que quieren. Creo que la siguiente es algo así, especialmente hablaste sobre el sensor de cámara. Y supongo que si construyes un sensor de cámara, esta persona está preguntando sobre cómo asegurarse de que la siguiente pantalla que ocurre después de una acción es lo que se espera. Y sé que hablaste sobre el hecho de que hay una cámara, el hecho de que puedes usar IA. ¿Cómo implementarías eso? Así que, básicamente, depende de lo que estés tratando de lograr. Si estás usando aplicaciones de teléfonos móviles y estás ejecutando la aplicación, no puedes simplemente enviar eventos para hacer tus afirmaciones. Aquí hay una pantalla. He deslizado. Aquí hay otra pantalla. La aplicación móvil acaba de levantar un evento, así que puedo afirmar que todo funciona como se esperaba. También puedes usar la comparación de imágenes para hacerlo. Puedes usar localizadores. Depende de ti cómo quieras manejar esto. Por ejemplo, para el juego que has jugado, esta es una interfaz web. Así que cada vez que tenía que hacer una acción, simplemente estaba enviando comandos de vuelta a la estación de trabajo usando WebSocket. Bien, bien, bien. Y me encanta el hecho de que esto es porque todas las tecnologías, nuestro JavaScript y cosas con las que estamos familiarizados, todas las otras APIs y todos los otros pedazos de conocimiento que tenemos están disponibles para nosotros para usar con él. Por cierto, solo quiero decir que el costo total de esta configuración es más o menos de 40 a 50 dólares basado en cómo, si eres capaz de, como, si tienes una impresora 3D, probablemente sea menos.

Asequibilidad, Automatización Futura y Rápida Respuesta

Short description:

Todos los componentes están ampliamente disponibles y son asequibles. El precio ronda los 40 a 50 dólares. Tapster ofrece una configuración utilizando un interruptor personalizado para controlar el teléfono utilizando la configuración de accessibility. En el futuro, la automatización de las actualizaciones de los casos de prueba puede depender de la configuración y la capacidad de identificar interacciones dinámicas. Es una situación de 'depende', así que no dudes en tener una charla con el orador. Ahora, pasemos a una ráfaga de respuestas de sí o no.

Pero todos los componentos están ampliamente disponibles. Como los motores servo son motores bastante comunes, de la vieja escuela para coches de control remoto. Así que sí, es bastante asequible si quieres hacerlo, si quieres construir algo así.

Oh, genial. Porque has anticipado mi siguiente pregunta. La siguiente pregunta era cuál es el precio. Sí, es más o menos 40 o 50 dólares. Lo interesante es que ahora tenemos más formas de hacerlo. Por ejemplo, Tapster, estaban trabajando en una configuración en la que han utilizado un interruptor personalizado que puede controlar el teléfono utilizando la configuración de accessibility. Así que están engañando al teléfono, haciéndole pensar que esto es un teclado y un ratón, por lo que puedes incluso ejecutar una configuración similar con un Arduino o una Raspberry Pi por mucho menos, creo que más o menos cinco dólares o así. Así que sí, definitivamente échales un vistazo.

Ahora eso es realmente, realmente impresionante. Y luego la última de las preguntas serias antes de llegar a las divertidas que sé que todo el mundo está esperando. Así que esta es sobre si la interfaz de usuario de la aplicación cambia cada vez que vas a necesitar actualizar tus casos de prueba y hacerlo todo bastante manualmente, supongo que en este momento. Quiero decir, ¿hay un futuro que imaginas donde podría ser más fácil automatizar los cambios en las pruebas? Creo que eso depende de la configuración que realmente tengas. Así como dije antes sobre el design responsive, si tú... Así que por ejemplo, si estás ejecutando pruebas en la interfaz web, como usando Cypress o Playwriter, puedes decir, hey, ve y haz clic en esta posición de la pantalla. Eso es bastante estático. Pero si de alguna manera tienes una forma dinámica de identificar las interacciones que quieres hacer, eso hace que todo el conjunto sea más flexible. Genial. Genial. Y una cosa que creo que es, y me gusta esta respuesta, todo depende. Y sinceramente, lo que diría es que después, ven a buscarlo y ten una charla. Supongo que te encantaría hablar de ello, considerando que has subido al escenario y has charlado sobre ello con todos nosotros. Así que gracias. Muchas gracias. Muy bien. Ahora lo que vamos a hacer es que vamos a saltar a una ráfaga de respuestas de sí o no para la siguiente pregunta. ¿Está bien? Sí, eso es justo.

Preguntas y Respuestas - Skynet, Captura de Robot, Código Fuente de Tinder

Short description:

¿Nos matará Skynet en 10 años? Sí. ¿Puede el robot resolver la captura de No soy un robot? Sí, es bastante asombroso. ¿Has usado el robot para Tinder? No. ¿Puedes compartir el código fuente para Tinder? Sí, es de código abierto en el repositorio de GitHub de Tapster.

Eso es justo. Vale. Eso es bastante emocionante. Muy bien. Así que empezaremos con la primera. Sí o no. ¿Nos matará Skynet? ¿En unos 10 años? ¿Sí o no? Sí. En 10 años. Genial. Bien.

Siguiente. ¿Puede resolver la captura de No soy un robot? De hecho, sí. Hemos probado esto y es bastante asombroso porque tienen el error allí. Así que para los dispositivos móviles es bastante fácil hacerlo. Justo. Es irónico, ¿verdad?

Muy bien. Siguiente. Sí o no. Sin explicaciones. ¿Has usado el robot para Tinder también? No. No. Vale. Bueno, supongo que la respuesta es obvia en la siguiente. ¿Puedes compartir el código fuente para usarlo en Tinder? Preguntando para un amigo. Guiño. Énfasis en el guiño. El código fuente es de hecho de código abierto. Está en el repositorio de GitHub de Tapster para Tapster uno y dos. Incluye todo lo que necesitas para construir como una lista de materiales, un código y así sucesivamente. Y también los diseños 3D a los que puedes ir a un espacio de creación y imprimir en 3D toda la configuración.

Programación de Robots y Conectividad

Short description:

No te preocupes, lo tienes cubierto. Si el robot hubiera ganado, ¿lo programarías para leer un libro de Node.js? La máquina está conectada a través de Wi-Fi, lo que permite exponer la configuración local al robot. Esta presentación fue increíble. ¡Muchas gracias!

Así que seas quien seas, no te preocupes, lo tienes cubierto. Solo necesitas hacer un poco de trabajo tú mismo.

Muy bien. Y la siguiente. Si el robot hubiera ganado, ¿lo habrías programado para leer un libro de Node.js? ¿Otra vez? Si el robot hubiera ganado, ¿lo programarías para leer el libro? No puedo responder a esta. Como sí. Esperemos que simplemente nunca gane y no tengas que enfrentarte al problema. Correcto.

Vale. Así que esto es sobre la realidad, la placa, la máquina. ¿Está conectada a través de Wi-Fi? ¿Cómo está conectada? Sí. Básicamente estoy conectado a través de, estoy en la red Wi-Fi y ambos están conectados a la misma Wi-Fi por lo que puedo exponer mi configuración local al robot, al teléfono móvil que está encendido. Eso es impresionante.

Y la última pregunta. No es una pregunta, pero es algo en lo que creo que todos estamos de acuerdo. Esta presentación fue increíble. Deberías seguir así. Queremos verte de nuevo. Dale un gran aplauso. Muchas gracias. Gracias. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Escalando con Remix y Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Escalando con Remix y Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Componentes de Full Stack
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Componentes de Full Stack
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Haciendo JavaScript en WebAssembly Rápido
JSNation Live 2021JSNation Live 2021
29 min
Haciendo JavaScript en WebAssembly Rápido
Top Content
WebAssembly enables optimizing JavaScript performance for different environments by deploying the JavaScript engine as a portable WebAssembly module. By making JavaScript on WebAssembly fast, instances can be created for each request, reducing latency and security risks. Initialization and runtime phases can be improved with tools like Wiser and snapshotting, resulting in faster startup times. Optimizing JavaScript performance in WebAssembly can be achieved through techniques like ahead-of-time compilation and inline caching. WebAssembly usage is growing outside the web, offering benefits like isolation and portability. Build sizes and snapshotting in WebAssembly depend on the application, and more information can be found on the Mozilla Hacks website and Bike Reliance site.

Workshops on related topic

Domina los Patrones de JavaScript
JSNation 2024JSNation 2024
145 min
Domina los Patrones de JavaScript
Top Content
Featured Workshop
Adrian Hajdin
Adrian Hajdin
Durante esta masterclass, los participantes revisarán los patrones esenciales de JavaScript que todo desarrollador debería conocer. A través de ejercicios prácticos, ejemplos del mundo real y discusiones interactivas, los asistentes profundizarán su comprensión de las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables. Al final de la masterclass, los participantes ganarán una nueva confianza en su capacidad para escribir código JavaScript de alta calidad que resista el paso del tiempo.
Puntos Cubiertos:
1. Introducción a los Patrones de JavaScript2. Patrones Fundamentales3. Patrones de Creación de Objetos4. Patrones de Comportamiento5. Patrones Arquitectónicos6. Ejercicios Prácticos y Estudios de Caso
Cómo Ayudará a los Desarrolladores:
- Obtener una comprensión profunda de los patrones de JavaScript y sus aplicaciones en escenarios del mundo real- Aprender las mejores prácticas para organizar el código, resolver desafíos comunes y diseñar arquitecturas escalables- Mejorar las habilidades de resolución de problemas y la legibilidad del código- Mejorar la colaboración y la comunicación dentro de los equipos de desarrollo- Acelerar el crecimiento de la carrera y las oportunidades de avance en la industria del software
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
React Day Berlin 2022React Day Berlin 2022
86 min
Uso de CodeMirror para construir un editor de JavaScript con Linting y AutoCompletado
Top Content
Workshop
Hussien Khayoon
Kahvi Patel
2 authors
Usar una biblioteca puede parecer fácil a primera vista, pero ¿cómo eliges la biblioteca correcta? ¿Cómo actualizas una existente? ¿Y cómo te abres camino a través de la documentación para encontrar lo que quieres?
En esta masterclass, discutiremos todos estos puntos finos mientras pasamos por un ejemplo general de construcción de un editor de código usando CodeMirror en React. Todo mientras compartimos algunas de las sutilezas que nuestro equipo aprendió sobre el uso de esta biblioteca y algunos problemas que encontramos.
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
Workshop
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
Monitoreo 101 para Desarrolladores de React
React Summit US 2023React Summit US 2023
107 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Nivel de la masterclass: Intermedio