January 26, 2015

Usable Security Week 1 - 3

本文為 MOOC 學習筆記。

課程為 University of Maryland 在 Coursera 開的 Usable Security

相關連結:


目錄


Week 1

1. 課程簡介

一個良好的 Security 設計不該干擾到使用者的 Workflow,否則使用者會為了自己的方便性而想辦法避開安全機制,最終導致 Security fail。

因此在設計一個 Security 的機制前,我們應該了解基礎的使用者心理學(Psychology)、認知科學(Cognitive Science),以及人機互動界面(HCI, Human-Computer Interaction)。

HCI 包含:

  • Users
  • Task
  • Context (e.g. environment,即使做相同的事情,在不同環境下要思考的安全機制也不同)
  • Evaluate our system to make sure its easy enough for people to use, so they wont try to avoid it or do insecure decisions.

2. 判斷 HCI 之 Usability 的五個重點

下列這五項是用來判斷一個系統 Usability 優劣的量化指標。

Speed
how quickly can the task be accomplished?
例如 iPhone 的指紋辨識解鎖速度多快。

Efficiency(Error prone)
how many mistakes are made in accomplishing the task?
例如 iPhone 的指紋辨識功能辨識錯誤的機率多高。

Learnability
How easy is it to learn to use the system?
操作夠直覺嗎? 給予使用者的提示是否足夠呢?

Memorability
Once learned, how easy is it to remember how to use the system?
使用者過了一段時間再次使用我們的系統時,是否能跟之前一樣快速上手,或是需要重新學習呢?

User Prefernece
What do users like?
心理學,認知,介面設計等等皆會影響使用者是否喜歡這套系統。

3. Tasks 的定義

在設計 HCI 時,我們必須思考使用者到底想要達成什麼目標(task),這些 task 應該要實用且合理。

Task 要以使用者的 high level 角度來定義:
錯誤的 Task:使用者想在帳號欄位輸入帳號,在密碼欄位輸入密碼,然後按下確定。
正確的 Task:使用者想登入。

Task 不要出現太過 specific 的條件,或是 magic number:
錯誤:使用者想看第三則頭條新聞。
正確:使用者想看頭條新聞。

- Chunking

人腦記憶能力有限,研究顯示,設計系統時,盡量不要讓使用者需要記憶超過 4~6 個項目。
Small bits are easier for people to rememeber。

4. 系統設計的 Mental Models

在設計系統時,可以從下列幾個方向下手。

Mapping

使用者的控制行為是否明確的對應到控制的物件。

例如在 Skyrim 中 gamepad 的右邊 L1 按鍵是揮動右手武器,左邊按鍵則是揮動左手,mapping 十分直覺。

Visibility

使用者越常用的功能應該越明顯,用顏色,大小或位置提示使用者。
例如當您進入不受信任的 HTTPS 連線時,瀏覽器會以大按鈕建議您離開該網頁,”忽略此警告並繼續瀏覽”的按鈕則小小的在旁邊不容易被使用者發現。

Feedback

當使用者執行一個動作時,最好能有提示來回饋使用者。例如當滑鼠移到購物網站的展示圖片,自動變成放大鏡放大圖片。

Constraints

設計防呆裝置,讓使用者不會犯錯。例如 USB, SATA2 的防呆裝置。

Conventions

利用公認的概念來設計系統。譬如 FPS 默認 WASD 為方向控制鍵,R 為 reload,滑鼠左鍵為射擊等。

反過來說,我們更要特別注意不同文化上的差異。例如台灣以紅色代表股市漲,綠色代表股市跌;美國卻剛好相反。要特別注意這類文化差異。


Week 2

Intro to design

  • 事先 survey 是否已有現有的成品
  • 事先 survey 可用資源、技術
  • 事先取得 target audiance 的意見,並採用敏捷開發

SSL warning 的 Case Study 值得一看,以工程師的角度思考技術細節,但更要以使用者的角度思考:到底哪些資訊對使用者有用/哪種說法能讓使用者理解。


Week 3

1. Qualitative Evaluation

Qualitative evaluation can be quick and inexpensive, but may miss insights users provide.

