We'll develop an understanding and road map to transition current testing methods to support the Agile paradigm (and correct short comings along the way). The goal is to provide solid managed lean testing. Appreciating the need to involve stakeholders in trade-off discussions and gain their support is crucial.
a. Modern SDLC trends that are compressing test time
b. Testing compression challenges and the parallel testing shift in Agile projects
c. Balancing risk with test intensity
d. Effectively communicating w/stakeholders
2. Lean Testing
The foundation of Agility is taken from the school of Lean Manufacturing techniques. This model serves a foundation for thinning testing in a practical but properly controlled fashion.
a. Thinning tests through the use of Pair-Programming Principals
b. Utilizing Smoke tests to guide test extent
c. Using pass/fail/release/suspension criteria as a "control" mechanism
d. Using the principal of “Just Enough/Just In-Time” view towards test coverage
3. Context Based Testing
An introduction to the 4 schools of context based testing. The focus is on delivering nimbleness vs. exhaustive documentation laden testing that has marginal value.
a. Introduce the 4 "schools" and the notion of context- driven
b. Adjusting your mindset to the "context driven" approach
c. Exploring the context of your test objectives
d. Determining what your context is and next testing steps
4. Just-in-Time (JIT) Testing Techniques
Rob Sabourin is leading the way in defining Just-in-Time (JIT) testing techniques for today's teams. Instead of focusing on rigorous requirement analysis attention is given to looking at the big picture. Understanding ideas, priorities, and technical elements in order to deliver solutions to hard problems Just in Time.
a. Review Rob's focus and philosophies towards JIT testing
b. Stop iterative testing, wait until the proper moment
c. Exploring test ideas - mine, define, prioritize, plan, chunk, report
d. Notion of "chunks" that are 90-120 minutes in length, planned, executed and tracked
5. Exploratory Testing
Exploratory testing is often confused with ad-hoc testing. Exploratory testing is rigorous experience testing that is loosely planned and highly repeatable.This approach can effectively focus testing activities under virtually any project conditions and is one of the best ways to test in highly uncertain, ambiguous, or tightly time constrained situations.
a. Overview & history of Exploratory Testing
b. Role of heuristics (guidelines, hints) in the process
c. Developing overall goals and session themes
d. The exploratory session - boundaries & examples
e. When & where to best use Exploratory Testing
6. Risk Based Testing
Test teams have found that understanding risk helps to balance test effort with depth of coverage. Unfortunately, misguided risk assessments have often resulted in excessive testing. With risk-based testing, you endeavor to understand what's critical to the business, where the risks are (features, customer use, or technology) and focus your testing specifically in these areas in order to mitigate or control the risk.
a. You can’t do it all (and if you think you can, you aren’t)!
b. Product decomposition - making a map
c. Testing phases and activities - selecting the right places to "look"
d. Risk planning - collaborative analysis with stakeholders, tracking & adapting
7. Pareto Based Testing
Another effective risk-based technique is using Pareto analysis to drive your testing candidates. Pareto is the 80:20 principal, which says that 80% of your defects (risk) are located in 20% of your product. Test where the bugs are or what serves as the root cause to these problems.
a. Using project sensitivity to guide testing
b. Product architectural decomposition – clues of problems
c. Using architects in mining core technical areas
d. Tracking risk and iteratively adjusting your testing
8. All Pairs Technique & Tool
All Pairs (sometimes called Pair-Wise) is a technique used to drastically reduce the number of test cases in specific variable driven test situations. This technique is well suited in setting environmental conditions that may involve combinations of platforms components (hardware, operating systems, browsers, and web application servers, etc.) The technique can reduce test cases by as much as +90%.
a. Introduce the All Pairs testing
b. Contrast with orthogonal arrays
c. Explore scenarios where All Pairs technique is particularly helpful
d. Explore a hands-on session where the class takes an example project and produces All Pairs test case definitions
9. Little 'a'utomation
Test teams are often lead astray in testing by the lure of automation. Suddenly they realize that they are spending a lot of time enthralled in automation and lack focus on what their test objective is. It’s time to get back to basics and concentrate on what is really important, lean testing and utilize automation to support speed (now and for regression testing in the future).
a. Introduction to the domain of tools and how to employ the right tool for the right job.
b. Utilities for common testing tasks; taking the hard work out of mundane work.
c. Saving time and increasing speed using Virtual Machine (VM) environments to ease setup / teardown time
d. Open sources as low cost and simple toolsets.
10. Testing in an Agile Team
Agility views testing as an integral part of the project development team. Unlike traditional methods that test against a delivered product, testing becomes a parallel activity component. Speed and precision are essential, a work product is not considered completed until the associated tests have been carried out. Testing becomes a group event, involving not just test functions but often include developers, business owners and specialists. To reduce the risk of excess duplication and progress aware the use of community software solutions (Wikis) take on a new level of importance.
a. Challenges and demands placed on Agile Testers
b. Two ends of the spectrum matching requirements with User Acceptance Testing (UAT)
c. Exploring a Community Software Solution - FitNesse
d. Explore Test Driven Development using Extreme Programming Story Model
11. Profile of the "Agile" Tester
Deprogramming years of traditional testing behavior isn’t easy. With biases compounded by experience and conventional education, Agile testers face opportunities for growth. For some, this may be scary and for others it may be a welcome and long overdue relief. The Agile tester skills will be put into context with the Agile job profile.
a. Technical Skills
b. Business Acumen
c. Becoming a Contributive and Valued Agile Team Member
d. Role as Coach, Specialist and Colleague with Focus on Testing
12. Use of Tracking, Managing & Reporting to Lay the Foundation for Regression Testing
Just because you are fast doesn’t mean that you can forget the need to think about the day after project closure. Hard work and credible testing can be all lost with the failure to think about future regression testing needs. The use of journaling, plus & place traceability, daily status meetings and retrospectives all play a role in building a solid and sustainable regression test portfolion.
a. Journaling testing, fact delivery and daily stand-up meetings
b. Fast problem report and conscientious defect analysis
c. Utilizing a Plug & Place Framework for Regression Test Set Management
d. Burndown charts, Business Value Delivery and Maturation as tools to communicate progress
e. Communicating testing state, risks, and product release-ability