Agradecimientos
1. Introducción
1.1 Motivación
1.2 Objetivo
1.3 Organización de la tesina
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
Capítulo 6
Capítulo 7
Capítulo 8
2. Marco teórico y trabajos relacionados
2.1 Background
Usabilidad
Utilidad
Accesibilidad
Refactoring
Web refactoring
Scripts de usuario, manejador de scripts y extensiones al navegador web
Crowdsourcing
A/B testing
2.2 Otros trabajos relacionados
2.2.1 Mejoras a aplicaciones web a través de la comunidad de usuarios
Social Accessibility: Achieving Accessibility through Collaborative Metadata
Authoring
Social4all: Definition of specific adaptations in Web applications to improve
accessibility
2.2.2 Manejo de comunidades de crowdsourcing
Reputation Management in Crowdsourcing Systems
Incentives and Rewarding in Social Computing
2.2.3 Crowdsourcing para el testeo de aplicaciones web
A novel approach to collaborative testing in a crowdsourcing environment
3. Diseño arquitectural
3.1 Arquitectura básica de la solución
3.2 Definiciones tecnológicas
3.3 Entidades y funcionalidades
3.3.1 Usuario
3.3.2 Problema
3.3.3 Proceso de evaluación
3.3.4 Solución
3.4 Detalle de las funcionalidades principales
3.4.1 Asociación y desasociación de problemas
3.4.2 Inyección de soluciones
3.4.3 Votar solución
3.4.4 Votar para iniciar un nuevo proceso de evaluación
4. A/B testing
4.1 Arquitectura básica de un sistema de experimentación de A/B Test
4.1.1 El algoritmo de aleatorización
Cached pseudorandom
Hash and partition
4.1.2 El método de asignación
División de tráfico
Reescritura de página
Asignación del lado del cliente
Asignación del lado del servidor
4.1.3 El camino de los datos
Captura
Usar un mecanismo de captura de métricas existente:
Registro en archivos de logs locales:
Empleo de un servicio especializado: 5
Análisis
4.2 Nuestro proceso de evaluación.
4.2.1 Nuestro proceso de evaluación como un proceso continuo de A/B Test
Objetivos, problemas y oportunidades de mejora
Experimentos y variantes
Población y muestra
4.2.2 Componentes de arquitectura básica de A/B Test
Nuestro algoritmo de aleatorización
Nuestro mecanismo de asignación
Nuestro sistema de recolección de métricas
4.2.3 Evaluación de resultados.
5. Administración de la comunidad
5.1 Evolución de los miembros
5.1.1 Privilegios
5.1.2 Privilegios democráticos o autocráticos
5.1.3 Reputación
6. API
6.1 Detalle de la API desarrollada
6.1.1 Autenticación
6.1.2 Llamadas a la API
Ver perfil de usuario
Ver etiquetas de interés para el usuario
Ver problemas asociados
Ver soluciones asociadas
Ver problema
Ver etiquetas de problema
Crear problema
Actualizar problema
Sugerencias de problemas
Asociación a problemas
Desasociación de problemas
Ver proceso de evaluación
Ver solución
Ver script solución
Crear solución
Actualizar solución
Votar para crear un nuevo proceso de evaluación
Votar solución
Ver voto
Iniciar proceso de evaluación
Finalizar proceso de evaluación
Navegar
6.2 Potenciales usos de la API
7. Uso de la aplicación
7.1 Aplicación web
7.1.1 Registración
7.1.2 Inicio de sesión
7.1.3 Reportar un problema
7.1.4 Listado de problemas
7.1.5 Ver problema
7.1.6 Ver proceso de evaluación
Aceptando soluciones
Evaluando soluciones
Finalizado
7.1.7 Agregar nueva solución
7.1.8 Privilegios
7.1.9 Perfil de usuario
Creación de tokens de acceso
7.2 Extensión de Google Chrome
7.2.1 Opciones de la extensión
7.2.2 Extensión en ejecución
8. Conclusiones y trabajo a futuro
8.1 Conclusiones
8.2 Contribuciones
8.2.1 Contribuciones relacionadas a la definición de procesos de trabajo
8.2.2 Contribuciones relacionadas a las herramientas desarrolladas
8.3 Limitaciones
8.4 Trabajos futuros
8.4.1 Herramientas de incentivo a la participación
8.4.2 Herramientas de moderación
8.4.3 Otras mejoras a la comunidad
8.4.4 Mejoras a la extensión del navegador
8.4.5 Herramientas para el desarrollo de soluciones
8.4.6 Propuestas de mejora de seguridad
Referencias bibliográficas
Anexos
1. Extensiones de Google Chrome
1.1 Conceptos generales
1.2 Interacción con el usuario
1.3 Arquitectura de las extensiones
Background pages
Content scripts