ݺߣ

ݺߣShare a Scribd company logo
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(национальный исследовательский университет)»
(МАИ)
Дипломная работа на тему:


«Программное средство сравнительного исследования человеко-
машинных интерфейсов мобильных устройств»

Руководитель: Горский К.П.
Дипломник: Малов В.В.
Москва, 2015г.
Что такое сравнительное
исследование?
Исследование, в котором контрольная группа
элементов сравнивается с набором тестовых
групп, содержащих изменения, предположительно
увеличивающих количество целевых действий.
(А/Б тест)
Что такое целевое действие?
Пользовательское действие, приносящее
прибыль создателю программного обеспечения.
1. Покупка товара с помощью мобильного приложения
2. Оформление заказа с оплатой при получении
3. Заполнение формы обратной связи
4. Покупки внутри игры
Примеры
(Конверсия)
Зачем тестировать?
Нельзя заранее понять, какой интерфейс показывает
более высокие значения целевого действия.
Нужно тестировать.
• Сервис ориентирован
именно на А/Б-тесты
Taplytics
Плюсы
• Сложный интерфейс
для проведения А/Б-
тестов
Минусы
• Проведение и создание
A/Б тестов из веб-
интерфейса
Mixpanel
• Ручное
программирование
событий
• Простейшие А/Б тесты
Что хочет бизнес?
1. Фиксировать нажатие на определенный элемент
интерфейса.
2. Знать, что пользователь находился на экране больше
N секунд.
3. Совершение последовательности нажатий на
определенные элементы интерфейса.
Идея продукта
Программное средство, которое позволяет
проводить А/Б-тест, получая максимальное количество
данных от приложения, которые дают ответ на проверяемую
гипотезу без дополнительных настроек и сложного
взаимодействия отдела маркетинга и разработки.
Модули
1. Модуль для проведения А/Б-теста
2. Модуль для сбора данных по сессии
3. Модуль для отправки данных сессии в облако
4. Модуль для обработки данных всех сессий
5. Модуль тепловой карты нажатий
SkyLab
Стек технологий
Устройства Сервер
Parse Core
JavaScript
Результаты
Heatmap.js
Excel
Данные
Проведение теста
• Формулируется гипотеза в устной форме (Вариант Б);
• Формулируется нулевая гипотеза;
• Тестируемый интерфейс программируется заранее;
• Использование оберток фреймворка SkyLab;
• Отправка обновленной версии, включающей тест,
пользователям.
Случайный выбор варианта интерфейса
rand48() — семейство функций, генерирующих псевдо-случайные числа,
используя линейный конгруэнтный метод для 48-разрадных чисел.
• r(n+1)	
  =	
  (a	
  *	
  r(n)	
  +	
  c)	
  mod	
  m;	
  
• Множитель	
  	
  a	
  =	
  0xfdeece66d	
  (25214903917);	
  
• Приращение c есть 0xb	
  (11);
• Модуль m =	
  2^48.
drand48() — возвращает значение типа double. Все 48 битов числа r(n+1)
помещается в мантиссу возвращаемого значение так, что в экспоненциальной
записи значения лежат в интервале [0.0,1.0).
srand48() — используется для инициализации буфера r(n) для drand48().
Для этого используется 32 разряда аргумента, которые помещаются в
старшие разряды числа r(n), а младшие 16 разрядов заполняются числом
0x330e	
  (13070).
