Hace un par de años, me embarqué en la búsqueda de formas para potenciar mis habilidades en pruebas de software. Fue en un hilo de Twitter (ahora X) donde me topé con una discusión sobre las diferencias entre stub y mock. En medio de esta conversación, alguien recomendó el libro «Unit Testing Principles, Practices, and Patterns» de Vladimir Khorikov. Después de haber adquirido el libro hace algún tiempo, finalmente encontré el momento oportuno para sumergirme en sus páginas y, en este artículo, compartiré mis impresiones al respecto.

Portada del libro Unit Testing Principles, Practices, and Patterns de Vladimir Khorikov
Portada del libro, si deseas comprarlo haz clic en él para mas información

Contenido de Unit Testing Principles, Practices, and Patterns

En mi opinión, el libro abarca todo lo necesario para aprender a aplicar pruebas a cualquier software que desarrolles. Desde las razones fundamentales para realizar pruebas hasta conceptos como unit testing, mocks, test doubles, integration testing, end to end tests, entre otros. Además, finaliza con una sección muy interesante sobre anti-patrones, la cual nos brinda valiosas enseñanzas para mejorar nuestras prácticas de codificación y hacer que el código sea más accesible de probar.

Cada sección comienza con la presentación del concepto, seguido de su aplicación en el ámbito profesional. Posteriormente, se ofrece una serie de ejemplos de código que abarcan tanto el método o sección de código a probar como el código de las pruebas correspondientes. Este enfoque estructurado garantiza una comprensión completa y práctica de los temas tratados.

Es importante destacar que si bien los ejemplos de código están escritos en Java, su estructura y lógica son fácilmente transferibles a otros lenguajes de programación como PHP o C++. Cualquier profesional, independientemente de su preferencia de lenguaje de programación podrá leer los ejemplos sin problemas.

Además, el texto cuenta con secciones que contienen notas sobre consideraciones importantes a tener en cuenta, así como experiencias personales del autor frente a diversas situaciones. Esta combinación de teoría, ejemplos prácticos y reflexiones personales enriquece la experiencia de aprendizaje y ofrece una perspectiva más completa sobre el proceso de pruebas de software.

¿Debería leerlo?

Este libro es verdaderamente accesible para personas de todos los niveles de experiencia. Ya seas un principiante absoluto o un profesional experimentado en el campo de las pruebas de software, encontrarás que Unit Testing Principles, Practices, and Patterns ofrece valiosos conocimientos y perspectivas. En definitiva, si deseas adentrarte en el mundo del testing o mejorar tus habilidades existentes, este libro es para ti.

La entrada Unit Testing Principles, Practices, and Patterns: libro para iniciarte en el testing se publicó primero en El blog de Skatox.

El pasado 29 de Junio tuve la oportunidad de ser parte de los ponentes del JConf Dominicana. Un evento realizado por la comunidad local de Java en la PUCCM. El evento estuvo formado por ponentes de distintas partes del mundo para comentar sobre las últimas tendencias en la JVM.

La estructura del evento me gustó porque en la mañana se hicieron las principales ponencias por parte de los conferencistas mas importantes en el teatro de la universidad. En la tarde, se hacían el resto de presentaciones en aulas de clase donde los asistentes podían escoger a cuales ir. Me gustó la organización porque estos temas tenían diferente dificultad y áreas, así que podías asistir a las charlas de tu perfil profesional sin problemas de choque.

Sesión matutina

Para llegar a Dominicana tuve que tomar varios vuelos con horarios incómodos. Por esta razón, tuve que dormir el día antes del evento y me levanté un poco tarde. Me perdí la apertura y la primera charla. Pero pude entrar al final de la de Sebastían Daschner sobre los mejores frameworks empresariales de JAVA. Posteriormente fui a la de Mark Heckler sobre plataformas escalables con spring. Excelente ponencia con buenos chistes en español. Finalmente se hizo un panel de conferencistas para discutir los temas actuales de la plataforma Java y del futuro de la misma. Excelente opiniones y temas tratados allí.

Sesión de la tarde

La primera conferencia que entre fue la de Eliezer Herrera sobre plataformas como Graal, Gradle y Vertx que permiten la ejecución de otros lenguajes en la JVM. Muy interesante y no conocía que se podían hacer ese tipo de cosas. De ahí fui a la charla de Carlos Paulino sobre desarrollo continuo para plataformas Android. Me llamó la atención porque trabaja en American Express y quería conocer como es el proceso de desarrollo de una aplicación móvil en ese tipo de empresas. Me llamó al atención el cuidado hacia la calidad y cómo las pruebas se realizan en distintas plataformas.

