Department
of Electrical and Computer Engineering
SOFTWARE TESTING
and VALIDATION (COEN345)
Fall 2007
Syllabus
Instructor: Dr. Rachida Dssouli
Office: EV007.642 (CIISE)
Fax:
(514) 848-3171
Email: dssouli@ciise.Concordia.ca
Class
Time and Room: Tuesday & Thursday: 14:45--16:00, H623
Office
Hours: Wednesdays12:00am-14:00pm
Course
Summary and Objectives:
The purpose of this course is to give the student the theory, methods and practice of software testing and validation (referred to as V&V). The course focuses not only on the theory of software testing and validation but also on how testing and validation techniques can be applied in practice to help programmers and testers function more effectively and efficiently. In addition, projects including the use of advanced testing and validation techniques supported by industrial tool suites are designed to help students learn the difference between state-of-art testing and state-of-practice testing. The overall objective is to teach students an integrated solution to reduce software development cost and also improve its productivity and quality. The course builds on the foundation of what you learned in Software Engineering Principles and Techniques by expanding on topics that were covered in that course as well as adding new ones. The course also points out the importance of soft skills in testing and validating software products. You will learn through lectures, assignments, and projects the quality of software systems and how to achieve it. You will also learn in class and through extra material the professional and ethical responsibility required for developing software products.
Upon completion of this course the student will have:
·
Understood the goal and different types
of software testing.
·
Understood the concepts of verification
and validation
·
Understood and applied functional
testing
·
Understood and
applied structural testing
·
Understood and
applied mutation testing
·
Understood and applied GUI
testing
·
Understood Robustness testing
·
Understood Reliability Assessment
·
Understood and applied Software Testing
Tools.
·
Understood model checking
and concepts related to it.
Items
to be covered in this course:
· General definitions.
· Type of testing
· Black-Box Testing
· White-Box Testing
· Gray-Box Testing
· Static Testing
· Dynamic Testing
· Debugging Software
· Quality Assurance
· Testability Units and Unit Testing
· Test Case Specification
· White-Box testing Basis
· Path Testing Coverage
· Testing Black-Box testing Equivalence class partitioning
· Boundary value analysis
· Unit Testing
· Testing Drivers and stubs
· Unit test set construction
· Integration testing
· Incremental vs. non-incremental testing
· Traditional Integration Testing Strategies
· Higher level testing
· System testing
· Function testing
· Acceptance testing
· Installation testing
· Walkthroughs, Inspections, and Reviews
· Test planning Elements of a good test plan
· Test plan development
· Model checking and logics.
·
...
Prerequisite:
SOEN342
References
(None is mandatory):
·
Kaner,
Falk, and Nguyen, Testing Computer Software (Wiley 1999). See also Cem Kaner's web page (www.kaner.com).
·
Louise Tamres,
Introducing Software Testing, Addison-Wesley, Pearson Education Limited 2002,
ISBN 0-201-71974 6
·
Daniel J., Mosley, Bruce A. Posey, Just
Enough Software Test Automation, Just Enough Series, Yourdon Press, ISBN
0-13-008468-9
·
Boris Beizer,
Software Testing Techniques (second edition). Professors' notes will be
available on my web page.
·
Aitya P. Mathur, Foundations of Software Testing (will appear soon),
draft is available.
Assessment:
Quiz1
25%
Quiz2
30%
Projects
30%
Assignments
15%