This three-day course will introduce you to contemporary testing principles and practices used by Agile teams to deliver high-quality increments of software on regular iterations.
This course is appropriate for all members of a software development team, especially those team members performing testing activities – regardless of skill level. This course also provides value for non-testers (managers, Scrum Masters, coaches, etc.) who want a better understanding of what Agile software testing involves.
You should take this class if any of these issues sound familiar:
- Release dates and budgets are missed due to low quality and bugs
- Testing activities are performed at the end of the sprint/iteration or release
- No collective ownership or collaboration exists between the developers and testers
- The team tests the wrong things at the wrong time
- No automated tests, no regression tests, and no idea of the quality of your software!
Students will work in teams on a common case study using Visual Studio Team Services to plan and track their work.
No technical skills or experience are required. All technical concepts will be explained during class.
All source code will be provided. Knowledge of Agile and Scrum is a plus.
Visual Studio Concepts:
- Visual Studio Team Services
- Team Projects
- Working and testing as a team
- Managing a backlog
- Planning a sprint
- Test case management
- Reporting a bug
- Creating/running a unit test
- Calculating coverage
- Concurrent testing (Live & NCrunch)
- Coded UI tests
- Selenium UI tests
- Web performance tests
- Load tests
- Exploratory testing
- Test and Feedback extension
- Installing and configuring agents
- Running an automated build
- Running automated tests
- Configuring Continuous Integration (CI)
- Avoiding technical debt
This course contains several modules, each covering a different set of Agile practices and related tools.
1. AGILE SOFTWARE TESTING
- Agile software development
- Agile testing behaviors
- Agile requirements and acceptance criteria
2. PLANNING AND TRACKING QUALITY
- Forcasting and planning a sprint
- Defining done, reporting bugs
3. DEVELOPMENT TESTS
- Unit testing, code coverage
- Test-Driven Development (TDD)
4. ACCEPTANCE TESTS
- Acceptance testing, integration testing, UI testing
- Performance testing, load testing, non-functional requirements
- Acceptance Test-Driven Development (ATDD)
5. EXPLORATORY TESTS
- Exploratory testing, testing “tours”, providing feedback
6. BUILD AND TEST AUTOMATION
- Automated building and testing, Continuous Integration (CI)
- Build and test using Visual Studio agents
7. DELIVERING QUALITY SOFTWARE
- Avoiding technical debt, defining and obeying a definition of 'Done'
- Overcoming common dysfunctions, attributes and behaviors of high-performance teams