Ответ
Удобство использования (usability) оценивается по пяти основным критериям, каждый из которых может быть измерен количественно или качественно:
- Эффективность (Efficiency): Время или количество шагов, необходимых пользователю для выполнения задачи.
- Метрика: Среднее время выполнения ключевой задачи (например, оформление заказа за 2 минуты).
- Продуктивность ошибок (Error Tolerance): Количество и серьезность ошибок, совершаемых пользователем, и время на их исправление.
- Метрика: Количество ошибочных кликов на сессию.
- Запоминаемость (Memorability): Насколько легко пользователь возобновляет работу с интерфейсом после перерыва.
- Метрика: Время выполнения задачи при повторном входе через неделю.
- Обучаемость (Learnability): Насколько быстро новичок может освоить базовые операции.
- Метрика: Время достижения первого успешного завершения задачи.
- Удовлетворенность (Satisfaction): Субъективное восприятие пользователя.
- Метрика: Оценка по шкале System Usability Scale (SUS) или Net Promoter Score (NPS).
Пример автоматизированной проверки эффективности:
import time
def test_task_completion_time(user_session):
start_time = time.time()
# Симуляция действий пользователя
user_session.navigate_to_checkout()
user_session.fill_payment_details()
user_session.confirm_order()
completion_time = time.time() - start_time
assert completion_time < 120, f"Задача заняла {completion_time:.1f} сек, что превышает лимит в 120 сек" Ответ 18+ 🔞
А, вот эта ваша юзабилити, блядь! Ну, смотри, чтобы не было как с тем Герасимом, который нихуя сказать не мог, а тут у тебя пользователь нихуя сделать не может. Трагедия, блядь!
Короче, есть пять столпов, на которых всё держится. Не как у меня на кухне — на кривой табуретке, а нормально.
-
Эффективность, ёпта. Это сколько времени или движений жопой надо, чтобы задачу сделать. Вот представь: «оформи заказ». Если он за две минуты не справляется, а начинает, как мудак, метаться по интерфейсу — это пиздец, а не эффективность. Метрика простая: засекаешь время. Больше двух минут — в пизду этот интерфейс.
-
Продуктивность ошибок. Это не про то, как продуктивно ошибаться, а наоборот — как система эти ошибки терпит. Пользователь — он как тот немой татарин, силы дохуя, а мозгов иногда — ноль. Кликнет не туда, введёт ерунду. Система должна это пережить, а не накрыться медным тазом. Считаем, сколько раз он тыкает мимо кнопки за сессию. Если больше трёх — дизайнеру вилкой в глаз.
-
Запоминаемость. Вот пользователь зашёл, всё сделал, ушёл. Через неделю вернулся. Если он, как Герасим, только «Му-му» мычать начинает, потому что нихуя не помнит, как тут что — это плохо. Замеряем, сколько времени у него уйдёт на ту же задачу при повторном визите. Должно быть быстрее, а не «я тут вроде был… блядь, где тут эта кнопка, сука?».
-
Обучаемость. Новый пользователь, чистый лист. Насколько быстро он перестаёт быть беспомощным пиздёнышем и делает что-то полезное. Время от входа до первой победы. Если дольше, чем я Тургенева пересказывал — волнение ебать, терпения ноль ебать у этого юзера.
-
Удовлетворенность. А это уже чистая субъективщина. После всех этих мытарств спроси его: «Ну как, сука, понравилось?». Обычно дают какую-нибудь циферку по шкале. Типа, «в рот меня чих-пых, на десяточку!» или «пиздец, один балл, и тот жалко».
А вот, смотри, как можно на коленке проверить тот самый первый пункт, эффективность. Чисто технически, без соплей.
import time
def test_task_completion_time(user_session):
start_time = time.time()
# Симуляция действий пользователя
user_session.navigate_to_checkout()
user_session.fill_payment_details()
user_session.confirm_order()
completion_time = time.time() - start_time
assert completion_time < 120, f"Задача заняла {completion_time:.1f} сек, что превышает лимит в 120 сек"
Видишь? Запустил, подождал. Если выползла ошибка с текстом «заняло 300 сек» — всё, пидарас шерстяной, дизайнеры и разработчики, вы ходите по охуенно тонкому льду. Пора переписывать, а то пользователи разбегутся, как те нанайцы с чеченцами, о которых я говорил.