Por qué testear online y qué tipo de herramientas de testing puedes usar

El entorno digital proporciona a los negocios una oportunidad muy conveniente para poder evaluar rápidamente ideas usando experimentos controlados. Se trata de realizar de experimentos usando método científico, observando el efecto de los cambios en el comportamiento o opinión de los usuarios que asignamos aleatoriamente entre distintas variaciones o combinaciones de los contenidos.

¿Por qué testear online?

A diferencia de otras metodologías, como el análisis post hoc o análisis de series temporales (quasi experimentación), los experimentos controlados evalúan las relaciones causa-efecto.

El experimento más simple consistiría en la asignación aleatoria de los usuarios que visitan una página entre dos variantes: (A) control, con la  versión original y (B) variación alternativa, la nueva versión que se evalúa contra la de control.

En la evaluación se usan métricas de rendimiento que se relacionan directamente o indirectamente con datos sobre el comportamiento y opinión del usuario. Los tests estadísticos evalúan la probabilidad de no encontrar evidencias de diferencias significativas entre los datos recopilados de la variación frente a la variación original. La utilización de métricas secundarias y la segmentación de usuarios de cada grupo, nos puede ayudar a entender los resultados y a refinar y a explorar nuevas ideas para futuros experimentos.

Los equipos web que tienen en cuenta el comportamiento y la opinión de los usuarios tienen más probabilidad de la realización de experimentos exitosos. Con un enfoque basado en datos podemos informar sobre los resultados subjetivos de nuestros experimentos e ir más allá de la opinión del experto o Highest Paid Person’s Opinion (HiPPO).

Cuando una empresa ya dispone de una herramienta de testing, el coste de realizar un test más es muy bajo. En este sentido, poner una herramienta de testing a disposición de tu equipo potenciará las capacidades de innovación de tu empresa y de optimización de los resultados de negocio.

Un test perdedor es siempre más interesante que un test concluyente. Encontrar variaciones alternativas de ideas que podrían ser perjudiciales permite analizar los resultados y refinar la idea para hacer que pueda funcionar.

«La mejor manera de tener una buena idea, es tener muchas ideas.»

Conceptos importantes en testing

Usamos el tipo de herramienta de testing que usemos, necesitamos tener claros los siguientes conceptos cuando realizamos tests:

  • Objetivo principal: Es la métrica principal o indicador clave de rendimiento con la que se evaluará la consecución de los objetivos del experimento. No debería estar basado en clics, debería dar un resultado o un «outcome».
  • Variable: Es el factor que se cree que influirá en el resultado del objetivo principal.
  • Variaciones: Son las distintas versiones de la variable, incluyendo la versión original.
  • Unidad experimental: Se refiere a la entidad con la que las métricas se calculan para cada una de las variantes. En la web, un usuario con su userId en una cookie del navegador suele ser la unidad experimental. Es importante que el usuario experimente una experiencia consistente a lo largo de todo el experimento dependiendo de a qué variación se asignó.
  • Hipótesis nula (H0): Considerar que las distintas variantes no producen diferencias en el objetivo principal más allá de diferencias aleatorias.
  • Nivel de confianza: La probabilidad de refutar la hipótesis nula cuando en realidad es cierta.
  • Poder estadístico: La probabilidad de detectar diferencia cuando realmente esta existe.
  • Test A/A: Ejercicio para evaluar el poder estadístico del método de asignación aleatoria entre dos variaciones iguales al a versión original.
  • Desviación estándar (Std-Dev): Es una medida que indica qué tan dispersos están los datos con respecto a la media.
  • Error estándar (Std-Err): Es la estimación de la desviación estándar, calculada a partir de una estimación derivada de una muestra.
  • Efecto: Es la diferencia del objetivo principal entre las variaciones. Es útil dar los intervalos de confianza para las diferencias entre las medias de las variaciones por qué da una idea de los rangos del efecto.

Tipos de herramientas de testing

Las herramientas de testing las podemos clasificar según su método de asignación aleatoria.

Toda herramienta de testing debe ejecutar un código para asignar aleatoriamente los usuarios en una variación o otra. Luego deberá ser posible manipular lo que sea necesario, desde el contenido hasta el propio funcionamiento de los módulos de la plataforma.

Cada método tiene sus características,  ventajas e inconvenientes.

Método «Client-side»

El método «Client-side» es el método más habitual en herramientas de testing.

