When implementing changes in methods and approaches, we may slide back into old test habits, or leave methods behind rather than transition from them. We may throw everything away and do a wholesale replacement without appreciating what really needs to change. Most testing practices work, but only within appropriate development contexts. This program will contrast traditional against Agile testing, highlighting what changes we must make to apply the best testing principles in the new role that we will play. Agile testing is not a separate service, but an integrated part of the development team. This two-day course will introduce you to the Agile Testing Process, and explore Agile testing practices that you can immediately take from the classroom into the office with newfound confidence.
Building on traditional risk-based test practice, we are now challenged by incremental delivery. To address but not inhibit Agility, we examine concepts like pair testing and strengthening relationships in a team setting to build a sense of common purpose. Working in parallel with developers eliminates hand-offs and late stage testing, and enables incremental confirmed component delivery. This program builds on what we know and adapts to what we need … Agile delivery. Agile testing opens new areas of opportunity to build strength in product quality, process improvement and test confidence.
What you will learn:
- 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.
- Learn about effective Agile testing and quality practices to improve software quality delivery.
- Understand the various quadrants associated with software testing and the difference between business facing and technology facing testing.
- Get exposure to Unit Testing and Test Driven Development techniques to improve the process of ‘building it right.’
- Learn how to improve how you do acceptance and functional testing to verify you are ‘building the right thing.’
- Embrace Continuous Integration to accelerate defect detection and correction and lower integration costs.
- Learn high-speed testing techniques to address risk.
- Understand how to transition your traditional testing methods to an Agile test approach.
- Address risk as a foundation for project delivery and use it to focus resources.
- Understand how much and where to thin your test process for speed without loss of certainty.
- Develop the skills and the team to effectively conduct Exploratory testing.
- Learn how to utilize defect and delivery knowledge as a means of a rapid Pareto base that can be relied upon by testers, development teams and management.
- Acquire appreciation for the role of automation as an expedient support tool.
- Understand the concept of Pairwise testing and how a subset of our test suite, when pragmatically developed, can return a higher confidence yield.
- Get exposure to a proper understanding of the Agile team role and how it places a challenge on traditional, end-stage service delivery.
- Discover low cost and highly effective tools for the tracking and managing of testing resources across the entire development team.
- Get exposure to collaborative development vehicles to facilitate test resource coordination (SharePoint,Wikis, Agile project tools…).
- Embrace User Stories and how these micro requirement documents bear significant contributory value for testers.
- Develop an approach that will ensure regression test capabilities arising from the Agile testing enterprise.
- Understand the value of ‘chunks’ as a way of managing work delivery and facilitate result summation.
- Learn about open source and commercial tools that should/could be used to support testers.
- Become aware of the shift in roles in the development-test-business owner community and how collaborative delivery makes sense.
- Learn how to improve the requisite skill sets you and your team will need to become truly adaptable and agile.
Who should attend:
- Quality Analysts & Engineers
- Software Test Leads & Testers
- Software Quality & Testing Managers
- Software Project Managers
- Software Engineering Managers
- Business Analysts
- Software Development Managers
- IT Managers
Part 1: Agile Testing Mindset
The 12 Principles of the Agile Manifesto establish guiding principles for not only the Agile movement but Agile testing as a discipline. The Agile mindset includes: Quality is not “owned” by a particular role in Agile; Testers become facilitators of the team’s quality efforts; Agile testing provides critical insights and feedback into the software process. This topic helps learners understand how the Agile Manifesto is realized within an Agile testing process and approach, and to adopt the requisite Agile mindset.
- Overview of Agile Testing
- Origins of Agile Testing
- Agile Testing v. Traditional Approaches
- Mindset & Culture
- Agile Testing Principles
- Whole Team Approach
- Building Quality In
- Continuous Improvement and Feedback
- Ingraining The Agile Testing Mindset (Hands-on Exercise)
Part 2: Testing Techniques
Testing activities can be broken into various categories (or Quadrants) of testing based on their purpose and value. Automated testing can be performed at various levels (the automation pyramid) within a software application, and appropriate testing techniques must be applied to each. This topic provides the learner with a sound understanding of the purpose of various categories of testing, opportunities for automation, and testing techniques so they can be applied appropriately and at the right time within an Agile environment.
- Categories of Testing
- Agile Testing Quadrants of Categories
- Automation Pyramid – Introduction
- Testing Techniques
- Collaborating with Developers
- Unit and Component Testing
- Pairing Between Developer and Tester
- Example Driven Development
- Acceptance Test-Driven Development (ATDD)
- Behavior-Driven Development (BDD)
- Spec by Example
- Feature and Story Testing
- User Story Testing
- Feature Testing
- Exploratory Testing
- Non-Functional Testing
Part 3: Agile Testing Process
Testing during an Agile project is team-oriented, so it is common for every member of the team to provide some level of testing support. This includes the Product Owner and other Business Representatives and the programmers in addition to the testers. This topic provides the learner with an understanding that within an Agile project, the entire project team is responsible for testing activities, with a specific focus on how this affects specific roles.
- Roles and Responsibilities
- Team-Based Testing Approach
- Typical Business Representative Role in Testing
- Typical Programmer Role in Testing
- Typical Tester Role in Testing
- Role of Test Managers in Agile
- Test Strategy and Planning
- Different Strategies Based on Levels of Precision
- During Iteration Planning/Kickoff
- Lightweight Test Plan Documentation
- Defect Tracking and Management
- Results Reporting
- Test Metrics
- Regression Tests
- Successful Delivery
- Time-Boxed Delivery
- Continuous Delivery
- Post-Development Test Cycles
- Iteration Wrap-Up
- Definition of a Release/End Game
- User Acceptance Test (UAT)
- System-Wide and Cross-Team Testing
- Post-Release Testing
- Documentation for Regulatory Requirements
- Test Environments and Infrastructure
- Typical Environments for Test
- Build Pipeline
- Automated Builds
- Testing the Proper Build
- Test Data Management
- Working on Distributed Teams
- Distributed Team Communication
- Distributed Team Coordination
REGISTRATION: There is no obligation or payment required to enter the Registration for an actively scheduled course. We understand that you may need approvals but please register as early as possible or contact us so we know of your interest in this course offering.
SCHEDULING: If this course is not on the current schedule of open enrollment courses and you are interested in attending this or another course as an open enrollment, please contact us at (410)956-8805 or firstname.lastname@example.org. Please indicate the course name, number of students who wish to participate. and a preferred time frame. ATI typically schedules open enrollment courses with a 3-5 month lead-time. To express your interest in an open enrollment course not on our current schedule, please email us at email@example.com.