El Ascenso de los Robots

Rate this content
Bookmark

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.

Theodore Vorillas
Theodore Vorillas
27 min
07 Dec, 2023

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

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

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
Do you have a large product built by many teams? Are you struggling to release often? Did your frontend turn into a massive unmaintainable monolith? If, like me, you’ve answered yes to any of those questions, this talk is for you! I’ll show you exactly how you can build a micro frontend architecture with Remix to solve those challenges.
Network Requests with Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Network Requests with Cypress
Top Content
Whether you're testing your UI or API, Cypress gives you all the tools needed to work with and manage network requests. This intermediate-level task demonstrates how to use the cy.request and cy.intercept commands to execute, spy on, and stub network requests while testing your application in the browser. Learn how the commands work as well as use cases for each, including best practices for testing and mocking your network requests.
Testing Pyramid Makes Little Sense, What We Can Use Instead
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
Gleb Bahmutov
Roman Sandler
2 authors
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
Remix is a web framework that gives you the simple mental model of a Multi-Page App (MPA) but the power and capabilities of a Single-Page App (SPA). One of the big challenges of SPAs is network management resulting in a great deal of indirection and buggy code. This is especially noticeable in application state which Remix completely eliminates, but it's also an issue in individual components that communicate with a single-purpose backend endpoint (like a combobox search for example).
In this talk, Kent will demonstrate how Remix enables you to build complex UI components that are connected to a backend in the simplest and most powerful way you've ever seen. Leaving you time to chill with your family or whatever else you do for fun.
Making JavaScript on WebAssembly Fast
JSNation Live 2021JSNation Live 2021
29 min
Making JavaScript on WebAssembly Fast
Top Content
JavaScript in the browser runs many times faster than it did two decades ago. And that happened because the browser vendors spent that time working on intensive performance optimizations in their JavaScript engines.Because of this optimization work, JavaScript is now running in many places besides the browser. But there are still some environments where the JS engines can’t apply those optimizations in the right way to make things fast.We’re working to solve this, beginning a whole new wave of JavaScript optimization work. We’re improving JavaScript performance for entirely different environments, where different rules apply. And this is possible because of WebAssembly. In this talk, I'll explain how this all works and what's coming next.
Debugging JS
React Summit 2023React Summit 2023
24 min
Debugging JS
Top Content
As developers, we spend much of our time debugging apps - often code we didn't even write. Sadly, few developers have ever been taught how to approach debugging - it's something most of us learn through painful experience.  The good news is you _can_ learn how to debug effectively, and there's several key techniques and tools you can use for debugging JS and React apps.

Workshops on related topic

Designing Effective Tests With React Testing Library
React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
Josh Justice
Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn
How to Start With Cypress
TestJS Summit 2022TestJS Summit 2022
146 min
How to Start With Cypress
Featured WorkshopFree
Filip Hric
Filip Hric
The web has evolved. Finally, testing has also. Cypress is a modern testing tool that answers the testing needs of modern web applications. It has been gaining a lot of traction in the last couple of years, gaining worldwide popularity. If you have been waiting to learn Cypress, wait no more! Filip Hric will guide you through the first steps on how to start using Cypress and set up a project on your own. The good news is, learning Cypress is incredibly easy. You'll write your first test in no time, and then you'll discover how to write a full end-to-end test for a modern web application. You'll learn the core concepts like retry-ability. Discover how to work and interact with your application and learn how to combine API and UI tests. Throughout this whole workshop, we will write code and do practical exercises. You will leave with a hands-on experience that you can translate to your own project.
Detox 101: How to write stable end-to-end tests for your React Native application
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
Using CodeMirror to Build a JavaScript Editor with Linting and AutoComplete
React Day Berlin 2022React Day Berlin 2022
86 min
Using CodeMirror to Build a JavaScript Editor with Linting and AutoComplete
Top Content
WorkshopFree
Hussien Khayoon
Kahvi Patel
2 authors
Using a library might seem easy at first glance, but how do you choose the right library? How do you upgrade an existing one? And how do you wade through the documentation to find what you want?
In this workshop, we’ll discuss all these finer points while going through a general example of building a code editor using CodeMirror in React. All while sharing some of the nuances our team learned about using this library and some problems we encountered.
API Testing with Postman Workshop
TestJS Summit 2023TestJS Summit 2023
48 min
API Testing with Postman Workshop
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
In the ever-evolving landscape of software development, ensuring the reliability and functionality of APIs has become paramount. "API Testing with Postman" is a comprehensive workshop designed to equip participants with the knowledge and skills needed to excel in API testing using Postman, a powerful tool widely adopted by professionals in the field. This workshop delves into the fundamentals of API testing, progresses to advanced testing techniques, and explores automation, performance testing, and multi-protocol support, providing attendees with a holistic understanding of API testing with Postman.
1. Welcome to Postman- Explaining the Postman User Interface (UI)2. Workspace and Collections Collaboration- Understanding Workspaces and their role in collaboration- Exploring the concept of Collections for organizing and executing API requests3. Introduction to API Testing- Covering the basics of API testing and its significance4. Variable Management- Managing environment, global, and collection variables- Utilizing scripting snippets for dynamic data5. Building Testing Workflows- Creating effective testing workflows for comprehensive testing- Utilizing the Collection Runner for test execution- Introduction to Postbot for automated testing6. Advanced Testing- Contract Testing for ensuring API contracts- Using Mock Servers for effective testing- Maximizing productivity with Collection/Workspace templates- Integration Testing and Regression Testing strategies7. Automation with Postman- Leveraging the Postman CLI for automation- Scheduled Runs for regular testing- Integrating Postman into CI/CD pipelines8. Performance Testing- Demonstrating performance testing capabilities (showing the desktop client)- Synchronizing tests with VS Code for streamlined development9. Exploring Advanced Features - Working with Multiple Protocols: GraphQL, gRPC, and more
Join us for this workshop to unlock the full potential of Postman for API testing, streamline your testing processes, and enhance the quality and reliability of your software. Whether you're a beginner or an experienced tester, this workshop will equip you with the skills needed to excel in API testing with Postman.
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
Gleb Bahmutov
Gleb Bahmutov
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.