Assuring Software Quality Using Visual Studio Team System 2008 Course

Course Code: IN 754
Course Abstract:

This three-day, instructor-led course provides students with the knowledge and skills to detect, manage, and avoid software defects during the application development life cycle. The student will learn how Visual Studio Team System 2008 supports traditional software testing, as a form of quality control, as well as best practice techniques for assuring the overall quality of software. Intended for software developers as well as dedicated testers and QA professionals, this course will cover all aspects of both process and tools relating to test case management, Visual Studio test projects, unit testing, web testing, load testing, manual and generic tests, as well as techniques to automate software quality assurance.

Audience:

This course is designed for individuals who are developers, testers, and other QA professionals who are involved in defining, assuring, and increasing the overall quality of a software application.

 

Some portions of this course focus on the quality of .NET and SQL Server code. All source code will be provided, and no knowledge of C# or T-SQL will be required. Also, some portions of this course illustrate features found only in certain editions of Visual Studio Team System 2008.

Duration: 3 days
Learning Outcomes:

Upon completion of this course, the participant will be able to:

 

> Understand the importance of software quality assurance

> Use techniques to detect and avoid defects

> Understand the typical QA scenarios, workstreams, and activities

> Design applications in a way that increase testability

> Know how Visual Studio Team System supports quality assurance

> Learn how to derive a test plan from requirements and associate test results

> Communicate with other team members using work items and the project portal

> Choose the appropriate test type in a test project

> Use the test list, test view, and test results windows to run and manage test results

> Ensure the quality of .NET code through unit testing, code analysis, and code metrics

> Understand when and how to use mock objects

> Ensure the quality of SQL Server code through database unit testing

> Load generated test data prior to database testing

> Ensure the quality of web applications by recording and running web tests

> Use web test extraction and validation rules correctly

> Test AJAX-enabled web sites and web services

> Create a web test that utilizes parameterized values from a database or spreadsheet

> Customize a web test by converting it to .NET code

> Extend a web test by using plug-ins

> Ensure applications meet quality of service requirements

> Create and use load tests for web and unit tests

> Choose the appropriate load test pattern and model

> Understand how test controllers, agents, and rigs can help distribute load tests

> Extend a load test by using plug-ins

> Profile an application to determine performance issues

> Understand software acceptance testing

> Use manual tests to validate business requirements

> Use unit tests for acceptance testing

> Use generic tests when appropriate

> Use check-in policies to ensure quality

> Use automated builds and build verification tests to ensure quality

> Enable continuous integration to support regression testing

> Create, manage, and report software defects

Course Topics:

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
Prerequisites:

Before attending this course, the student should have experience in developing and/or testing .NET, web, and/or SQL Server database applications. It would also be beneficial if the student has worked on a team-based software development project and is familiar with their organization’s Software Development Life Cycle

Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning