Part-Time Programs in Engineering and Applied Science, Johns Hopkins University

Modern Software Testing and Maintenance
605.406


Course Description

Development and maintenance of software is changing rapidly, and advances in tools and methods are playing a major role in improved quality and productivity. The increased use of automated techniques have helped the software professional focus on critical areas where most problems will occur and the largest return on investment will be realized. In addition, more disciplined configuration management practices are enhancing software maintenance techniques. The larger role for software testing and maintenance is creating a need for more software testing professionals, and a new sub-discipline is emerging. This course summarizes the field, explains the new techniques, and identifies the important issues. Testing and maintenance is described for the client-server environment, for Internet/Intranet application areas, and for distributed objects in the client-server world. The use and basic understanding of the Capability Maturity Model for development environments will be presented and the dilemma of when to stop testing is described. Additionally, software reliability engineering, dynamic and assertion test automation, Year 2000 testing issues, and cleanroom concepts will be presented. The role of configuration management and the delicate balance between quality, cost, and time are woven into each major area with the use of process and product metrics to assist in quantifying each stage of completion. Students will be provided with programs on which testing and maintenance will be performed.

Syllabus

  1. Introduction - Life Cycle Overview
  2. Capability Maturity Model For Software Development
  3. Embedded and Realtime Applications
  4. Software Metrics for Development and Maintenance
  5. Scenario Generation and Software Integration
  6. Development and Testing Models
  7. Metrics for CMM levels 2 and 3
  8. Mid-Term Exam
  9. Spring Break
  10. Formal Verification and Validation Processes
  11. Internet and Intranet Application Testing and Maintenance
  12. Reverse Engineering, Y2K, Performance
  13. Final Exam

Prerequisites
605.401 Foundations of Software Engineering or permission of instructor.

Instructor
K Wayne Claybaugh is a Deputy Associate Commissioner with the Social Security Administration in Baltimore. He has over 30 years of experience in the supervision, management and development of software applications. Mr. Claybaugh holds a M.S. degree in computer science from the Johns Hopkins University and B.S.degree in mathematics from Towson University. He has also done graduate work in the area of software metrics. Mr. Claybaugh is directly responsible for developing, acquiring and maintaining software support for the Social Security Association community (approximately 65,000 employees) in the areas of office automation.
E-mail the instructor.

Computer Lab Requirements
The student will be provided with source code in a high level language such as C or JAVA; this will be used to demonstrate the testing and maintenance principles taught in the class. This work can be done at either the JHU computer facility or one of their choosing.

Textbook
Software Testing Management, Life on the Critical Path by Thomas C. Royer


Return to Computer Science Courses | Computer Science  | Part-Time Engineering

January 1998