CSCI-P 567 Software Quality Assurance
3 credits
- Prerequisite(s): None
- Delivery: On-Campus, Online
- Semesters offered: Fall (Check the schedule to confirm.)
- Equivalent(s): CSCI 58000
Description
Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds; worst-case and average-case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases). Graphs algorithms: spanning trees, shortest paths, connectivity, depth-first search, breadth-first search.
Topics
Introduction to software testing
- A perspective on testing
- Discrete math for testers
- Graph theory for testers
- Boundary value testing
- Equivalence class testing
Functional testing
- Decision table-based testing
- Path testing
- Data flow testing
- Retrospective on unit testing
- Life cycle-based testing
- Model-based testing
Integration/system testing
- Integration testing
- System testing
- Object-oriented testing
- Software complexity
Performance testing
- Model-based testing for systems of systems
- Exploratory testing
- Test-driven development
Intelligent testing
- A closer look at all pairs testing
- Evaluating test cases
- Software technical reviews
Learning Outcomes
- Solve various problems, ranging from searching and sorting to graph traversal and network flow, by applying greedy, dynamic programming, and divide-and-conquer algorithm design techniques, among others. CS 2
- Analyze the performance of algorithms using asymptotic analysis and analyze the trade-offs between time and space complexity. CS 2
- Prove problems as NP-complete, evaluate the implications of NP-completeness on algorithm design and efficiency, and solve NP-complete problems efficiently using techniques such as approximation and randomization. CS 2
- Communicate effectively about algorithm design and analysis, including presenting and justifying algorithmic choices and writing clear and efficient code. CS 2
- Solve real-world problems, such as optimizing supply chains or forecasting financial markets, through algorithm design and analysis. CS 6
- Evaluate the implications of algorithmic decisions on society. CS 7
Policies and Procedures
Please be aware of the following linked policies and procedures. Note that in individual courses instructors will have stipulations specific to their course.