LECTURE 1: Intro. to Software Quality
Course info. What Causes Software Errors? What is Quality? McCall's Factor Model. What is Quality Assurance? Software Quality Assurance. Formal methods, testing, inspection, metrics. Achieving software quality. Slides:
[Download PDF]
LECTURE 2: Software Process I
Quality in context. Software process activities. The Waterfall model. The Prototyping model. Evolutionary development. The Spiral model. The Iterative Development Process (IDP). Slides:
[Download PDF]
LECTURE 3: Software Process II
The Object Oriented Development Process. The Microsoft Synch-and-Stabilize Approach.
Slides:
[Download PDF]
LECTURE 4: Software Process III
Software process improvement. The Defect Prevention Process (DPP). Software quality standards. Maturity models, CMM, SPR. Baldrige Quality Award, ISO 9000, ISO IEC 90003: 2004. Slides:
[Download PDF]
LECTURE 5: Software Process IV
Extreme Programming (XP). What is XP? What are the values and principles of XP? Why is it called extreme? Characteristics of XP. Addressing risks before they arise. XP in Practice: planning practices, programming practices, integration practices, and others. Slides:
[Download PDF]
LECTURE 6: Intro. to Software Testing I
Validation and Verification. Levels of Testing. Unit, integration, system, acceptance testing. Slides:
[Download PDF]
LECTURE 7: Intro. to Software Testing II
Testing in the Software Life Cycle. Test design, test strategy, test plans, test case design, test procedures. Black box vs. white box testing. Guest Lecturer: David Kelk, Slides:
[Download PDF]
LECTURE 8: Testing Methods - Black Box Testing I
Black Box method 1 - functionality coverage. Requirements partitioning. Experimental design. Choosing test inputs. Black box method 2 - input coverage testing. Exhaustive testing. Input partitioning. Shotgun testing. Input partition/shotgun hybrid. Robustness testing. Boundary testing. Slides:
[Download PDF]
LECTURE 9: Testing Methods - Black Box Testing II
Black box method 3 - output coverage testing. Exhaustive output testing. Output partitioning. Handling multiple input/output streams/files. Black box methods at different levels. Gray box testing. Black box unit testing. Test harnesses and stubs. Assertions in test automation, tools. Black box class testing (interface / object oriented testing). Traces. Implementing assertions. Black box integration testing. Slides:
[Download PDF]
LECTURE 10: Testing Methods - White Box Testing I
Role and kinds of white box testing. Code injection. Implementation - source, executable and sampling. White box static analysis. Code coverage methods. Statement analysis methods: statement coverage, basic block coverage. Slides:
[Download PDF]
LECTURE 11: Testing Methods - White Box Testing II
Code coverage methods. Decision analysis methods: decision (branch) coverage, condition coverage, loop coverage, path coverage. Data coverage methods. Data flow coverage. Slides:
[Download PDF]
LECTURE 12: Testing Methods - White Box Testing III (Mutation Testing)
Mutation testing, definition and role. Mutants: value, decision, statement mutations. Examples and coverage. Slides:
[Download PDF]
LECTURE 13: Testing in Practice
A discussion of testing culture and testing practices at two of the largest software development companies - Google and Microsoft. Slides:
[Download PDF]
LECTURE 14: Continuous Testing I
Software maintenance: corrective, adaptive and perfective maintenance. Continuous testing methods: functionality, failure and operational testing. Slides:
[Download PDF]
LECTURE 15: Continuous Testing II
Regression testing: purpose, method. Establishing and maintaining a regression test set. Observable artifacts: choosing, maintaining, normalizing, differencing. Version signatures. Regression test harnesses. A regression testing example: the TXL interpreter. Regression test organization, signatures and differencing for the TXL interpreter. Kinds of observations: functionality, performance, and internal diagnostic. Advantages and disadvantages of regression testing. Slides:
[Download PDF]
LECTURE 16: Inspections I
Introduction to Software Inspection & Inspection Processes. Reviews, walkthroughs and inspections. Inspection in the software process. Formal (Fagan) inspections: roles, reviewers. Code inspections: efficiency, cost effectiveness. Benefits of inspection. Role of inspection in quality control. Inspection process - planning, orientation, preparation, review meeting, rework, verification. Inspection on your own - the Personal Software Process (PSP). Effective inspections. Slides:
[Download PDF]
LECTURE 17: Inspections II
Code Inspection techniques: checklists, paraphrasing, walkthroughs. Lightweight code inspection practices, XP. Heavyweight inspection practices, Cleanroom development. Continuous code inspection in XP: pair programming, code refactoring. Refactoring process, catalogs and rules. Continuous design improvement. Slides:
[Download PDF]
LECTURE 18: Software Metrics I
Software quality metrics - what they are, what they are for. Measurement basics - entities, attributes, measures. Assessment and prediction. Prediction models. A framework for software measurement. Slides:
[Download PDF]
LECTURE 19: Software Metrics II
Product quality metrics. External metrics - faults, failures, defects. Defect density metric. Internal metrics - LOC, functionality, complexity. Complexity metrics - Halstead Software Science, McCabe cyclomatic complexity, flow graph metrics. Process metrics - predicting software cost. COCOMO effort and time prediction. Regression based cost estimation. Specification-based size metrics. Function Points, FP analysis. Slides:
[Download PDF]
LECTURE 20: Alternative Verification & Validation I (Static Analysis)
Using static analysis techniques to assess software quality. Static analysis fault detection tools: FindBugs and Lint. A case study of the SCRUB tool at NASA JPL. Slides:
[Download PDF]
Comments
Post a Comment