You are on page 1of 14

Usability Test

Description:
An interface evaluation under real-world or controlled conditions.
Measures of performance are derived for specific tasks.
Problems are identified.
Advantages:
Utilizes an actual work environment.
Identifies serious or recurring problems.
Disadvantages:
High cost for establishing facility.
Requires a test conductor with user interface expertise.
Emphasizes first-time system usage.
Poorly suited for detecting inconsistency problems.
The Purpose of Usability Testing
First, it establishes a communication bridge between developers and users. Through testing, the developer
learns about the users goals, perceptions, questions, and problems.
Second, testing is used to evaluate a product. It validates design decisions. It also can identify
potential problems in design at a point in the development process where they can be more easily
addressed.
The Importance of Usability Testing
A thorough usability testing process is important for many reasons,
Developers and users possess different models.
Developers intuitions are not always correct.
There is no average user.
Its impossible to predict usability from appearance.
Design standards and guidelines are not sufficient.
Informal feedback is inadequate.
Problems found late are more difficult and expensive to fix.
Advantages over a competitive product can be achieved.
Developing and Conducting the Test
A usability test requires developing a test plan, selecting test participants, conducting the test, and
analyzing the test results.
a.The Test Plan
Define the scope of the test.
o A tests scope will be influenced by a variety of factors.
o Determinants include the following issues:
o The design stage: early, middle, or latethe stage of design influences the kinds of
prototypes that may exist for the test,
o the time available for the testthis may range from just a few days to a year or more,
o finances allocated for testingmoney allocated may range from one percent of a projects
cost to more than 10 percent,
o the projects novelty (well defined or exploratory)this will influence the kinds of tests
feasible to conduct,
o expected user numbers (few or many) and interface criticality (life-critical medical system or
informational exhibit)much more testing depth and length will be needed for systems with
greater human impact, and finally, the development teams experience and testing knowledge
will also affect the kinds of tests that can be conducted.
Define the purpose of the test.
Performance goals.
What the test is intended to accomplish.
Define the test methodology.

Type of test to be performed.


Test limitations.
Developer participants.
Identify and schedule the test facility or location.
o The location should be away from distractions and disturbances. If the test is being held in a
usability laboratory, the test facility should resemble the location where the system will be
used.
o It may be an actual office designated for the purpose of testing, or it may be a laboratory
specially designed and fitted for conducting tests.
Develop scenarios to satisfy the tests purpose.
b.Test Participants
Assemble the proper people to participate in the test.
c.Test Conduct and Data Collection
WWW.VIDYARTHIPLUS.COM
St.Josephs College of Engineering 150 ISO 9001:2008
To collect usable data, the test should begin only after the proper preparation. Then, the data must
be properly and accurately recorded.
Finally, the test must be concluded and followed up properly.
Usability Test Guidelines
Before starting the test:
Explain that the objective is to test the software, not the participants.
Explain how the test materials and records will be used.
If a consent agreement is to be signed, explain all information on it.
If verbal protocols will be collected, let participants practice thinking aloud.
Ensure that all participants questions are answered and that participants are comfortable with
all procedures.
During the test:
Minimize the number of people who will interact with the participants.
If observers will be in the room, limit them to two or three.
Provide a checklist for recording:
Times to perform tasks.
Errors made in performing tasks.
Unexpected user actions.
System features used/not used.
Difficult/easy-to-use features.
System bugs or failures.
Record techniques and search patterns that participants employ when attempting to work
through a difficulty.
If participants are thinking aloud, record assumptions and inferences being made.
Record the session with a tape recorder or video camera.
Do not interrupt participants unless absolutely necessary.
If participants need help, provide some response.
Provide encouragement or hints.
Give general hints before specific hints.
Record the number of hints given.
Watch carefully for signs of stress in participants:
Sitting for long times doing nothing.
Blaming themselves for problems.
Flipping through documentation without really reading it.
Provide short breaks when needed.
Maintain a positive attitude, no matter what happens.

After the test:


Hold a final interview with participants; tell participants what has been learned in the test.
Provide a follow-up questionnaire that asks participants to evaluate the product or tasks
performed.
If videotaping, use tapes only in proper ways.
Respect participants privacy.
Get written permission to use tapes.
Matrix:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.

package com.sanfoundry.numerical;
import java.util.Scanner;
public class MatixMultiplication
{
public static void main(String args[])
{
int n;
Scanner input = new Scanner(System.in);
System.out.println("Enter the base of squared matrices");
n = input.nextInt();
int[][] a = new int[n][n];
int[][] b = new int[n][n];
int[][] c = new int[n][n];
System.out.println("Enter the elements of 1st martix row wise \n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
a[i][j] = input.nextInt();
}
}
System.out.println("Enter the elements of 2nd martix row wise \n");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
b[i][j] = input.nextInt();
}
}
System.out.println("Multiplying the matrices...");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
c[i][j] = c[i][j] + a[i][k] * b[k][j];
}
}

42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.

}
System.out.println("The product is:");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
System.out.print(c[i][j] + " ");
}
System.out.println();
}
input.close();
}
}

Bank:
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

