CS 490M Software Testing
Company Sponsored Projects
An Overview [Under Construction]
Fall 2006Instructor: Aditya Mathur
August 21, 2006
QuickTime™ and aTIFF (Uncompressed) decompressor
are needed to see this picture.QuickTime™ and a
TIFF (Uncompressed) decompressorare needed to see this picture.
Fall 2006 CS 490M Software Testing. Projects Overview.
2
Why sponsored projects? [1]
Lectures cover widely applicable, generic
material.
Lectures do not cover product or company
specific material such as test infrastructure,
writing special types of tests such as for I/O
drivers, interfacing with specific products
such as a cardiac device, etc.
Fall 2006 CS 490M Software Testing. Projects Overview.
3
Why sponsored projects? [2]
Sponsored projects provide a peek into the “real world.”
access to engineers in the field
opportunity to solve “real world” problems
opportunity to evaluate how classroom material fits in the
real world.
Sponsored projects strengthen your job prospects
and help you decide whether or not you want to go to
the graduate school!
Fall 2006 CS 490M Software Testing. Projects Overview.
4
Why teams?
Most courses focus on “individual learning mode.”
In real life, one needs to work in teams to solve
complex problems.
This requires a level of communication skills,
planning, commitment, organization, etc. much
beyond that required in individual learning mode.
Team-based projects allow students to acquire or
enhance their skills to work in small teams.
Fall 2006 CS 490M Software Testing. Projects Overview.
5
Why reports and presentations?
Check on progress.
Improves your oral and written
communication skills.
Keeps you on track!
Fall 2006 CS 490M Software Testing. Projects Overview.
6
Fall 2006 sponsors
Boston Scientific (formerly Guidant): Products: Cardiac devices.
Contact: Marc Loos and Craig Abrahamson
Microsoft: Products: OS, office products, and others
Contact: Adam Shapiro and Peter Shier
TRDDC/TCS: Products: Application and other software
Contact: Subhankar Ghosh.
Fall 2006 CS 490M Software Testing. Projects Overview.
7
Microsoft: Windows Driver Model [1]
Objectives Learn the Microsoft Windows Driver Model (WDM)
Basics of I/O driver Kernel/user modes, native API, etc. Plug-n-play devices Understand driver code (Example: USB loop back driver)
Understand device simulation and its importance How to generate fully automated tests How to evaluate the quality of the tests and of the driver
using fault injection and code coverage. Understand the importance of high quality I/O drivers.
Fall 2006 CS 490M Software Testing. Projects Overview.
8
Microsoft: Windows Driver Model [2] Reference: Programming the Microsoft Windows Driver Model by
Walter Oney, Microsoft Press. Copies available from the instructor.
Steps: Week 1: Form team. Read Peter Shier’s project outline. Understand it. Read
Chapter 1. Get accounts created on Vista machines. Week 2: Get familiar with the location of sample code. Try logging in to
Vista machines in the CS lab. Read Peter Shier’s project outline. Understand it.
Week 3: Begin following Peter Shier’s project outline. Project presentation 1: Friday September 8. During the second hour (10:30-
11:30am).
Not to be missed: Peter Shier’s talk on 9/1 during the lecture hour.
Fall 2006 CS 490M Software Testing. Projects Overview.
9
Boston Scientific: Testing Cardiac Devices
Objectives: Learn how embedded systems are tested. Learn why a typical test station framework is needed and
how it functions. Learn to generate quality tests for embedded systems
(cardiac devices in this project). Understand the importance of high quality software for
Cardiac devices and their programmers. Learn to use a version control system (CVS in this project).
Fall 2006 CS 490M Software Testing. Projects Overview.
10
Boston Scientific: Testing Cardiac Devices
Reference: Guidelines from Marc Loos. Reference material on Medusa available with the PC on the Test Station.
Steps: Week 1: Form team. Read Marc’s “Dear Student” letter. Get familiar with the
location of the Test Station. It is a piece of hardware centered around a PC. Accounts are needed.
Week 2: Play with the test station. Get your hands “dirty!” Week 3: Develop a project plan for upgrading Medusa. Generate a sample Project presentation 1: Friday September 8. During the second hour (10:30-
11:30am).
Not to be missed: Craig Abrahamson’s talk on 8/30 during the lecture hour.
Fall 2006 CS 490M Software Testing. Projects Overview.
11
TRDDC: Automatic Stub Generator [1]
Objectives: Learn how to test complex software. Learn what are “stubs” and how to generate them
automatically. Understand what is a “constraint solver” and how to use it. Learn to use a proprietary testing tool named “Testify.” Learn to develop Eclipse plugin.
Fall 2006 CS 490M Software Testing. Projects Overview.
12
TRDDC: Automatic Stub Generator [2]
Reference: Guidelines from TRDDC and Eclipse documentation. Steps:
Week 1: Form team. Read and understand TRDDC project guidelines and Eclipse Java Development Tool (JDT).
Week 2: Identify what types of stubs you plan to generate and work out a sample architecture for stub generator.
Week 3: Develop a project plan for automatic stub generation. Project presentation 1: Friday September 8. During the second hour (10:30-
11:30am).
Fall 2006 CS 490M Software Testing. Projects Overview.
13
Summary
Form teams (Team size: Minimum: 2. Maximum: 3) Select project Read project documentation from the sponsor. Prepare project plan. Get ready for your first team presentation on 9/8.