Rabb School DL Standards, Syllabus Template Brandeis University Division of Graduate Professional Studies Rabb School of Continuing Studies

Course Syllabus

I. Course Information

1. Course Name: Foundations of Software Quality Assurance 2. Course Number: 162RSEG-125-1DL 3. Course Start & End Dates: May 25, 2015 -- August 22, 2016 Distance Learning Course Week: Wednesday through Tuesday 4. Instructor’s Name and Contact Information  Name: Yongge Wang  Title: Associate Professor  Email: [email protected]  Phone:  Office Hours/Availability: available through email M-F

5. Document Overview This syllabus contains all relevant information about the course: its objectives and outcomes, the grading criteria, the texts and other materials of instruction, and of weekly topics, outcomes, assignments, and due dates.

Consider this your roadmap for the course. Please read through the syllabus carefully and feel free to share any questions that you may have. Please print a copy of this syllabus for reference.

6. Course Description  Catalog Description and Course Outcomes This course covers a broad range of topics related to software quality assurance (SQA). The course explores the combined application of a variety of SQA components, including: SQA activities typically performed by external participants; extension of SQA activities to project schedules and budget control; SQA implementation issues, SQA risk management considerations; and costs associated with SQA. At the end of the course, students will be able to: Foster the development, adoption and sustained use of standards of excellence for software engineering practices, communicating the need for comprehensive SQA requirements to senior management. Define and employ SQA processes and techniques to ensure that reliable software is delivered to end users. Supporting outcomes:

1 Examine the environments for which SQA methods are developed. Determine SQA objectives. Illustrate the need for comprehensive SQA requirements. Outline the considerations guiding construction of an organization's SQA system. Determine software quality factors. Explain SQA standards and assessment components. Illustrate the contract review process and its stages. Develop quality plans and quality plan objectives. Describe verification, validation, and qualification. Determine design review procedures. Analyze software testing strategies. Illustrate software testing implementation processes. Examine SQA tools for assuring the quality of external participant's contributions. Define corrective and preventative actions.  Additional Description Testing techniques go as far back as software development itself, and as we will learn from Google, testing might be inseparable from software development. In this course we will cover the following topics: Importance of quality software systems, Process, roles, and management aspects of QA, Software life cycle and quality assurance process, ST&QA plans, problem analysis and reporting systems, Validation and verification, Team Review techniques (e.g., Fagan inspection), Unit testing with JUnit, CUnit or CppUnit, Black-box testing, White-box testing, QA cost analysis and risk assessment, Industry standards (TQM, 6-Sigma, ISO etc), Maintenance testing technologies and tools , Release management, and alpha/beta testing I have tried to make the procedures that we will use clear to everyone through this syllabus and through the materials posted in LATTE. Please familiarize yourself with these materials and feel free to ask me any questions that you may have. I will work with you all to help you learn and apply these new skills, and I encourage you to ask questions when you are unsure and answer questions when you have the responses; in explaining how to approach problems, we learn more ourselves. We can all learn from each other, and I hope that we’ll have open and enriching discussions as we move forward!  Prerequisites: None 7. Materials of Instruction

a. Required Texts Software Testing and Analysis: Process, Principles and Techniques by: Mauro Pezzand and Michal Young, John Wiley & Sons 2008 (510 pages),ISBN:9780471455936 b. Required Software  For some class project, we will give links for downloading the required software c. Recommended Text(s) / Journals  None d. Online Course Content

2  This section of the course will be conducted completely online using Brandeis’ LATTE site, available at http://latte.brandeis.edu/. The site contains the course syllabus, assignments, discussion forums, links/resources to course-related professional organizations and sites, and weekly checklists, objectives, outcomes, topic notes, self- tests, and discussion questions. Access information is emailed to enrolled students before the start of the course. To begin participating in the course, review the Week 1 Checklist found in the Week 1 block.

8. Overall Course Objectives The course is intended to provide students with an understanding of:

3 o Appreciate the importance of producing quality software systems

o Understand the process, roles, and management aspects of software testing, quality assurance, and maintenance

o Understand the relationship between the software life cycle and the quality assurance process