• Используется объект PFObject из Parse SDK
• Собираются данные по Сессиям
• Собираются данные по Нажатиям
• Фиксируется время на каждом экране
• Сбор данных необходим для сравнения вариантов
интерфейса
• Отправка данных происходит при каждом нажатии в
мобильном приложении (Method Swizzling);
Сбор данных
Наследование
• viewWillAppear — метод, вызываемый при
открытии экрана, отличного от предыдущего.
• viewWillDisappear — метод, вызываем при
открытие другого экрана, отличного от текущего.
В общем супер-классе, определяем следующие методы:
• Каждый класс наследуется от данного класса
• Методы супер-класса будут вызываться каждый раз,
когда соответсвующие методы будут вызваны в
дочернем классе
В реализации:
Наследование
• viewWillAppear
• Засекаем время старта
• Увеличиваем количество переходов
• Определяем имя экрана
• viewWillDisappear
• Записываем данные о времени на текущем экране
• Имя последнего контроллера
• Обработка целевого действия
Method Swizzling
(мошенничество с методом)
Мошенничество с методом является процессом изменения
реализации существующего селектора в коде. Данная
техника возможна благодаря тому, что вызов метода может
быть заменен во время выполнения программы.
Заменим метод SendEvent класса UIWindow, который
отвечает за событие нажатия на экран.
В реализации:
Method Swizzling
(мошенничество с методом)
• SendEvent
• Координаты нажатия
• Номер нажатия
• Время нажатия
• Экран
• Количество кликов
• Время сессии
• Последнее нажатие
• Последний экран
• Количество переходов между экранами
• Статистика по экранам в сессии
• Наличие сотовой сети
Статистическое обоснование
Частота конверсии (среднее значение)
Изменение частоты конверсии между вариантами
Определение значимости результатов
Определение конверсии с доверительным уровнем 90%
Стандартное отклонение для биномиального распределения
Статистическое обоснование
Варианты
Конверсия/
Просмотры
Частота
конверсии
Изменение Доверие
Вариант А
(Контрольный)
320/1064
30.08%
±2.32%
— —
Вариант Б
(тестовый)
250/1043
23.97%
±2.18%
-20.30% 99.92%
Обработка данных
• Из Parse Cloud выбираются данные по сессиям,
касающимся контрольного и тестируемого варианта;
• Каждый клик и время взаимодействия связаны с
сессией;
• Данные сохраняются формате CSV	
  и JSON;
• Результаты представляются в виде тепловой карты;
• Данные могут быть обработаны в Excel.
Тепловая карта
• Какие нажатия были 1-ым, 2-ым,3-им,4-ым и т.д.;
• Какое нажатие было первым и последним;
• Куда нажимали на конкретном экране;
• Увидеть разницу в нажатиях между контрольным и
тестовым вариантом.
Визуальное представление всегда более наглядное, чем в
текстовом виде
Позволяет узнать:
Тепловая карта
Результаты
1. Разработана структура программного средства
2. Реализован новых подход к анализу действий
пользователя
3. Разработан и реализован сбор данных в приложении
4. Реализовано хранение данных в Parse Cloud
5. Рассмотрен способ интерпретации данных,
полученных от мобильного приложения данной
системой аналитики

More Related Content