設計完 interface prototype 後,列出下列需求:

  • Task Description
  • List of actions to complete task
  • User background

套入需求模擬後,思考看看下列問題:

  • Will users know to perform the action?
  • Will users see the control?
  • Will users know the control does what they want?
  • Will users understand the feedback?

- Nielson’s heuristics

檢查看看自己的設計是否符合 Nielson’s heuristics:

  • Simple and natural dialog
  • Speak the user’s language (不要有 jargon)
  • Minimize user memory load
  • Consistency
  • Feedback (e.g. Error messages, tooltips)
  • Clearly marked exits
  • Shortcuts for expert users
  • Prevent errors
  • Good error messages
  • Provide help and documentation

- Persona

建立一些假想的 persona (人物性格、背景、技術能力、要執行的目標),模擬這個 persona 執行我們的系統時會不會遇到問題,系統可以如何改進。

Persona 1:
- 姓名:Jack
- 年齡:21 歲
- 職業:管理學院大學生
- 能力:擁有一般電腦手機平板知識,但不到會寫程式的地步,對作業系統及硬體也一竅不通。
- 目標:註冊我們的系統成為會員

Persona 2:
- 姓名:Mary
- 年齡:51 歲
- 職業:清潔工
- 能力:擁有智慧型手機,除了打電話外只會玩孩子幫忙裝在手機內的小遊戲,平常用電腦也只會看看新聞。
- 目標:註冊我們的系統成為會員

則 Marry 明顯比 Jack 需要花更多時間學習如何我們的系統,使用 Persona 測試時有機會發現當初設計時沒注意到的部分。不過有機會的話,最好還是能請真實的使用者來測試。

- Qualitative Evaluation: Example

我們的註冊系統畫面包含:
- 使用者名稱
- 密碼
- CAPTCHA 驗證碼

使用者註冊時,除了名稱與密碼外,尚須輸入 CAPTCHA 驗證碼 才能完成註冊手續。

如果 CATCHA 驗證碼包含英文字的話,不懂英文的 Mary 會不會無法理解?

2. Running Controlled Experiments

Controlled Experiment 步驟

  • Run some pilot participants,找人測試確保你的實驗環境沒有問題。(e.g. 實驗的說明是否夠清楚)
  • Fix the experimental protocol
  • Run the experiment
  • Perform ststistical analysis
  • Draw conclusions
  • Communicate results

- Variables

自變項(Independent variables):The thing you change.(e.g. 不同的手機解鎖方式)
應變項(Dependent variables): The thing you measure.(e.g. 所花的時間)

- Experimental protocol

Between subjects: each subject runs one condition.

假設一共有 10 個實驗對象,5 個測試 A 方法,5 個測試 B 方法。

Within subjects: each subject runs several conditions.

假設一共有 10 個實驗對象,10 個都會測試 A 方法與 B 方法。

要注意的是,Within subjects 中不同方法的先後順序可能會使實驗對象產生 learning effect 導致實驗結果失準,設計實驗時要特別小心。

- Statistical comparison (e.g. t-test)

請參照 t-test 簡易範例

3. Usability Studies

Give pre-questionaire to know the background of the users. Pick most important tasks.

Choose the best method:

  • Silent Observer 在旁邊默默觀察受測者。
  • Think Aloud 要求受測者將想法講出來,這個方法可以理解受測者的思考過程。
  • Constructive Interaction

Give post-questionaire to get feedback, or interview with the users (users tend to talk more rather than write more on paper).

4. A/B Testing

A/B testing is jargon for a randomized experiment with two variants, A and B, which are the control and treatment in the controlled experiment – Wikipedia

  • Start with a small percentage of visitors trying the experimental conditions.
  • Stop testing if any condition has very bad performance. 否則客人都被壞結果嚇跑了。
  • Let people consistently see the same variation so they do not get confused.
  • Small tweaks in the interface can lead to big differences in user behavior

Facebook 之前版面改版也是用 A/B testing。

- Google Analytics Content Experiments

Google Analytics 提供 A/B testing 功能,稱作 Content Experiments。

詳見 OVERVIEW OF CONTENT EXPERIMENTS

VoiceTube 看影片學英文