== CIS*4150 Software Reliability and Testing == [From the Course Description in the Undergraduate Calendar] This course serves as an introduction to systematic methods of testing and verification, covering a range of static and dynamic techniques and their use within the software development process. Concepts such as defining necessary reliability, developing operational profiles, techniques to improve and predict software reliability, preparing and executing tests, black box testing, white box testing, unit testing, system testing, and integration testing will be explained. == Skills and knowledge students should have prior to beginning the course: == * Prerequisites * CIS*3750 or CIS*3760 * Expected background knowledge * Java programming * Object Oriented Design * Requirements and Design specification experience * UML (class diagrams, flow charts) * Group work and collaboration on a large project == Course Topics: == * Software Reliability Fundamentals * Fundamentals of Testing and Analysis * Finite and Data Flow Models * Test Case Selection * Functional, Combinatorial, Structural, Data Flow Testing * Testing Object Oriented Software * Testing GUIs * Security and Performance Testing * Testing Stochastic Systems == Course Format: == * Lecture format * two one-hour lectures * Online materials * All slides, assignments and project instructions and submissions, and course communication will be through a Moodle course site * Labs * Two-hour weekly labs have been scheduled * They will be used as need for project organization and demonstrations as well as supplemental lectures material * Lab time will be used approximately 6 to 9 times during the semester == Method of Evaluation: == * Number of Assignments: 3 * Individual assignments that accompany two of the group project milestones * One literature survey to be done during the second half of the course * Number of Graded Labs: None - but project demonstrations are done during lab time * No Quizzes * No Midterm * Course project: Large course group project with multiple milestones throughout the semester * Final Exam: Yes * Group work: Yes, on the course project * Programming: The course project involves a great deal of coding, with a fair bit of supplementary documentation * Written documents? Yes, both for the project, the assignment write-ups and for the literature survey