Программное средство сравнительного исследования человеко- машинных интерфейсов мобильных устройств

  • 1. МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет)» (МАИ) Дипломная работа на тему: 
 «Программное средство сравнительного исследования человеко- машинных интерфейсов мобильных устройств»
 Руководитель: Горский К.П. Дипломник: Малов В.В. Москва, 2015г.
  • 2. Что такое сравнительное исследование? Исследование, в котором контрольная группа элементов сравнивается с набором тестовых групп, содержащих изменения, предположительно увеличивающих количество целевых действий. (А/Б тест)
  • 3. Что такое целевое действие? Пользовательское действие, приносящее прибыль создателю программного обеспечения. 1. Покупка товара с помощью мобильного приложения 2. Оформление заказа с оплатой при получении 3. Заполнение формы обратной связи 4. Покупки внутри игры Примеры (Конверсия)
  • 4. Зачем тестировать? Нельзя заранее понять, какой интерфейс показывает более высокие значения целевого действия. Нужно тестировать.
  • 5. • Сервис ориентирован именно на А/Б-тесты Taplytics Плюсы • Сложный интерфейс для проведения А/Б- тестов Минусы • Проведение и создание A/Б тестов из веб- интерфейса Mixpanel • Ручное программирование событий • Простейшие А/Б тесты
  • 6. Что хочет бизнес? 1. Фиксировать нажатие на определенный элемент интерфейса. 2. Знать, что пользователь находился на экране больше N секунд. 3. Совершение последовательности нажатий на определенные элементы интерфейса.
  • 7. Идея продукта Программное средство, которое позволяет проводить А/Б-тест, получая максимальное количество данных от приложения, которые дают ответ на проверяемую гипотезу без дополнительных настроек и сложного взаимодействия отдела маркетинга и разработки.
  • 8. Модули 1. Модуль для проведения А/Б-теста 2. Модуль для сбора данных по сессии 3. Модуль для отправки данных сессии в облако 4. Модуль для обработки данных всех сессий 5. Модуль тепловой карты нажатий
  • 9. SkyLab Стек технологий Устройства Сервер Parse Core JavaScript Результаты Heatmap.js Excel Данные
  • 10. Проведение теста • Формулируется гипотеза в устной форме (Вариант Б); • Формулируется нулевая гипотеза; • Тестируемый интерфейс программируется заранее; • Использование оберток фреймворка SkyLab; • Отправка обновленной версии, включающей тест, пользователям.
  • 11. Случайный выбор варианта интерфейса rand48() — семейство функций, генерирующих псевдо-случайные числа, используя линейный конгруэнтный метод для 48-разрадных чисел. • r(n+1)  =  (a  *  r(n)  +  c)  mod  m;   • Множитель    a  =  0xfdeece66d  (25214903917);   • Приращение c есть 0xb  (11); • Модуль m =  2^48. drand48() — возвращает значение типа double. Все 48 битов числа r(n+1) помещается в мантиссу возвращаемого значение так, что в экспоненциальной записи значения лежат в интервале [0.0,1.0). srand48() — используется для инициализации буфера r(n) для drand48(). Для этого используется 32 разряда аргумента, которые помещаются в старшие разряды числа r(n), а младшие 16 разрядов заполняются числом 0x330e  (13070).
  • 12. • Используется объект PFObject из Parse SDK • Собираются данные по Сессиям • Собираются данные по Нажатиям • Фиксируется время на каждом экране • Сбор данных необходим для сравнения вариантов интерфейса • Отправка данных происходит при каждом нажатии в мобильном приложении (Method Swizzling); Сбор данных
  • 13. Наследование • viewWillAppear — метод, вызываемый при открытии экрана, отличного от предыдущего. • viewWillDisappear — метод, вызываем при открытие другого экрана, отличного от текущего. В общем супер-классе, определяем следующие методы: • Каждый класс наследуется от данного класса • Методы супер-класса будут вызываться каждый раз, когда соответсвующие методы будут вызваны в дочернем классе В реализации:
  • 14. Наследование • viewWillAppear • Засекаем время старта • Увеличиваем количество переходов • Определяем имя экрана • viewWillDisappear • Записываем данные о времени на текущем экране • Имя последнего контроллера • Обработка целевого действия
  • 15. Method Swizzling (мошенничество с методом) Мошенничество с методом является процессом изменения реализации существующего селектора в коде. Данная техника возможна благодаря тому, что вызов метода может быть заменен во время выполнения программы. Заменим метод SendEvent класса UIWindow, который отвечает за событие нажатия на экран. В реализации:
  • 16. Method Swizzling (мошенничество с методом) • SendEvent • Координаты нажатия • Номер нажатия • Время нажатия • Экран • Количество кликов • Время сессии • Последнее нажатие • Последний экран • Количество переходов между экранами • Статистика по экранам в сессии • Наличие сотовой сети
  • 17. Статистическое обоснование Частота конверсии (среднее значение) Изменение частоты конверсии между вариантами Определение значимости результатов Определение конверсии с доверительным уровнем 90% Стандартное отклонение для биномиального распределения
  • 18. Статистическое обоснование Варианты Конверсия/ Просмотры Частота конверсии Изменение Доверие Вариант А (Контрольный) 320/1064 30.08% ±2.32% — — Вариант Б (тестовый) 250/1043 23.97% ±2.18% -20.30% 99.92%
  • 19. Обработка данных • Из Parse Cloud выбираются данные по сессиям, касающимся контрольного и тестируемого варианта; • Каждый клик и время взаимодействия связаны с сессией; • Данные сохраняются формате CSV  и JSON; • Результаты представляются в виде тепловой карты; • Данные могут быть обработаны в Excel.
  • 20. Тепловая карта • Какие нажатия были 1-ым, 2-ым,3-им,4-ым и т.д.; • Какое нажатие было первым и последним; • Куда нажимали на конкретном экране; • Увидеть разницу в нажатиях между контрольным и тестовым вариантом. Визуальное представление всегда более наглядное, чем в текстовом виде Позволяет узнать:
  • 22. Результаты 1. Разработана структура программного средства 2. Реализован новых подход к анализу действий пользователя 3. Разработан и реализован сбор данных в приложении 4. Реализовано хранение данных в Parse Cloud 5. Рассмотрен способ интерпретации данных, полученных от мобильного приложения данной системой аналитики