o Develop software testing and quality assurance plans, design problem analysis and reporting systems, and carry out risk analysis

o Understand the main differences between software validation and verification, and software quality assurance versus software quality control.

o Perform document/specification/code reviews with well organized team and techniques (e.g., Fagan inspection)

o Carry out unit testing with JUnit, CUnit or CppUnit

o Carry out Black-box testing (students may use software testing tools such as Holodeck, combinatorial test case generation tools, etc.)

o Carry out white-box testing. The student should be able to carry out static and dynamic analysis of software, and carry out coverage analysis using control flow, data flow, and other approaches (e.g., cyclomatic complexity), this will normally require students to design efficient test case suites with appropriate stopping criteria.

o Evaluate the cost of quality assurance

o Make use of industry standards such as TQM, Six Sigma, and ISO

o Learn about maintenance testing technologies and tools

o Know how to build up releases, and carry out alpha/beta testing

o Know how to perform final release and package and maintain the software after final release

9. Course Grading Criteria

 Description of work expectations for assignments  Initial testing assignment  White Box testing  Black box testing  Junit testing  Discussion Participation requirements; Given the lack of the traditional classroom environment, all student participation will be done online via LATTE. Each weekly has a page that includes "Discussion Topics". These are a series of questions or points to consider regarding the course materials posted that week.

4 To earn full credit for the Participation component of the grade, participants will be expected to complete the following during weeks 1 through 10 of the course: Respond to (at least) two Discussion Topics each week; respond to one topic by end of day Saturday (midnight EST) and one by end of day Monday (midnight EST). These responses should be substantive in length and include your own insights into the topics. Any relevant sources used within the post should be cited appropriately. Post (at least) two other substantive messages to the Discussions by end of day Tuesday (midnight EST) each week. These other posts may be responses to the discussion topic messages of others, they may be questions or comments about the topics covered during the week, or they may be responses to the posts of other groups. The assumption is that you will read through the posts of your classmates to enhance your learning; respond to those of your choice, based upon your own experiences and insights. Please make sure to post on at least 3 different days of each course week (Wednesday through Tuesday). Discussion Evaluation Criteria: A maximum of 10 points can be earned for discussion participation each week. Substantive on-time responses to the original discussion questions and substantive follow-up posts earn 2.5 points each. Additional discussion participation beyond the required 4 posts is also encouraged. While all the discussion and assignment due dates in the syllabus and in Latte are stated to be midnight EST, students in time zones other than EST can submit their work by midnight in the time zone they reside in.

 Percentages earned per assignment; for example:

Percent Component

30 % Discussions/On-line participation:  Each week respond to at least 2 Discussion Questions, 1 by Saturday and 1 by Monday and post at least 2 other substantive messages by Tuesday. Post on at least 3 different days of each course week (Wednesday through Tuesday).

10% Initial testing assignment 20% White Box testing 20% Black Box testing 20% Junit testing

5 II. Weekly Information Week 1 May 25-31, 2016 Objectives Overview of testing techniques Outcomes At the end of week 1, students will be able to define and employ SQA processes and techniques to ensure that reliable software is delivered to end users, and have an understanding of:

 QA through a continuous improvement process certification, andquality process standards  Software bugs and the consequences  contract review process and its stages, verification and validation

 Undecidability issues related to software testing Discussions (for DL) two discussion questions Readings  Chapters 1 and 2 of textbooks Assignments / No Assessments/ Self-Assessments

Week 2 June 1-June 7, 2016 Objectives Test and Analysis Activities Within a Software Process Outcomes At the end of week 2, students will be able to foster the development, adoption and sustained use of standards of excellence for software engineering practices. In particular, students will have an understanding of the following standards:

 Customers’ viewpoint of QA  ISO9000

 CMM/PCMM/CMMI/6Sigma Discussions (for DL) two discussion questions Readings  Chapters 3 and 4 Assignments / Simple web app test assignment Assessments/ Self-Assessments

Week 3 June 8-June 14, 2016 Objectives Software Inspection and Analysis Outcomes At the end of week 3, students will be able to develop quality plans and quality plan objectives, examine the environments for which SQA methods are developed, and have an understanding of:

6  Software inspection and analysis, Fagan review methods

 IEEE 829 Standard for Software Test Documentation methodologies and frameworks Discussions (for DL) Two discussion questions Readings Chapters 18 and 19 of textbook Assignments / No Assessments/ Self-Assessments

Week 4 June 15-June 21, 2016 Objectives JUnit testing and cyclomatic complexity Outcomes At the end of week 4, students will be able to examine SQA tools for assuring the quality of external participant's contributions, and have an understanding of and be able to carry out:

 White-box testing

 JUnit/CUnit/CppUnit frameworks Discussions (for DL) Two discussion questions Readings Cyclomatic complexity website, Junit testing lecture notes Assignments / Junit testing assignment (due at the end of week 5) Assessments/ Self-Assessments

Week 5 June 22-June 28, 2016 Objectives Unit testing Outcomes At the end of week 5, students will have an understanding of:

 Unit testing  test case design and coverage analysis (e.g., control flow, data flow, and complexity based approaches)

 Test case design for unit testing Discussions (for DL) Two discussion questions Readings Chapters 9, 12,13 of the textbook Assignments / Junit testing assignment due Assessments/ Self-Assessments

Week 6 June 29-July 5, 2016

7 Objectives Black-box testing Outcomes At the end of week 6, students will have an understanding of:

 Functional Testing and Black Box Testing  Fault model for black-box testing  software environments and capabilities  software security testing  software testing tools such as Holodeck

 fault-based testing Discussions (for DL) Two discussion questions Readings Chapters 10 and 16 Assignments / Black box testing assignment (due in week 7) Assessments/ Self-Assessments

Week 7 July 6-July 12, 2012 Objectives Combinatorial testing and pair-wise testing Outcomes At the end of week 7, students will have an understanding of:

 combinatorial testing  pair-wise testing

 category based testing Discussions (for DL) Two discussion questions Readings Chapter 11 Assignments / Black-box testing project due Assessments/ Self-Assessments

Week 8 July 13-July July 19, 2016 Objectives Web application testing Outcomes At the end of week 8, students will have an understanding of:

 web functionality, usability, accessibility, printability, and security testing  web unit testing based on htmlUnit and urlUnit frameworks

 web application security testing. Discussions (for DL) Two discussion questions

8 Readings Lecture notes and slides Assignments / White box testing project (due in week 10) Assessments/ Self-Assessments

Week 9 July 20-July 26, 2016 Objectives Project management and risk assessment Outcomes At the end of week 9, students will have an understanding of:

 basic project management principles  contrast general project management and test management

 steps for integrating the testing activities into the development methodology Discussions (for DL) Two discussion questions Readings Chapters 20, 21, 22 Assignments / White box testing project (due in week 10) Assessments/ Self-Assessments

Week 10 July 27-August 2, 2016 Objectives OO testing Outcomes At the end of week 10, students will have an understanding of:  object-oriented testing techniques  formulation of a systematic approach to testing object-oriented software, considering both process and technical issues Discussions (for DL) Two discussion questions Readings Chapter 15 Assignments / White box testing project (due this week) Assessments/ Self-Assessments

III. Course Policies and Procedures

1. Orientation From the Home Page of the course site, participants are expected to read all of the Orientation Materials available. These are located within the GPS Resources block.

9 Asynchronous Work All required work for the course may be done asynchronously; i.e., participants can login to the course, read/download materials, post to the Discussions, and submit assignments throughout the course week. Please carefully follow syllabus and the weekly checklists to help manage your time throughout the course week; once we enter week 2, participants typically become much more comfortable with the pace and flow of the course.

At one or more points throughout the semester, I will make myself available for synchronous Chat sessions using the course site’s Chat Room. These sessions will be open Q&A, and they are optional. I will post a log of each chat session so that those participants who did not participate can view the recorded synchronous discussions.

