Module 1: Introduction to Software Quality Assurance
This module introduces the student to the concepts of Quality Assurance (QA) and Quality Control (QC) and how they relate to avoiding and detecting software defects. Topics include the principles around QA and QC, traditional testing approaches, test-driven development, and common testing scenarios in the software development life cycle.
Lessons
Introduction to quality assurance and quality control
Traditional testing
Test Driven Development (TDD)
QA support in Visual Studio Team System
Storyboard – how to plan tests
Storyboard – how to manage test cases
Storyboard – how to achieve traceability to requirements
Demos
Scenario 1 – Traditional testing
Scenario 2 – Test Driven Development
Module 2: Assuring Software Quality in Team System
This module introduces Team Foundation Server and its support for the software development life cycle, focusing on team communication around quality assurance. Topics include an introduction to team projects, process templates, creating and managing work items, using version control, and the applicable process and product quality reports.
Lessons
Introduction to Team Foundation Server
Team projects
Process templates
Work items
Project portal
Version control
Reports
Lab
Create and configure a team project, configure version control, upload and manage various testing-related documents, and create and manage work items for our lab scenario
Module 3: Working with Test Projects
This module introduces the testing features and support found in the various editions of Visual Studio 2008. Topics include an introduction to test projects, test types, test lists, running tests, and managing test results.
Lessons
Testing support in Visual Studio
Test projects
Test types
Test lists
Ordered tests
Running tests
Managing test results
Lab
Create a test project, run pre-built tests, and evaluate the test results
Module 4: Ensuring the Quality of .NET Code
This module focuses on ensuring the quality of .NET code. Topics include features found in the Development Edition of Visual Studio Team System, specifically: unit testing, code coverage, data-driven testing, code analysis, code metrics, and techniques to extend your unit tests.
Lessons
Areas of a .NET application that should be tested
Unit testing
Writing and running unit tests
Testing private methods
Data-driven unit tests
Code coverage
Code analysis
Code metrics
nUnit migration/integration
Using mock objects
Techniques for avoiding defects in .NET code
Lab
Write and run various unit tests, calculate code coverage, perform code analysis, compute code metrics, integrate with nUnit and Rhino Mocks
Module 5: Ensuring the Quality of SQL Server Code
This module focuses on ensuring the quality of SQL Server code. Topics include features found in the Database Edition of Visual Studio Team System, specifically: database unit tests, testing stored procedures, testing functions, testing triggers, writing and running unit tests, and loading test data prior to testing.
Lessons
Areas of a SQL Server database that should be tested
Database unit tests explained
Writing and running database unit tests
Testing stored procedures
Testing functions
Testing triggers
Loading test data prior to testing
Techniques for avoiding defects in SQL Server code
Lab
Write and run various database unit tests and load test data prior to testing
Module 6: Ensuring the Quality of Web Applications
This module focuses on ensuring the quality and acceptance of web applications and services. Topics include features found in the Test Edition of Visual Studio Team System, specifically: recording web tests, using extraction and validation rules, testing AJAX components, advanced web testing techniques, and testing web services.
Lessons
Areas of a web application that should be tested
Web tests explained
Recording and running web tests
Extraction rules
Validation rules
Testing AJAX components
Data-driven web tests
Coded web tests for branching and looping
Extended web tests through plug-ins
Testing web services
Lab
Record a web test, add extraction and validation rules, test AJAX components, drive a web test from a data source, generate a coded web test, and test a web service
Module 7: Ensuring Quality of Service
This module focuses on ensuring the quality of service of an application in the areas of performance, load, and stress. Topics include features found in the Development and Test Editions of Visual Studio Team System, specifically: load tests, load testing a web test, load testing a unit test, analyzing load test results, and profiling application performance.
Lessons
Introduction to quality of service
Load tests explained
Load patterns and models
Creating and running load tests
Controllers, agents, and rigs
Distributed load tests
Extended load tests through plug-ins
Application profiling
Lab
Create and run load tests, analyze results based on different load patterns, install and configure a test load agent, profile a slow performing application
Module 8: Ensuring Software Meets Business Requirements
This module focuses on functional and acceptance testing topics, to ensure that business requirements were properly implemented. Topics include: features found in the Test Edition of Visual Studio Team System, specifically: manual tests, associating test results with requirements, using unit tests for acceptance testing, generic tests.
Lessons
Introduction to acceptance testing
User acceptance testing
Manual tests explained
Creating and running manual tests
Associating test results with requirements
Using unit tests for acceptance testing
Generic tests explained
Lab
Create and run manual tests to validate business requirements, run unit tests to validate business requirements, create and run a manual test
Module 9: Automating Quality Assurance
This module focuses on ways Visual Studio Team System 2008 can help assure the quality of your software automatically. Topics include: check-in policies, Team Foundation Build, build verification tests, continuous integration, regression testing, and build quality.
Lessons
Introduction to check-in policies
Testing check-in policy
Code analysis check-in policy
Custom path check-in policy
Team Foundation Build
Creating and queuing builds
Enabling build verification tests
Regression testing
Continuous integration
Determining build quality
Lab
Configure and use check-in policies, create and run automated builds, configure build verification tests, configure continuous integration, set build quality and notifications
Module 10: Defect Tracking
This module focuses on the process of identifying, triaging, reporting, and managing defects. Topics include: bug work item type, creating bug work items, triage, managing bug work items, and reporting.
Lessons
Introduction to defect tracking
Bugs vs. defects
Creating and managing defects
Querying and reporting defects
Lab
Identify defects in running software, create and manage defect work items, monitor quality using queries and reports