Alpha's Manifesto

A black and white figure's thought-hive

Link del día: Notas sobre HTTP Load testing

Hace poquito encontré esta serie de notas que conformaron un artículo sobre HTTP Load Testing. El artículo trata distintos puntos relativos a cómo se ve afectada la calidad del testing, a la vez de distintas técnicas para tener (o para evitar) de forma que los resultados del testing sean lo suficientemente confiables como para significar algo.

Por otro lado, siempre están esos consejos de la experiencia que podemos leer ahí también, y que si bien no tienen mucho sentido en un principio, tras haber hecho caso podemos ver la razón real de por qué se nos aconsejaba eso.

El artículo está muy interesante, incluso si están pensando en aplicarlo a load testing que no necesariamente sea HTTP, yo creo que aplicaría a cualquier tipo de testing cliente-servidor, y también varios de estos conceptos serían útiles para load testing de cualquier tipo de aplicación.

Soy un zorrinito cargado.

Link del día: AngularJS

Hace poquito apareció en mi feed de Youtube una charla de Google Tech Talks llamada How to Write Clean and Testable Code. Para ser sinceros, el video dura más de una hora así que no lo ví, pero en lugar de eso busqué las diapositivas que se habían usado en él y las encontré aquí: How to write Clean and Testable Code Slides. Las diapositivas no me resultaron demasiado reveladoras tampoco pero sí resaltan algunos conceptos claves que es bueno siempre tener en mente.

Más allá de eso, en las diapositivas (y muy seguramente en la charla) se menciona a AngularJS, así que lo fui a buscar. Parece que AngularJS es un sistema de templating a través de JavaScript, pero mucho mayor que simplemente templating. Digamos que más que estar orientado en generar HTML a partir de datos, también se preocupa de la forma en que esos datos deben interactuar, de forma que, podríamos decir, también genera algo de código dinámicamente para que estos datos funcionen correctamente.

No lo he probado, pero ellos dicen que es la forma en la que debería haber sido HTML si es que hubiera sido pensado desde un principio para aplicaciones web.

¿Alguien lo probó? ¿Cuáles son sus experiencias?

Soy un zorrinito javascript.

Link of the day: Mouse trace your visitors

We’ve already presented some tools ([1], [2], [3]) that allows you to easily have some feedback of what the users do at your site or web application, or how do you need to improve it to make it better for their user experience.

So, here is another tool that will help us measure that bit of the user that’s not so easy to see: MouseTrace is a tool that being installed on our website will track exactly what the user does with it’s mouse. Even if they don’t click, it is a good idea to keep track of it so that we can find out if our layout is somehow confusing the users.

I haven’t tried this myself. Have you? Are you going to? Please share your experiences.

I’m a tracked little skunk.

Link del día: Qué recuerdan los usuarios de tu sitio?

Tanto para probar un diseño o como para probar un website o aplicación web, ya hemos hablado de varios sistemas que nos permiten evaluar qué tan eficiente es nuestro diseño (recuerdan el link de Usabilia?). Hoy tenemos dos más muy similares, basados en la prueba de los cincos segundos.

Al usuario que va a efectuar la prueba, se le muestra un screenshot de nuestro website o nuestro diseño, y luego de eso él tiene que escribir las 5 primeras cosas que recuerde haber visto. Por supuesto, nos permitirá identificar fácilmente así qué elementos son los que realmente llaman la atención del visitante al primer momento. Y sabemos que si ganamos la atención en ese primer momento, hemos tenido éxito.

Por un lado tenemos a FiveSecondTest, en sus versiones paga y gratuita. Esta aplicación es de la gente de UsabilityHub, que ya tienen una serie de productos para la medición de la usabilidad de aplicaciones web, incluyendo también a NavFlow y a ClickTest.

Por otro lado está Clue, un servicio gratuito muy similar, en donde solo podremos probar aplicaciones web.

Soy un zorrinito probado.

Link del día: ¿Qué es el A/B Testing?

Quizá para muchos sea un concepto totalmente básico y muy simple de comprender, pero para aquellos que no lo tenemos tan asimilado, seguramente no estemos apreciando el importantísimo concepto que representa.

A/B Testing es una forma de probar las aproximacinoes de marketing de forma de poder tomar una decisión correcta con la aproximación final que va a hacerse al público en general. Muchas empresas grandes la utilizan para tomar decisiones, y se trata básicamente de probar distintas posibilidades, seleccionando siempre la que mejor resultados haya dado.