Luego de un receso para unas golosinas, comenzó la charla de Omar Berroterán Silva sobre GraphQL. La tecnología para obtener fácilmente datos a través de una API. Esta ponencia abarcó desde la introducción hasta dar ejemplos de como consultar datos, instalar esta herramienta, entre otros. Me gustó como Omar utilizó códigos QR en sus láminas para que los asistentes pudiésemos ver los ejemplos en el móvil y participar en la charla.

Java de nuevo a la web con WebAssembly

Mi charla en este evento la estaba dando por primera vez. Aunque había hablado de WebAssembly, nunca la había mezclado con Java. En ella pude hablar sobre una pequeña introducción a esta plataforma. Las diferencias respecto a los Applets de Java (pues tiende a confundir inicialmente a los programadores de Java). Por qué no iba a tener el mismo destino que los applets.

En el caso de Java, esta charla me gustó darla porque existen actualmente varias formas de llevar el lenguaje. Cada una trabaja de forma distinta y pude mostrar las bondades de cada forma.

La presencia fue excelente, hicieron preguntas muy interesantes y de ahí salí al cierre del evento con música dominicana.

Cena del JConf Dominicana

La cena fue excelente, tuve la oportunidad de compartir con otros ponentes. Conocí mas de la cultura Dominicana. Pude probar sus excelentes platos típicos como el mangú y mofongo. Disfrutar de un buen ambiente caribeño y discutir de tecnología.

Fue una gran experiencia participar en el JConf Dominicana. A pesar de estar solo 2 días en el evento. Me llamó la atención como la mayoría de los ponentes internacionales hablaba español. Los temas fueron muy interesantes. Los organizadores hicieron un excelente trabajo.

¡Lo disfruté mucho! Espero volver algún día.

La entrada Mi experiencia en el JConf Dominicana se publicó primero en El blog de Skatox.

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } Antes que nada, para quienes no sepan que es Elluminate:

¿Que es Elluminate Live!?

Elluminate Live™ es la solución ideal desarrollado en Java para aprendizajes, capacitaciones, adiestramientos, tutorías y reuniones. Elluminate Live™ ahorra tiempo y dinero al suprimir viajes innecesarios, sin dejar de mantener la eficacia de una reunión cara a cara. Elluminate Live™ permite impartir enseñanza en línea, capacitación, adiestramiento, tutoría y reuniones en vivo – ¡en equipos Mac o PC! El proceso de aprendizaje se acelera a medida que los participantes se interconectan a través de la mejor tecnología de Voz sobre IP que hay en el mercado (comunicación completa en audio en 2 direcciones, ¡con ancho de banda a baja velocidad!), charlas, pizarra virtual interactiva, y video. Puede incluso compartir aplicaciones en una sola interfaz gráfica. Bien sea que el aula virtual se encuentre alojada por Elluminate, los fabricantes del software, o instalada en su servidor, es fácil de instalar, fácil de usar y personalizada de manera que usted puede incorporar su propio software didáctico.

Cabe destacar que hay un modulo para incorporar Elluminate Live en Moodle.

Caracteristicas

  • Voz sobre IP de calidad superior – ¡puede servir con un módem de 28.8 Kbps de velocidad.

  • Pizarra virtual interactiva compartida – ¡importa o crea presentaciones!

  • Aplicaciones compartidas – ¡control remoto de la computadora de escritorio!

  • Direct Messaging™ – ¡mensajes privados o públicos!

  • AppSnap™ – ¡capta imágenes o instantáneas de pantallas!

  • Web Tour – ¡recorre sitios Web con los participantes!

  • Cámara Web y de video – ¡cámara Web y de video a baja velocidad!

  • Grabación y reproducción – ¡guarda sesiones como objetos de aprendizaje!

  • Control completo por parte del instructor – gestión y sondeo de avance.

  • Compatible con el sistema operativo Mac – ¡acceso sin problemas para

    todos los usuarios!

Para poder iniciarlo, solo debemos instalar el paquete sun-java6-plugin y todas sus dependencias. En el caso de Debian o Ubuntu seria con el comando:

#aptitude install sun-java6-plugin



Interfaz de Elluminate Live!




Luego de instalado el plugin java, la forma de iniciarlo desde el navegador es como se presenta en el video: