CptS 422: Software Engineering Principles II

Fall 2019

Meeting time: Monday, Wednesday, Friday, 16:10 – 17:00, August 19 – December 6

Location: Carpenter 102 (Pullman campus)

Course webpage: http://www.eecs.wsu.edu/~hcai/cpts422


Instructor: Haipeng Cai

                Office location: EME B47

                Email: haipeng.cai@wsu.edu 

                Office hours: Monday, Wednesday, 15:00 – 16:00, or by appointments

Teaching Assistant: Xiaoqin Fu

                Office location: SLOAN 316

                Email: xiaoqin.fu@wsu.edu  

                Office hours: Tuesday, Friday, 15:00 – 16:00, or by appointments

Course Description

Software engineering is a subject that concerns the holistic process of software development, distilling the common principles for constructing and maintaining quality software products independent of particular programming languages used. The core of this subject is characteristics of a lifecycle model that covers different phases of software development process, including requirement analysis, software design, implementation, testing, evolution and maintenance. This course will mainly focus on software testing (verification and validation) after the software is implemented.


Course Content Overview

The core content is the fundamentals of software testing, concerning the methodology for performing testing at different levels (e.g., unit testing, integration testing) and for different objectives (e.g., performance testing, stress testing). Students will learn to apply different testing techniques (e.g., boundary-value analysis, decision tables), and to evaluate the results of the tests as well as the quality of the tests.

More specifically, the content will cover the following topics:

Course Learning Objectives

This course will help students gain the abilities to

Further, these learning objectives will be achieved via the following content schedule:

Learning objective

Course topics/dates

Evaluation of learning outcomes


Software testing levels (weeks 2 and 3)

Mid-term 1


Software testing techniques (weeks 4-11)

Mid-term 1, mid-term 2, and project.


Software testing fundamentals and key issues (weeks 1 and 2)



Quality and reliability evaluation (weeks 12, 13, and 14)

Final exam


Presentations and exam review (Week 16)

Final exam



Students taking this course are expected to have already taken CptS 321 or CptS 323 with a grade C or better, and CptS 322 with a grade C or better (NO concurrent enrollment). Through these prerequisite courses, students should have gained a solid background in object-oriented programming (C/C++ or Java) and software engineering with emphasis on requirements analysis and software design.



  1. Paul Jorgensen, “Software Testing, A Craftman’s Approach”, CRC Press, 2013 (4th Edition).(Available on Amazon; ISBN-13: 978-1466560680)
  2. Ilene Burnstein, “Practical Software Testing”, Springer 2003.(Available on Amazon; ISBN-13: 978-0387951317)

Supplemental Texts

  1. Imran Bashir and Amrit Goel, “Testing Object-oriented Software: Life Cycle Solutions”, Springer, 1999.(Available on Amazon; ISBN-13: 978-0387988962)
  2. Robert V. Binder, Testing Object-Oriented Systems - Models, Patterns, and Tools, Addison-Wesley, 1999. (Available on Amazon; ISBN-13: 078-5342809381)
  3. Ian Sommerville, “Software Engineering”, Addison Wesley (9th Edition). (Available on Amazon; ISBN-13: 978-0137035151)

Lecture Schedule (Tentative, weekly)





(book index in [ ])






Syllabus; Testing fundamentals: terminology and key issues.

- Ch. 1, 3 [1]

- Ch. 1, 2 [2]

Project deliverable 0 (project selection, team info)

Eclipse, Checkstyle, Trello, Gerrit, Github/Bitbucket,



Objectives of testing: acceptance testing, installation testing, alpha/beta testing, performance testing, etc.

 - Ch. 8 [5]





Test levels: the target of the test (unit testing, integration testing, system testing).

- Ch. 6 [2]

- Ch. 8 [5]


Junit, Mockito



Testing techniques: overview; Reviews and inspections; Planning for testing activities and documentation.

- Ch. 22 [1]

- Ch. 8, 24 [5]





Black box testing techniques.

- Ch. 5, 6 [1]

