Organization

Trainer

This course fulfills the Scrum elective requirement on the Certified Scrum Developer track.

This course fulfills the Introductory Scrum requirement on the Certified Scrum Developer track. It is not a CSM course.

Transition sound traditional test practices into an Agile development environment. Just enough, just in time, with responsive high level quality.

Learn how to:

Understand the key differences between traditional and Agile testing practices

Learn about the different quadrants of Agile testing and how they are used to support the team and critique the product

Get exposed to the different levels of test automation and understand what the right mix is to accelerate testing

Operate in a time constrained development cycle without losing testable value

Capitalize on test development through use & reuse management

Integrate team testing into Agile projects

Engage stakeholders in quality trade-off decision-making

Coach story card contributors in test case construction

Gain exposure to automation support opportunities

This course will demonstrate how traditional test practices impede the speed of software delivery and how an Agile testing approach enhances delivery speed and improves overall quality. Learning the goals of Agile will help you transition, implement and monitor testing in an Agile testing environment.

Agile principles add value to your organization.Building on traditional risk-based test practice we are now challenged by incremental delivery. To address, and not inhibit, we examine the concept of pair testing. Strengthening relationships in a team setting, helps to build a sense of common purpose. Working in parallel eliminates hand-offs, late stage testing, and an opportunity for incremental confirmed component delivery. This program builds on what we know, and adapts to what we have… Agile delivery. Traditional methods become a barrier under new development methods and place further pressure on the test team to feel a sense of value compromise. Agile testing opens new areas of opportunity to build strength in product quality, process improvement and test confidence.

Learn to transition to Agile testing practices across the entire release cycle.Despite changes in methods and approaches, we continue to slide back into old test habits. Often we leave methods behind, rather than transition from them. We throw everything away and do a wholesale replacement without putting to bed the reasons for change. Most testing works, but only within the development context that it was framed. The program will reflect traditional against Agile testing, what changes we must make and the role that we will play. Testing is not a service, but an integrated part of the development team.

Acquire the practical skills and knowledge to successfully test an Agile software project.This 2-day course will introduce you to Agile testing methods, and explore their use so that you can immediately step from the classroom into the office with new found confidence. We will discuss the roles, methods, tools and technologies that can be relied upon to deliver speed and optimum flexibility. You will start to feel a new sense of flexibility, confidence and enthusiasm (maybe for the first time in your entire development career).

I. Agile TestingWe will discuss the testing and it's role in software quality. Quality is the collective responsibility of the team from business analyst to developer to tester to customer. Traditional waterfall "over-the-wall testing" can be inefficient and frustrating. We will discuss typical challenges and pitfalls in this traditional approach and start to contrast how Agile Teams test differently.

Poor Quality creates Drag

Integrating the Team into an Agile Testing mindset

Understand hard & soft constraints to adopting Agile Testing

Getting the Customer to participate in Quality decisions

II. Testing PracticesThe benefits that various types of testing provide to the team will be reviewed. Additional discussion will focus on the how and what to automate to shorten feedback cycles.

Testing Quadrants

Automation

Unit Tests

Integration Tests

Acceptance Tests

Functional Tests

III. Quality PracticesUnderstanding that getting feedback is as important as testing. We will discuss techniques that provide feedback on the quality of software and the effectiveness of the process.

Pairing & Collaboration

Inspections

Reviews

Demos

IV. Unit Testing & Test Driven Development (TDD) We will introduce Unit Testing and Test Driven Development. The benefits and process of TDD and how it can lead to better overall design and simplicity and engage the Developer in the test processing will be discussed.

Unit Testing Principles

Test First vs. Test Last

Unit Testing Legacy Applications

TDD Rhythm: Red, Green, Refactor

TDD influence on Design

Supporting Continuous Refactoring

V. Continuous IntegrationThe concept of Continuous Integration and the CI Attitude will be discussed. Continuous Integration provides an essential role in maintaining a continuous process for providing feedback to the team.

Discuss the Attitude of Continuous Integration

Benefits & Practices of Continuous Integration

Continuous Feedback

Continuous Builds

Continuous Inspections

Continuous Testing

Continuous Deployments

VI. Acceptance TestingThe discipline of Acceptance Testing can lead to better collaboration with both the customer and the team. Automating Acceptance Tests can provide an invaluable tool to support the creation higher quality software and continue to support the team from story to story and sprint to sprint.

VIII. Hands-on Critiquing the ProductEverything can't be automated, nor should it. We will discuss manual technique that will help us critique the product and provide valuable feedback. We will discuss when and how these testing techniques should be used effectively.

Exploratory Testing

Scenario Testing

Usability Testing

User Acceptance Testing

IX. Using Tools to Test Complexity and Critique the Product Tools can be used to testing complex, critical attributes of the software. We will discuss when and tools should be used to test the complex, critical qualities of software.

Performance & Load Testing

"ility" Testing

Security Testing

X. High-Speed Testing TechniquesWe'll introduce some techniques that can speed the testing process and provide faster feedback to the team and customer.

Risk Based Testing

Pairwise Testing

Pareto Technique

XI. Iterating to Testing AgilityHow do we ever get there? We will discuss pragmatic techniques to iterate your team and organization to Testing Agility. We will discuss and craft a roadmap for your team and organization based off the practices and techniques discussed.