/*<applet code=bang2.class width=300 height=400></applet>*/

class frame1 extends Frame


{
frame1(String title)
{
super(title);
MyWindowAdapter ad=new MyWindowAdapter(this);
addWindowListener(ad);
}
public void paint(Graphics g)
{
g.drawString("This is a frame Window",10,40);

}
}

class MyWindowAdapter extends WindowAdapter


{
frame1 f1;
public MyWindowAdapter(frame1 f1)
{
this.f1=f1;
}
public void windowClosing(WindowEvent we)
{
f1.setVisible(false);
}

public class bang2 extends Applet implements


ActionListener,ItemListener
{

Label customer,deposit,accno,widthdraw;
TextField cust,dept,number,draw;
TextArea t;
Choice type;
Checkbox yes,nu;
CheckboxGroup te;

Frame f;

Button b;

public void init()


{

f=new frame1("A frame window");


f.setSize(250,250);
f.setVisible(true);

setBackground(Color.yellow);
setForeground(Color.red);

customer=new Label("CUSTOMER");
deposit=new Label("DEPOSIT");
accno=new Label("ACCOUNT NUMBER");
widthdraw=new Label("WIDTHDRAW");

cust=new TextField(20);
dept=new TextField(20);
number=new TextField(20);
draw=new TextField(20);

type=new Choice();
type.add("FIXED");
type.add("RD");
//

type.add("SECOND CLASS");

te=new CheckboxGroup();
yes=new Checkbox(te,"YES",false);
nu=new Checkbox(te,"NO",false);

t=new TextArea(40,45);

b=new Button("submit");

add(customer);
add(cust);

add(accno);
add(number);

add(deposit);
add(dept);

add(widthdraw);
add(draw);

add(type);
add(b);

add(yes);
add(nu);

add(t);

b.addActionListener(this);
type.addItemListener(this);
}

public void actionPerformed(ActionEvent ae)


{
if(ae.getActionCommand().equals("submit"))
{
t.setText("NAME: "+cust.getText()+"

"+"ACCOUNT NUMBER : "+


number.getText()+"

"+"DEPOSIT
AMOUNT
: "+dept.getText()+"

"+
"TYPE OF ACCOUNT : "+type.getSelectedItem());
}
}

public void itemStateChanged(ItemEvent ie)


{

}
}

import java.awt.*;
import java.awt.event.*;
public class Studentinfo
{
static StudFrame sf;
public static void main(String args[])
{
sf = new StudFrame();
}
}
class mywindowadapter extends WindowAdapter
{
// StudFrame sf;
// public mywindowadapter(StudFrame sf)
// {
// this.sf=sf;
// }
//
public void windowClosing(WindowEvent we)
{
// sf.setVisible(false);
System.exit(0);
}
}
class StudFrame extends Frame implements ActionListener,ItemListener
{
Button b1,b2,b3,b4;
static TextField t1,t2;
static Choice c,c1,c2,cc;
static Label lh,l1,l2,l3,l4,l5,l6;
//static List lb;
static Checkbox cb1,cb2;
static CheckboxGroup gndr=new CheckboxGroup();
StudFrame()
{
super("Student Records Form");
//mywindowadapter mw=new mywindowadapter(this);
addWindowListener(new mywindowadapter());
addcontrols();
setSize(700,550);
setResizable(true);
setVisible(true);
}
void addcontrols()
{
setLayout(null);
lh=new Label("Student Records");
l1=new Label("Student ID");
l2=new Label();
l2.setText("Name");
l3=new Label("Gender");
l4=new Label("Age");

l5=new Label("Qualification");
l6=new Label("Course");
t1=new TextField(8);
t2=new TextField(8);
cb1=new Checkbox("Male",gndr,true);
cb2=new Checkbox("Female",gndr,false);
cc=new Choice();
for(int i=15;i<=80;i++)
cc.add(Integer.toString(i));
c=new Choice();
c.add("Under Graduate");
c.add("Graduate");
c1=new Choice();
c1.add("B.A.");
c1.add("B.B.A.");
c1.add("B.C.A.");
c1.add("B.Com");
c1.add("B.E./B.Tech");
c1.add("B.Pharma");
c1.add("B.Sc.");
c2=new Choice();
c2.add("M.B.A.");
c2.add("M.C.A.");
c2.add("M.E./M.Tech");
b1=new Button("OK");
b2=new Button("Cancel");
b3=new Button("Reset");
b4=new Button("Exit");
lh.setBounds(100,30,100,30);
l1.setBounds(100,60,100,30);
l2.setBounds(100,90,100,30);
l3.setBounds(100,120,100,30);
l4.setBounds(100,150,100,30);
l5.setBounds(100,180,100,30);
l6.setBounds(100,210,100,30);
t1.setBounds(250,60,150,20);
t2.setBounds(250,90,150,20);
cb1.setBounds(250,120,40,20); cb2.setBounds(310,120,60,20);
cc.setBounds(250,150,150,20);
c.setBounds(250,180,150,20);
c1.setBounds(250,210,150,20);
c2.setBounds(250,210,150,20);
b1.setBounds(500,90,100,35); b2.setBounds(500,180,100,35);
b3.setBounds(125,290,100,35); b4.setBounds(300,290,100,35);
add(lh);
add(l1);
add(l2);
add(l3);
add(l4);
add(l5);
add(l6);
add(t1);

add(t2);
add(cb1); add(cb2);
add(cc);
add(c);
add(c1); c1.setVisible(true);
add(c2); c2.setVisible(false);
add(b1);
add(b2);
add(b3);
add(b4);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
c.addItemListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==b1)
{
subframe s=new subframe("Submission","Data entered successfully.");
String s1=t1.getText();
String s2=t2.getText();
if(s1.length()==0 || s1.length()==0 )
{
s.setSize(300,100);
}
else
{
s.setSize(350,350);
}
s.setVisible(true);
StudentInfo.sf.setEnabled(false);
}
else if(ae.getSource()==b2)
{
subframe s=new subframe("Cancellation","Data is not
accepted(Cancellation done).");
s.setSize(300,100);
s.setVisible(true);
StudentInfo.sf.setEnabled(false);
}
else if(ae.getSource()==b3)
{
t1.setText("");
t2.setText("");
gndr.setSelectedCheckbox(cb1);
c.select(0);
cc.select(0);
c1.select(0);
c1.setVisible(true);
}

else if(ae.getSource()==b4)
{
System.exit(0);
}
}
public void itemStateChanged(ItemEvent ie)
{
String s = c.getSelectedItem();
if(s=="Under Graduate")
{
c1.setVisible(true);
c2.setVisible(false);
}
if(s=="Graduate")
{
c1.setVisible(false);
c2.setVisible(true);
}
}
}
class subwindowadapter extends WindowAdapter
{
subframe subf;
public subwindowadapter(subframe subf)
{
this.subf=subf;
}
public void windowClosing(WindowEvent we)
{
StudentInfo.sf.setEnabled(true);
subf.setVisible(false);
}
}
class subframe extends Frame implements ActionListener
{
Button bsubok=new Button("OK");
subframe() {}
subframe(String title) {}
subframe(String title,String msg)
{
super(title);
String s1=StudFrame.t1.getText();
String s2=StudFrame.t2.getText();
subwindowadapter sw=new subwindowadapter(this);
addWindowListener(sw);
if(title=="Cancellation")
{
// StudFrame.t1.setText("");
// StudFrame.t2.setText("");
setLayout(new FlowLayout(FlowLayout.CENTER));
add(new Label(msg));
add(bsubok);

bsubok.addActionListener(this);
}
else
{
if(s1.length()==0)
{
//resize(300,100);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(new Label("Please fill in Student Name."));
add(bsubok);
bsubok.addActionListener(this);
}
else if(s2.length()==0)
{
setLayout(new FlowLayout(FlowLayout.CENTER));
add(new Label("Please fill in Student Roll Number."));
add(bsubok);
bsubok.addActionListener(this);
}
else
//add(new Label(StudFrame.t1.getText() +", Student ID:
"+StudFrame.t2.getText()+" Accepted.",Label.CENTER));
{
setLayout(null);
Label lhl,ll1,ll2,ll3,ll4,ll5,ll6,la1,la2,la3,la4,la5,la6,ltl;
lhl=new Label("Your data is:");
ll1=new Label("Student ID");
ll2=new Label();
ll2.setText("Name");
ll3=new Label("Gender");
ll4=new Label("Age");
ll5=new Label("Qualification");
ll6=new Label("Course");
ltl=new Label(msg);
la1=new Label(StudFrame.t1.getText());
la2=new Label();
la2.setText(StudFrame.t2.getText());
la3=new
Label(StudFrame.gndr.getSelectedCheckbox().getLabel());
la4=new Label(StudFrame.cc.getSelectedItem());
la5=new Label(StudFrame.c.getSelectedItem());
if(StudFrame.c.getSelectedItem()=="Under Graduate")
la6=new Label(StudFrame.c1.getSelectedItem());
else
la6=new Label(StudFrame.c2.getSelectedItem());
add(lhl);
add(ll1);
add(ll2);
add(ll3);
add(ll4);
add(ll5);
add(ll6);

add(la1);
add(la2);
add(la3);
add(la4);
add(la5);
add(la6);
add(ltl);add(bsubok);
lhl.setBounds(50,30,100,30);
ll1.setBounds(50,60,100,30);
ll2.setBounds(50,90,100,30);
ll3.setBounds(50,120,100,30);
ll4.setBounds(50,150,100,30);
ll5.setBounds(50,180,100,30);
ll6.setBounds(50,210,100,30);
la1.setBounds(200,60,100,30);
la2.setBounds(200,90,100,30);
la3.setBounds(200,120,100,30);
la4.setBounds(200,150,100,30);
la5.setBounds(200,180,100,30);
la6.setBounds(200,210,100,30);
ltl.setBounds(75,240,200,30);
bsubok.setBounds(100,280,100,30);
bsubok.addActionListener(this);
}
}
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==bsubok)
{
StudentInfo.sf.setEnabled(true);
setVisible(false);
}
}
}

You might also like