Project deliverable 1




Black box testing techniques.

- Ch. 7 [1]




Black box testing techniques.

- Ch. 4 [2]

 Midterm 1 (Oct. 4th)




White box testing techniques.

- Ch. 8, 9, 10 [1]





White box testing techniques.

- Ch. 5 [2]





Techniques based on nature of application: object-oriented programs.

- Ch. 15 [1]

- Ch. 6 and 7 [3]

Project deliverable 2




Integration testing; continuous integration

- Ch. 13 [1]





System testing. Usage-based techniques: operational profiles.

- Ch.14 [1]

Midterm 2




Model-based techniques: finite-state machines; Fault-based testing techniques: mutation testing.

- Ch.12 [1]

- Ch. 7 [4]

- Ch. 21 [1]





Test-related measures; Software testing excellence

- Ch. 21 [1]

- Ch. 23 [1]





Thanksgiving vacation





Project presentations


- All relevant book chapters

- Class notes

Project deliverable 3






Final exam



The final course grade will be calculated using the following breakdown and be converted from numeric numbers to letter grades using the scale mapping as follows. In addition to these basic components of grade, extra/bonus points can be earned through quizzes and extended class participation. There are three forms of extended class participation: in-class discussion, activities on Blackboard Discussion Forums, and office-hour attendance. It is at the instructor’s discretion to calculate the extra/bonus points by the end of the semester.

Breakdown                          Scale mapping









Midterm 1








Midterm 2
















Final exam










We will communicate announcements and lecture notes as well as off-class Q&A and extended discussion through Discussion Forums on Blackboard, which will also be used for project deliverables submission and grading. For questions on course materials, lectures, and course project milestones, contact the instructor/TA on Discussion Forums by sending posts instead of by emails, so as to facilitate communication management. You have options for sending private (anonymous) posts.


Class attendance is mandatory. Although supplementary slides and assigned readings will be posted online, these materials as well as the recommended textbooks are only used as references by the instructor in developing the lectures. Thus, studying these materials and textbooks serves the purpose of getting better prepared for attending in-class lectures, but would by no means substitute for class attendance. Also, the course project requires each team member to be responsible and collaborative as well as to contribute equally; thus, missing lectures without justifiable reasons and then relying on other team members to catch up missed topics is not acceptable. You are also expected to participate in class discussions, which aids learning and provides valuable feedback on the lecture. Lectures will be delivered through whiteboard and Powerpoints. It is the students' responsibility to take their own notes during lectures. Taking notes in class is crucial as these notes form the basis for doing well with assignments and exams.

If you know you will miss a lecture for a justifiable reason such as a university activity, religious holiday, military service, or a medical appointment, notify the instructor by email or phone call at least 12 hours before the lecture. If you are participating in a university activity the supervisor of the activity should provide you with documentation. Others should provide a written explanation in their own words by email -- documentation from medical personnel is not required but you must document the absence. If you are unexpectedly sick or otherwise unable to attend due to an emergency, contact the instructor as soon as possible. If you miss a class for these justifiable reasons, arrange with a fellow student to get and digest the corresponding notes, and go to the instructor’s office hours for further help if needed.

While attendance will not be taken in every class, it will be sampled randomly at the discretion of the instructor. The basic participation credit that accounts for 5% in the final grading will be calculated using the sampled attendance records. Bonus points can be earned through the extended participation as described in the section on grading above.

Prior to each lecture, students are expected to complete the assigned reading. The reading materials for each lecture can be found in the Lecture Schedule above. Most of these readings are the primary textbooks’ sections that are closely related to the lecture topic, but some readings are chosen from other sources such as the supplementary materials specified. Note that the schedule is subject to change, and it is the responsibility of students to regularly check out the updated schedule. In addition, students are expected to maintain a professional and respectful classroom environment, for which students are suggested to:

Exams and Assignments

There will be two midterm exams and one final exam. There may also be assignments in the form of quizzes from which bonus points can be earned. Other than these exams and quizzes, the coursework is focused on a semester-long group project, which will be measured by milestones/deliverables. The objectives, requirements, and deadline of each milestone/deliverable will be communicated in class or/and on Blackboard. For each milestone, your group will be required to submit a written report, code, and/or test cases to demonstrate the project progress. Each member of the group will initially receive the same credit based on the quality and timeliness of group submissions, and will be later adjusted according to in-group peer evaluation by the end of the project. More details on the course project selection, milestones/deliverables, and evaluation method are provided in two dedicated documents (“project description” and “suggested project topics”).

You must take each exam during the assigned test period. Failure to do so will result in a score of zero. However, in extraordinary circumstances and at the discretion of the instructor, a make‐up exam may be offered. An advanced notice must be given to the instructor beforehand. Unless posted otherwise, assignment documents shall be submitted electronically. Typically, each submission to Blackboard will be a single PDF document; code and test cases will be submitted directly on the project repository.

Late submission policy

Late penalty is a flat 10% deduction per day. Late assignments may be turned up to one week after the original due date. An advanced notice must be given to the instructor via email at least 24 hours before the deadline for a late submission. The instructor may allow for late submissions without penalty if extenuating cases are explained in the notice email sent to the instructor.

Academic integrity / Honor code

The fundamental requirement for all student work in this class is: Unless otherwise explicitly permitted by the instructor, all work you turn in must be your own. Any instance of academic dishonesty, as defined in the WSU Student Handbook, in this class will be dealt with severely (typically by failing the class) and reported to the WSU Office of Student Conduct.


Note in particular that it is dishonest not only to copy another student's work, but to permit another student to copy yours. Nevertheless, realizing that students can assist each other in understanding general course material, there are limited ways in which student collaboration is permitted:

  1. You may communicate verbally with another student, as long as you do not communicate the answer or the content of what you are going to turn in, whether it be code or text. A good way to work in this regard is for the student providing help to ask guiding questions of the student needing help, letting them arrive at the answer themselves.
  2. You may draw diagrams and such on a whiteboard, chalkboard, or piece of blank paper to illustrate the verbal points made in 1), as long as you do not write what you are going to turn in.

It will be up to the discretion of the grader (if applicable) and instructor to determine if any assignment shows evidence of collaboration beyond these limits. Any attempt to circumvent the spirit of these rules will be treated as a violation of the fundamental requirement. If you are in doubt, do not give help to or request it from another student: That's what office hours are set for. Information on WSU Academic Integrity can be found at www.academicintegrity.wsu.edu/ and conduct.wsu.edu/, and the WSU Honor code is on https://provost.wsu.edu/tag/wsu-honor-code/. Please also read the EECS Academic Integrity Policy carefully. Use these resources to ensure that you do not inadvertently violate WSU's standard of conduct.


Reasonable accommodations are available for students who have a documented disability. Classroom accommodation forms are available through the Access Center (Washington Building 217; 509-335-3417). If you have a disability and need accommodations to fully participate in this class, please either visit or call the Access Center (Washington Building 217; 509-335-3417) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center. For more information, consult the webpage http://accesscenter.wsu.edu or email at Access.Center@wsu.edu.


Safety information

The Campus Safety Plan (http://safetyplan.wsu.edu) contains a comprehensive listing of university policies, procedures, statistics, and information relating to campus safety. The University emergency management website (http://oem.wsu.edu/) provides campus safety and emergency information. The emergency alternative site (http://alert.wsu.edu) provides information about emergencies and communication resources WSU will use to provide warning and notification during emergencies.

Classroom safety is also of paramount importance at Washington State University, and is the shared responsibility of the entire campus population. WSU urges students to follow the "Alert, Assess, Act" protocol for all types of emergencies and the "Run, Hide, Fight" response for an active shooter incident. Remain ALERT (through direct observation or emergency notification), ASSESS your specific situation, and act in most appropriate way to assure your own safety (and the safety of others if you are able). Please sign up for emergency alerts on your account at MyWSU.