Adrián Paenza contaba en uno de sus libros una forma de ganar inversores. Decía que de una lista de emails de 130 personas les envíaba a 64 un mensaje que decía “mañana el dolar subirá su precio”, y a otras 64 “mañana el dólar bajará su precio”. (Eso suma 128, dejemos a 2 de lado.) Con 64 se habrá equivocado, con las otras no. Entre las que acertó, volvería a enviar un mail al día siguiente, haciendo lo mismo, pero dividiéndolas en 32 y en 32. Lo mismo al día siguiente: 16 y 16. Llegado a este punto ya existen 16 personas que durante 3 días consecutivos vieron como él acertó la varianza del dólar. Estas personas ya están muy seguras de que Adrián sabe lo que hace en sus finanzas, y muy seguramente, aceptarían un negocio con él.

Esa forma de aprovechar el A/B testing es muy similar a como se hace en la realidad, identificando qué formas de mensajes o de campañas publicitarias tiene mejor efecto.

Jeff Atwood hace una reseña de la película Atrapado en el Tiempo, una película en donde el personaje está condenado a repetir el mismo día siempre. Tras ir intentando distintas combinaciones de su día, él llega a lograr el día perfecto. Él lo considera deshonesto, y lo relaciona con otra técnica de marketing llamada Ghetto testing, porque el resultado que llega al usuario final está “pensado y probado” para que realmente le guste. ¿Es realmente deshonesto, o es perfectamente válido?

A/B Testing tiene algunas alternativas. Una de ellas es llamada A/B/N testing, en donde se utilizan varias iteraciones. Otra es A/B/A testing, en donde se repite la primer prueba para verificar que los resultados fueran realmente consistentes y no mera casualidad, etc.

Para más información, pueden visitar los artículos de Wikipedia sobre Choice Modelling, Adaptive Control, y Multivariate Testing.

Como extra, debo aclarar que la reseña de Atrapado en el Tiempo es impecable.

Soy un zorrinito testeado.

UPDATE 28/7/2010: Marc Von Brockdorff escribió un artículo sobre la medición de la validez estadística de un test A/B: AB testing Statistical Significance. Por otro lado, me encontré en WebDesignerDepot una muy buena guía llamada A Complete Guide to A/B Testing.

Link del día: Máquinas virtuales en la web

Hace pocas horas Peteris Krumins (@pkrumins) anunció que en poco tiempo estará saliendo al público su nuevo proyecto con James Halliday.

Dicho proyecto, llamado StackVM, tiene como propósito poder insertar máquinas virtuales en páginas web, darles conectividad entre ellas con simple pasos como drag & drop, y la cantidad de usos que esto podría tener son miles.

Entre los ejemplos que él menciona en su anuncio, están la posibilidad de dar una demo “live” de un software (que podría incluir por detrás todo el entorno necesario para mostrarlo, incluyendo servidores de bases de datos, incluyendo routers, etc). Podría demostrar online (sí, en la misma página web) el funcionamiento de un software cliente servidor, de un software firewall, o cosas que por lo general son muy complejas de demostrar.

Otro de los ejemplos es la enseñanza, testeos de seguridad, o la posibilidad de que los estudiantes realmente interaccionen con entornos virtuales sin otra necesidad que un navegador.

Otro de los ejemplos es el testeo de aplicaciones. Imaginen probar su software en un entorno Linux, un Mac OS, un Windows en distintas versiones, sin más que un navegador.

Actualmente están de a poco liberando muestras para distinta gente, solo tienen que apuntarse para ser tenidos en cuenta si es que lo quieren probar.

Soy un zorrinito virtual.

Link of the day: Writing Testable Code

I’ve been looking into some documentation on how testable code should be written. They all say pretty much the same, but I found this article by Isa Goksu which is quite extensive on some particular points, and also provides a good linking to other related articles. He mentions concepts that are closely related to testing and test-driven development, like The Simplest Thing that Could Possibly Work, or Law of Demeter (which is a good design pattern too), some not-as-spread-as-they-should-be Principles of Object Oriented Design, and so on.

Remember we also have Google Testing blog where sometimes guidelines about testing and good testable code is engineered.

Hope it’s a testable Friday for you!

I’m a testable little skunk.

Link del día: IE9, bien encaminado