El desarrollador pone una etiqueta javascript en la web.

Cuando el usuario visita la página, el navegador del usuario hace una petición a los servidores de la herramienta de testing para asignar al usuario a una variación, si no lo está, y obtener el código javascript de la variación que tiene asignada.

El código javascript de la variación se ejecuta y realiza los cambios en el momento de cargar la página.

Es un método intrusivo, pero es fácil de implementar.

Como desventaja, la asignación del usuario se realiza durante la carga de la propia página y eso puede ralentizar el sitio web.

No permite testear fácilmente esos sitios con implementaciones dinámicas complejas.

El usuario final se da cuenta fácilmente de que está siendo objeto de un estudio con la herramienta de testing.

El método «Client-side» se recomienda para experimentos de diseños y contenidos estáticos.

Ej: VWO, ConvertGoogle Optimize, AB tastyOptimizely X, Oracle Maxymiser, Monetate, etc.

Método «Server-side»

El método «Server-side» se refiere a la inclusión de código en la propia aplicación para poder producir experiencias distintas para usuarios asignados en una variación o en otra.

El código usará una API para determinar la asignación del usuario en aquellos puntos dónde la aplicación debería funcionar distinto para una variación o para otra.

Es un método intrusivo, y puede requerir cambios importantes en la aplicación.

Como ventaja, es posible testearlo todo en el punto donde sea necesario y de forma transparente al usuario.

La implementación inicial requiere esfuerzo de desarrollo y será compleja si la aplicación es compleja.

Cada test requiere de cambios de código por parte del equipo de desarrollo, lo que introduce un riesgo de afectar a partes de la aplicación no relacionadas con el propio test.

Los cambios definitivos requieren también programación para eliminar el código del test.

El método «Server-side» se recomienda para integrar la experimentación en tu «content management system» usando un modelo de datos para ello.

Una vez realizado un primer test, el coste de realizar el siguiente se reduce al mínimo.

Un experimento habitual es el de testear distintos bloques de contenido en distintas ubicaciones en una misma página.

Ej: VWO, AB TastyOptimizely X, Adobe Target, Google Content Experiments, etc.

Método «Reescritura de página» (Proxy)

El método de «reescritura de página» incorpora un proxy que modifica el HTML antes de devolverlo al usuario.

El usuario hace la petición al proxy, el proxy hace la petición al servidor para poder obtener la respuesta y modificarla antes de mandarla de vuelta al usuario incluyendo el cambio necesario.

Es un método no intrusivo ya que no necesita realizar cambios en la propia aplicación.

Como desventaja, se ve afectado el tiempo de carga del sitio web ya que es el proxy el que debe volver a hacer la petición al servidor y realizar el cambio en el HTML a la vuelta.

El servidor proxy debería ser capaz de gestionar todo el tráfico del sitio web, lo que requerirá uno o varios servidores con suficiente potencia.

Suele tener más riesgo de errores técnicos, ya que en vez de escribir el código directamente se escriben las reglas de reescritura del html.

No permite testear fácilmente la funcionalidad de módulos ya que la modificación se realiza sobre el HTML ya procesado.

El método de «Reescritura de página» se recomienda para minimizar el esfuerzo del equipo de desarrollo en tests de cambios de diseño o contenidos, pero no sería el más apropiado para testear funcionalidades, grandes cambios o migraciones.

Ej: SiteSpect, etc.

Método «Split test»

El método de «split test» consiste en la repartición del tráfico entre cada una de las variaciones del experimento alojadas en distintos servidores.

El sitio web usará un proxy para encargarse de de dirigir al usuario al servidor que tenga asignado.

Es un método no intrusivo ya que no necesita realizar cambios en la propia aplicación.

Como desventaja, para cada variación necesitas replicar la aplicación en un servidor distinto y puede no tener sentido en situaciones con muchas variaciones muy pequeñas y .

La infraestructura técnica suele ser cara y las diferencias de rendimiento pueden ser también causa de la diferencia en los resultados.

El método de «Split test» se recomienda para probar pilotos, migraciones o cambios de web muy importantes.

Ej: Google Cloud Engine, nginx, etc.

Conclusiones

¿Qué tipo de herramienta de testing es la más adecuada para ti?¿Qué requisitos debe tener tu herramienta de testing?¿Quieres hablar con nosotros? Podemos ayudarte a diseñar, desarrollar y a implementar la herramienta que necesites.

Deja una respuesta