Late Policies Participants are encouraged to respond to all posts and to complete all assignments by the due dates provided. This will help ensure that all stay in synch with the pace of the course and realize the anticipated outcomes of the course. For discussion questions and participation, late submissions will not be accepted. Students who fail in submitting their individual projects by the specified deadlines will receive a reduced mark, on the basis of a 33% reduction for every day after the deadline (regardless of whether it is a working day or not). Projects submitted three days after the deadline will not be graded and the students will receive a 0 mark. If you find that you cannot complete the assignments or posts for a given week, please contact me in sufficient advance and an extension of the deadline for individual projects may be granted based on the justification.

Work Expectations Students are responsible to explore each week's materials and submit required work by their due dates. On average, a student can expect to spend approximately 10 - 14 hours per week reading, participating in discussions and completing assignments. The Assignment Tool/Dropbox within LATTE will be used for assignment distributions and submissions.

Grading and Feedback

Grades are not given but are earned. Students are graded on demonstration of

knowledge or competence, rather than on effort alone. Each student is

expected to maintain high standards of honesty and ethical behavior.

10  How points and percentages equate to grades 100-94 A 76-73 C 93-90 A- 72-70 C- 89-87 B+ 69-67 D+ 86-83 B 66-63 D 82-80 B- 62-60 D- 79-77 C+ 59 or < F

Confidentiality

We can draw on the wealth of examples from our organizations in class discussions and in our written work. However, it is imperative that we not share information that is confidential, privileged, or proprietary in nature. We must be mindful of any contracts we have agreed to with our companies. In addition, we should be respect our fellow classmates and work under the assumption that what is discussed here (as it pertains to working of a particular organizations) stays within the confines of the classroom.

For your awareness, members of the University's technical staff have access to all course sites to aid in course setup and technical troubleshooting. Program Chairs and a small number of Graduate Professional Studies (GPS) staff have access to all GPS courses for oversight purposes. Students enrolled in GPS courses can expect that individuals other than their fellow classmates and the course instructor(s) may visit their course for various purposes. Their intentions are to aid in technical troubleshooting and to ensure that quality course delivery standards are met. Strict confidentiality of student information is maintained.

IV. University and Division of Graduate Professional Studies Standards

Please review the policies and procedures of Graduate Professional Studies, found at http://www.brandeis.edu/gps/students/studentresources/policiesprocedures/index.html. We would like to highlight the following.

Learning Disabilities

If you are a student with a documented disability on record at Brandeis University and wish to have a reasonable accommodation made for you in this course, please contact me immediately.

Academic Honesty and Student Integrity

Academic honesty and student integrity are of fundamental importance at Brandeis University and we want students to understand this clearly at the start of the term. As stated in the Brandeis Rights and

11 Responsibilities handbook, “Every member of the University Community is expected to maintain the highest standards of academic honesty. A student shall not receive credit for work that is not the product of the student’s own effort. A student's name on any written exercise constitutes a statement that the work is the result of the student's own thought and study, stated in the students own words, and produced without the assistance of others, except in quotes, footnotes or references with appropriate acknowledgement of the source." In particular, students must be aware that material (including ideas, phrases, sentences, etc.) taken from the Internet and other sources MUST be appropriately cited if quoted, and footnoted in any written work turned in for this, or any, Brandeis class. Also, students will not be allowed to collaborate on work except by the specific permission of the instructor. Failure to cite resources properly may result in a referral being made to the Office of Student Development and Judicial Education. The outcome of this action may involve academic and disciplinary sanctions, which could include (but are not limited to) such penalties as receiving no credit for the assignment in question, receiving no credit for the related course, or suspension or dismissal from the University.

Further information regarding academic integrity may be found in the following publications: "In Pursuit of Excellence - A Guide to Academic Integrity for the Brandeis Community", "(Students') Rights and Responsibilities Handbook", AND " Graduate Professional Studies Student Handbook". You should read these publications, which all can be accessed from the Graduate Professional Studies Web site. A student that is in doubt about standards of academic honesty (regarding plagiarism, multiple submissions of written work, unacknowledged or unauthorized collaborative effort, false citation or false data) should consult either the course instructor or other staff of the Rabb School Graduate Professional Studies.

University Caveat

The above schedule, content, and procedures in this course are subject to change in the event of extenuating circumstances.

12