Developing Frogtek

El blog del Departamento de Tecnología

Categoría: testing

Seleccionando: un día de convivencia con un candidato con kata incluida

Kata en Frogtek

Si nos sigues un poquito seguro que te habrás enterado, buscamos candidatos, ingenieros de software. Detrás de un producto como Tiendatek hay muchas personas trabajando, un equipo que fluctúa y se adapta a las nuevas necesidades, algunos se han ido, otros hemos llegado, incluso algunos se van, aprenden y mejoran buscando nuevas aventuras, y vuelven con fuerzas renovadas. Nos sentimos orgullosos del equipo que formamos, y una parte importante para construir el equipo es el proceso de selección.

Si las personas sólo fuéramos recursos, números o conocimientos, la selección de personal sería muy fácil, seguramente sólo se necesitara una prueba que garantizara que en el CV no se ha mentido. Pero afortunadamente para todos, menos para RRHH, supongo, somos mucho más que números y conocimientos. Somos unos cacharros normalmente con brazos y piernas que tienen sentimientos, que tienen aficiones y afinidades. Y es que cinco personas bien avenidas garantizan mejor trabajo y durabilidad que cinco personas malavenidas.

Por eso nos gusta ofrecer a los candidatos que entrevistamos, y vemos que pueden encajar en el puesto, un día de convivencia en la oficina de Frogtek. Es un día especial. Ahora ya he vivido esa experiencia desde los dos bandos, y desde ambos dos se ve muy enriquecedora. Desde uno de los lados se ve con bastantes nervios e inquietud; acabas con la cabeza llena de demasiada información y, en mi caso, vuelves a casa con un buen dolor de cabeza. Desde el otro lado lo esperas con impaciencia, intentas enseñar y hacer que la otra persona se sienta cómoda, y al final siempre aprendes algo nuevo de la persona que ha venido.
Seguir leyendo

BDD en Google App Engine con Lettuce y Splinter (I)

Hemos de reconocerlo: tenemos mucho que aprender en lo que se refiere a programación de pruebas automáticas en la web. Hace ya bastante tiempo que veníamos usando Selenium , primero grabando las pruebas con su IDE, más tarde programándolas con Web Driver. Pero los tests resultantes eran frágiles y aburridos de programar, por lo que sentíamos bastante envidia de los developers Ruby con su flamante Cucumber y sus elegantes tests BDD.

Decidimos remediarlo y Julio se puso con la instalación de  Cucumber + Capybara en el servidor, creando un test de demo y animándonos a montar el entorno en nuestras máquinas para comenzar a darle poquito a poco. Teníamos que aprender Ruby y conocer cómo funcionan sus versiones y conceptos nuevos como RubyGems, por lo que la cosa iba a ser divertida pero no rápida y por ello se nos ocurrió darle una oportunidad a una herramienta que nos sonaba de oídas: Lettuce, combinándola con otra herramienta bastante nueva: Splinter, de manera que, en lugar de pepinos y capibaras:
Siempre es verano con el pepino en la mano

tendremos lechugas y poder mutante. ¡Cowabunga!

Lettuce permite definir test de aceptación automáticos para proyectos Python, y Splinter proporciona un API sencilla y potente para implementar los pasos de los tests usando diferentes webDrivers.

De momento parece que aún falta que ambos proyectos mejoren un poco ya que son relativamente recientes. En el caso de Splinter, si no llega a darnos todo el potencial que necesitamos, siempre podemos sustituirlo por twill, selenium, webdriver o windmill.

¿Por qué usar estas herramientas quizás no tan maduras como sus homólogas del mundo Ruby? Una razón discutible – aprender un nuevo lenguaje siempre es divertido y enriquecedor – es que no nos obliga a aprender Ruby y nos permite definir los pasos en Python con el que estamos mucho más cómodos. Pero la ventaja principal es que tenemos una librería Python usada en nuestros tests de integración para crear diferentes escenarios de test en GAE y esta solución nos permite aprovechar todo su potencial instantáneamente. Bueno, eso si conseguimos instalar correctamente todo lo necesario para rular estas herramientas con GAE.

En Frogtek ninguno tenemos experiencia con Django más allá de su integración con Google App Engine, por lo que seguramente nos falte algo de familiaridad con ciertos conceptos que no aplican dentro de la plataforma de Google. Es quizás por esto por lo que nos encontramos con bastantes problemas de instalación y configuración que nos gustaría compartir con todos aquí. Eso será en el próximo post.