3 Cr. (Hrs.:3 Lec.)
Using industry standards, a text and other materials, this course will focus on understanding software verification and validation (V&V) concepts, processes, techniques and tools. In addition students will practice several V&V techniques in class exercises and lab assignments. Prerequisites: ESOF 322 (2nd)
E1. Students understand what it means to "engineer" software. (ESOF 322)
E2. Students understand quality issues such as usability, reliability, availability, maintainability, portability, and performance, and how these must be considered throughout the life cycle. (ESOF 322)
E3. Understand the importance of software inspections throughout the life cycle, and will have performed several such inspections. (ESOF 322)
R1. Develop unit tests to thoroughly test methods, including database interactions, in at least two programming languages.
R2. Perform value-based, state-based and interaction-based unit testing.
R3. Perform test-driven development in at least two different programming languages.
R4. Perform V-model software development, including acceptance, system, integration and unit testing.
R5. Be familiar with common testing terms such as black box and white box testing, equivalence partitioning, boundary value analysis, and alpha and beta testing.
R6. Understand concepts related to data flow analysis and its application to distributed systems.
R7. Accurately describe the importance of collecting and analyzing effort, defect, and defect severity data. (EAC-g, i, k, 1)