Llamó mi atención un artículo en SixRevisions llamado Five Things IE9 is (Actually) Doing Right, y me sorprendió leer que este navegador está tomando un rumbo muy interesante. Más allá de personalmente creer que no llega al nivel de usabilidad que logran otros navegadores (aunque es una opinión personal), realmente está dando un giro refrescante.

Entre las cosas que menciona el artículo (sobre las cuales no me extenderé) quiero resaltar el hecho de soportar los nuevos estándares, cosa sin precedentes, tener una performance realmente increíble, la integración de herramientas de depuración (developer tools) y como extra, la transparencia de los desarrolladores.

Uno de los puntos mencionados allí es el hecho que Microsoft nos permita dar un vistazo a la plataforma de IE9 para probarla, cosa que podemos hacer desde IE9 TestDrive, una experiencia sorprendente, en lo especial para mí. No he hecho mucho más que ejecutar varias de las pruebas en IE9 y en comparación con otros navegadores (Chrome, Firefox) y realmente la forma en la que IE9 está trabajando parece ser la mejor.

Por supuesto, lo que tenemos disponible hoy por hoy es solamente la plataforma de renderizado de IE9. ¿Qué pasará cuando se anexen todas las posibilidades que el navegador nos brinda? ¿Mantendrá su performance y su estabilidad? El tiempo nos responderá.

Soy un zorrinito beta.

Link del día: consejitos de jQuery para pr0s

Ayer Xyborg compartió un link llamado jQuery and general Javascript Tips to improve your code. No sólo me encantaron los consejos que ahí aparecían, sino que me encontré con que dicho artículo tiene una secuela, llamada More jQuery and General Javascript Tips to improve your code.

Ambos artículos son muy detallados y concisos, con un montón de items interesantes que se pueden utilizar a modo de check-list para tunear finamente el código que hayamos hecho en jQuery. Algunos consejos probablemente no los vayamos a utilizar en el momento, pero sabiéndolos, en el futuro podremos mejorar un poco nuestras prácticas. Por ejemplo, quizá no usemos la consola o no usemos el almacenamiento de datos en los objetos, pero conociendo eso, a futuro podríamos hacer las cosas de forma más simple.

Otros consejos los podemos aplicar siempre: utilizar siempre IDs en lo posible para las búsquedas (o anteponer un ID en la búsqueda de clases), otros están apuntados a la performance, a la elegancia de código o a la reutilización del mismo, otros son snippets que podemos reutilizar para nuestras necesidades y otros son consejos para proyectos que pueden volverse demasiado grandes para verificar fácilmente.

Quien trabaje con jQuery no tiene excusa para no conocer lo bueno de estos consejos.

Soy un zorrrinito JavaScript.

Link del día: Testeo de usabilidad

Muchas veces la usabilidad de un sistema es un requerimiento tan primordial como el funcionamiento en sí, y más en un mundo como puede ser el mundo web, en donde tenemos miles de competidores para servicios similares que podemos estar ofreciendo online. Quien publica primero tiene la ventaja, pero quien hace el servicio lo más fácil de usar y de forma más cómoda e intuitiva es quien logra hacer la diferencia.

El problema es, cómo probar este tipo de cosas? Muchas veces se usan equipos de testing que no tengan conocimiento alguno de la herramienta; muchas veces también se utiliza gente que no está relacionada con el proyecto para nada, o incluso se terceriza este tipo de testeo. Otro problema es que, dado que estos testeos de usabilidad se basan en tratar de ver qué cosas son fáciles y cuáles no, cuáles son intuitivas y cuáles no… cómo obtener resultados homogéneos para cada persona que lo haya probado? Y un tercer problema es: cómo ver fácilmente los resultados en nuestra aplicación?

Usabilla es una aplicación web que quiere encargarse de esto. Tras registrarnos (con sus planes gratuitos o pagos), podemos crear pruebas de usabilidad contra sitios / aplicaciones web, imágenes o diseños. Las pruebas las generaremos en forma de consignas que le pediremos al usuario que realice sobre ese algo que queremos testear. Por ejemplo: “En dónde haría click para registrarse?” o “Qué elementos le llaman la atención de esta página?”

Tras probar con muchos usuarios, podemos visualizar nuestros resultados de forma gráfica, o en la misma página.

Recuerden que como competidor de este servicio alguna vez hablamos de Loop11, que parecía tener la ventaja de permitir la navegación a través de las pruebas, y de esa forma evaluar la navegabilidad de un sitio. No sé si Usabilla lo permita, aunque por lo que ví en las demos parecería que no.

Soy un zorrinito usable.