Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.

Slides:



Advertisements
Similar presentations
User Experience Krista Van Laan. Agenda What is User Experience? How does a User Experience team support the rest of the organization? What processes.
Advertisements

Object Oriented Analysis And Design-IT0207 iiI Semester
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Test process essentials Riitta Viitamäki,
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Requirements and Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Human Computer Interface. HCI and Designing the User Interface The user interface is a critical part of an information system -- it is what the users.
Part 4: Evaluation Days 25, 27, 29, 31 Chapter 20: Why evaluate? Chapter 21: Deciding on what to evaluate: the strategy Chapter 22: Planning who, what,
Software Testing. Testing Levels (McConnel) Unit Testing Single programmer involved in writing tested code Component Testing Multiple programmers involved.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Heuristic Evaluation Evaluating with experts. Discount Evaluation Techniques  Basis: Observing users can be time- consuming and expensive Try to predict.
Nine principles of design Simple and natural dialog Speak the user’s language Minimize user’s memory load Be consistent Provide feedback Provide clearly.
CS 425/625 Software Engineering Software Testing
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Copyright by Scott GrissomCh 1 Software Development Slide 1 Software Development The process of developing large software projects Different Approaches.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Design, Implementation and Maintenance
Software Life Cycle Model
Chapter 13 & 14 Software Testing Strategies and Techniques
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
… and after unit testing …
Extreme Programming Software Development Written by Sanjay Kumar.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Software Testing. Introduction Testing is often left to the end of the project which is generally not a good idea. Testing should be conducted throughout.
TESTING.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Prof. Mohamed Batouche Software Testing.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Testing, Bug Fixing and Debugging the Code Yordan Dimitrov Telerik Corporation
 CS 5380 Software Engineering Chapter 8 Testing.
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
SEG3120 User Interfaces Design and Implementation
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Evaluation of User Interface Design 4. Predictive Evaluation continued Different kinds of predictive evaluation: 1.Inspection methods 2.Usage simulations.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
Software Construction Lecture 18 Software Testing.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
Cs413_design04.ppt Design and Software Development Design : to create a functional interface that has high usability Development : an organized approach.
Evaluating a UI Design Expert inspection methods Cognitive Walkthrough
Software Testing Process By: M. Muzaffar Hameed.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
LECTURE 19 23/11/15 Software Quality and Testing.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Testing Integral part of the software development process.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
 System Requirement Specification and System Planning.
Development Environment
Software Testing.
Software Testing.
“Would I have to do this all by myself …….?”
The Object-Oriented Thought Process Chapter 05
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Java & Testing.
Chapter 11: Integration- and System Testing
Whitebox Testing.
OBJECTIVE QUALITY ASSURANCE TESTS TESTING STRATEGIES
System analysis and design
Presentation transcript:

Testing HCI Usability Testing

Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are hooked together as subsystems and tested (black-box testing / functional testing) Subsystems are hooked together and tested (integration testing) System is placed in its real environment and tested (system testing) All tests are saved and rerun when changes are made (regression testing)

Unit Testing Individual routines and modules are tested

Every module should be unit tested before it is integrated into the rest of the system

Unit tests are written by the programmer who wrote the code (white-box) the programmer who wrote the code (white-box)

Logic coverage Every statement in a module tested at least once

Structured Basis Testing Is used to determine the minimum number of tests needed to test all logic paths 1.Start with 1 2.Add 1 for each potential program selection statement (if, and, or, while, do... until, for, do … while) 3.Add 1 for each case statement (plus 1 if no default case given)

What test coverage is needed for this code? if (z > m) x = a++; else x = ++a; if (y < n) w = k + x++; else w = k + --x; return x + w;

Test Case Coverage CaseTest DescriptionTest DataData Values Expect Output 1Nominal case All boolean conditions are true a = 1, z = 2, m = 1, x = 0, n = 2, y = 1, k = 5, w = 0 8 2first 'if' falsez = mz = 2, m = 210 3second 'if' falsey = nn = 2, y = 25 4first and second 'if' false z = m and y = n z = 2, m = 2, n = 2, y = 2 7

Test for bad data Too little or no data Too much data Invalid data Wrong data size Uninitialized data

Unit testing should be part of the coding process Unit tests should be written by the programmer creating the program. Problem: Tests not written after the program is written. Solution: Write test code before writing the program. More Details

XP approach -- only test things that might break Interface for a method is unclear Implementation is a bit complicated Uncertain code will work If a problem is discovered later, write code for that problem Before refactoring code

Functional Testing customer tests whether requirements are satisfied by the system (black-box)

Customer testing Customers have to determine if the system is functioning correctly and whether requirements are met Customers should write tests on a use case by use case basis. A tester should help translate the tests by the customer into automated tests.

Debugging is separate from testing Problems identified by a test must be recorded: –when was the bug discovered, –where and how it was found, –how can it be reproduced, –what component was fixed –what is the fix –who fixed it –who tested the change

OO Testing Object classes should be exercised in all possible states – all events that cause a state change in the object Integration testing is replaced by thread- based testing -- test the set of classes required to respond to an input or system event or use case scenario.

HCI Usability Testing Users give satisfaction ratings and critiques regarding interaction with the system

Poor usability = unused software Feature rich, high quality software will be shelved by poor usability. Low usability makes the user unproductive and error prone

Usability heuristics Simple and natural dialogue Speak user’s language Minimize user memory load Consistency Feedback Clearly marked exits Shortcuts Good error messages Prevent errors Help and documentation

Most difficult aspect of usability is how to define and measure it Testing is normally performed in a lab where users perform normal tasks and HCI specialists record observations Count user errors, time accomplishments The user is asked about the ease, speed and pleasantness of the application

Keys to improving usability Know the user, their work site, etc Know competing products Set a goal: such as reducing errors or increasing speed per transaction, etc Use participatory design, or prototyping Use iterative design Apply consistency to all the screens used