教学目的、要求
This course will focus on how to build quality into software rather than just controlling quality at the end, and provides a framework for understanding the application of software testing and SQA processes and techniques throughout the software development life cycle. This course will address technical and management views of software testing and software quality assurance (SQA): fundamental concepts and basic mathematical knowledge; testing techniques; levels of testing; test organization; testing process management and improvement; models for quality assurance; methods and techniques for assessing software quality. This course also describes the economics of software quality, emphasizes the tradeoffs between software cost, schedule time, and quality, and the integration of quality into the software development process. This course provides the student with an in depth knowledge of concepts, techniques, and processes associated with software testing and SQA.
预修课程
《高质量软件工程过程》
教材
1. Paul C. Jorgensen, Software Testing: A Craftsman’s Approach, 2nd Edition, CRC Press, 2002
主要内容
Topic 1 Overview and Basics Chapter 1 Overview and Basics Software Quality; General Quality Principles; Software Quality Assurance (SQA); SQA Activities in Context; Cost of Software Quality Topic 2 Software Testing Chapter 2 Testing Fundamentals Basics of Software Testing; Testing Activities and Context; Examples Used In Testing Discussions; Discrete Mathematics for Testers; Graph Theory for Testers Chapter 3 Functional Testing Boundary Value Testing (BVT); Boundary Value Analysis; Equivalence Class Testing; Decision Table Based testing; Retrospective on Functional Testing Chapter 4 Structural Testing General Concepts; Path Testing; Data Flow Testing; Retrospective on Structural Testing Chapter 5 Integration Testing Process Models and Integration Testing; The SATM System Example; Decomposition Based Integration; Call Graph Based Integration; Path Based Integration; Case Study - NextDate Program Chapter 6 System Testing Threads; Basis Concepts for Requirements Specification; Finding Threads; Structural Strategies for Thread Testing; Functional Strategies for Thread Testing; SATM Test Threads; System Testing Guidelines; Additional System Test Categories Chapter 7 Other Testing Techniques Exploratory Testing; Error Guessing & Mutation Testing; OO Testing; GUI Testing; Web-based Testing; Testing of Embedded Software Chapter 8 Software Testing Automation Test Automation Context; Capture-Replay and Test Automation; Scripting Techniques; Other Issues of Test Automation; Choosing a Tool to Automate Testing Topic 3 Quality Assurance Beyond Testing Chapter 9 Reviews and Audits Basic Review Principles; A “Generic” Inspection Process; Inspection Critical Success Factors; SQA Audit; Assessment and Standard Chapter 10 Statistical Process Control & Software Reliability Fundamental Principles; Statistical Process Control (SPC) for Software; Understanding Six Sigma; Six Sigma Methodologies; Roles and Responsibilities of Six Sigma; Overview of Software Reliability; Software Reliability Engineering (SRE) Topic 4 Software Quality Management Chapter 11 Software Quality Infrastructure Software Process Definition and Improvement; Software Configuration Management; SCM); Software Quality Measurement; Problem Reporting and Tracking Chapter 12 Organizing and Planning for Quality Assurance Organizing for Quality Assurance; Software Quality Assurance Planning; Test Planning and Test Documentation; Managing a Testing Group The Road Ahead…