Usability Labs Setup

From Mandriva Community Wiki

(Redirected from UsuabilityLabsSetup)
Jump to: navigation, search

Mandriva Usability Labs

Goal of this project is to setup a video studio to record users during usability tests.

To complete this project we need:

  • one video camera to record what user reaction (face)
  • one video camera to record how user is doing with his hands
  • one microphone to record what user is saying
  • one method to record what is displaying on the screen
  • optionaly, one video camera to track what user's eyes are looking for on the screen (can't be done with our hardware, dropped)

Because we have a very small budget (something approching 0$) we use webcams as video cameras. They are cheap, we already have got severals of them in company and last but not least, they are very little and users are familiar with them. They should be not afraid by them. To track user's eyes, we can maybe use a webcam embeded in the monitor.

As microphone, the best solution seems to use a microphone embeded in the monitor or in camera. If it is not possible, we already have got some microphones in company. After some tests, it appears embedded microphone in webcam are low quality. A real microphone is needed.

Several solutions have been tested, imagined, etc. to create a video studio without spend a lot of money. Possible solutions are:

  • purchase a ready-made portable usability lab. Some of them are very nice but it will coast at least 15 000$. Too expensive
  • use a mainly hardware solution: use a VGA converter and other hardware to be able to record X session, user's activity (body), sound. Without needed computers cost is at least 1 000$. Too expensive and not enough flexible. We need to be able to travel with our solution hand free (at least, nearly)
  • use a mainly software solution: use less hardware as possible (computers, 2 cameras and a microphone). We will use this solution. Even if we need to buy two laptops, two cameras and a microphone (this is not the goal, goal is to use hardware available in company to cut cost), cost will be less than 1 000$.

Software solution is based on:

  • VNC (x11vnc): to export X session on another host
  • sound and video streaming: to record cameras and microphone activity

Advantages:

  • mainly a software solution
  • low cost to implement it
  • low cost to use it: post-production is optional. If it is really needed, only a little work is required (sound and videos are already synchronised)
  • very flexible
  • better performance than most (if not all) commercial products
  • allow to register desktop full screen and in high resolution
  • doesn't intimidate user with a lot of hardware
  • allow to record X session using its real size. Texts are readable (they are not in Novell's solution)
  • allow to test other operating system using an emulator (Qemu, VMware) very quickly (you just need to launch the emulator full screen and process to usability tests). Please note that now Apple is x86 compatible, we can test all main operating systems (all Windows versions, all Linux distributions, Mac OS X, Sun Solaris, etc.) in nearly all their versions)

How to record users during usability test (summary)?

  • Configure X to display a resolution bigger than 1184x768 resolution on record_computer
  • Launch X on test_computer (init 5)
  • Run x11vnc in background of X server on test_computer
  • Launch X from record computer and login
  • Launch vncviewer and connect to test_computer
  • Launch Freej from test computer on record computer
  • Launch gtk-recordmydesktop, setup a record zone including both Freej and vncviewer
  • Record and start usability test

-=-=-=

on test_computer, run x11vnc like this, if user account to monitor is "guest" : x11vnc -nopw -auth ~guest/.Xauthority -display :0 -viewonly -forever

it is best to use a script in /etc/X11/xinit.d/ to do this.

on record_computer, log as your standard user, then :

  • connect to test_computer using vnc :

vncviewer -encoding raw -viewonly test_computer:0 -geometry 1024x768+160+0 &

  • run freej -j capture.js -c
  • run gtk-recordMyDesktop

capture.js file :

#!/usr/bin/freej -j

function add_camera (dev, w, h) {
 var cam

 try {
   cam = new Cam2Layer(w, h, dev );
 } catch (e) {
    cam = null
 }
 if (!cam) {
   cam = new CamLayer(w, h, dev );
   try {
   } catch (e) {
    cam = null
   }
 }
 return cam
}

W = 160
H = 120

set_resolution(W, 2*H)

cam1 = add_camera ("/dev/video0", W, H )
if(cam1) {
    cam1.set_position(0,0)
    add_layer(cam1)
}
cam2 = add_camera("/dev/video1", 2*W, 2*H)
if(cam2) {
    cam2.zoom(0.5,0.5)
    cam2.set_position(0,H)
    add_layer(cam2)
}
kbd = new KeyboardController()
register_controller( kbd )
kbd.pressed_ctrl_q = function() { quit() }

-=-=-=

At this point, video cameras and test_computer display are visible on record_computer. NOTES:

  • gtk-recordmydesktop generates very large files (1,3 GB for 10mn of record). Scheduled to have a enough space on your recording_computer.
  • to setup pwc webcams at 25 fps: "options pwc leds=0 size=vga fps=25" in /etc/modprobe.conf

TODO:

  • add a time-code generator
  • see what could be done for eye tracking
  • see if X11's recording using GNU Xnee can be usefull
Personal tools