Once your organization has successfully implemented Agile methodologies, there are two major areas that will require improvements: Continuous Integration and Automated Testing.
This presentation illustrates why it's important to invest in an Automated Testing Framework (ATF) to reduce technical debt, increase quality and accelerate time to market.
Learn more at www.agiletestingframework.com.
2. www.AgileTestingFramework.com
About Dimitri Ponomareff
Dimitri Ponomareff (www.linkedin.com/in/dimka5) is a Coach. Whether
it's a sports team, software products or entire organizations, Dimitri has
that ability to relate and energize people. He is consistently recognized
as a very passionate and successful change agent, with an
overwhelming capacity to motivate and mobilize teams on their path to
continuous improvements. He is a master facilitator, as well as a
captivating speaker with consistent, positive feedback regarding his
ability to engage an audience.
As a certified Coach, Project Manager and Facilitator of "The 7 Habits of Highly Effective People", Dimitri
brings a full spectrum of knowledge in his delivery of methodologies. Through teaching by example, he is able
to build teams of people who understand where to focus their work to generate the most value.
He has coached and provided tailor-made services and training for a multitude of organizations. The short list
includes, American Express, Charles Schwab, Bank of America, Morgan Stanley, Choice Hotels
International, JDA Software, LifeLock, First Solar, Mayo Clinic and Phoenix Children's Hospital. Dimitri
enjoys his work, and does everything to ensure he shares his knowledge with others who seek it.
5. The Triple Constraint
Waterfall
Predictive Process
The plan creates cost and
schedule estimates
Constraints
Estimates
Scope
(requirements)
Cost Time
Plan
Driven
Agile
Adaptive Process
The vision creates
feature estimates
Cost Time
Scope
(features)
Value
Driven
When it doesn’t fit in Agile, we cut Scope, not Quality!
www.AgileTestingFramework.com
6. 5 Levels of Agile Planning
www.AgileTestingFramework.com
7. Agile Testing Touch Points
● Release Planning
○ Document dependencies
○ Write - End to end flow tests
○ Write - Workflow tests
○ Write - Integration tests
○
● Release Testing
○ Run - End to end flow tests
○ Run - Workflow tests
○ Run - Integration tests
○ Run - Performance and security tests
● Iteration Planning
○ Review - Acceptance criteria
● Iteration Testing
○ Write/Run - Acceptance tests
○ Write/Run - Unit tests
○ Write/Run - Component tests
www.AgileTestingFramework.com
8. Agile Testing Quadrant
Are we building the right product?
Are we building the product right?
Business Facing
Technology Facing
www.AgileTestingFramework.com
9. Agile Testing Quadrant
Functional, Story &
Prototype Testing
Unit & Component
Testing
Business Facing
Technology Facing
Exploratory &
Usability Testing
Performance, Load
& Security Testing
CritiqueProduct
SupportingtheTeam
www.AgileTestingFramework.com
10. Agile Quality
QA is no longer the Sole
Quality Gatekeeper!
● QA may play new role
● Agile Quality requires new skills
● Focuses on Prevention instead of Detection
● Testing role may be done by others
● Testing done upfront
● Automation plays a bigger role
● Focuses on xUnit testing
www.AgileTestingFramework.com
11. Up front testing leads to lower costs and better quality
www.AgileTestingFramework.com
12. The whole team is responsible for quality
Business
● Product Owners / Product Manager
● Subject Matter Experts
Technology
● Architects
● Database Administrators
● User Experience Designers
● Operations/Support team members
Team
● Developers
● Testers
● Business Analysts
www.AgileTestingFramework.com
13. Is incurred by not developing in the correct way...
Technical Debt
Like Financial Debt - is dangerous if the incurred
interest and the debt itself are not payed...
www.AgileTestingFramework.com
14. Two ways of doing things!
Technical Debt
Clean and smart way - takes
longer to implement but makes
change easier in the future
Quick and dirty way - get your
features sooner, but make the
future changes very hard
www.AgileTestingFramework.com
16. ● Loss of Productivity
● Increase in Testing
● Postponed Releases
● Code Duplication
● Low Code Coverage
● Increase in Bugs
● Unreadable Code
● Decreased Velocity
● Using Old Libraries
● Heavy Stress on Approaching Deadlines
● Being Scared of Changing Anything
● Evil Hacks Wrong Design
● Wrong Choice of Technology
Symptoms of Technical Debt
www.AgileTestingFramework.com
17. Continuous inspection with SonarQube
Managing 7 axes of code quality or preventing the Developers' 7 Deadly Sins
1. Potential Bugs
2. No Coding Standards
3. Duplications
4. Lack of Unit Tests
5. Bad Distribution of Complexity
6. Spaghetti Design
7. Not Enough or Too Many Comments
Strategic Design
1. Strategic debt intentionally accumulated in a project.
2. Conscious, proactive decisions with larger short term benefits.
3. Focuses on architectural and/or business trade-offs.
4. Forgo’s extensive architecture for increased speed to market or reduced overhead
Agile Engineering Practices
Pair Programming, TDD, Continuous Integration, Automated Unit Tests, Automated Functional Tests,
Automated Other Tests(Regression), Refactoring, Clear Definition of Done
Fixing the Technical Debt
www.AgileTestingFramework.com
18. The Testing Pyramid
Source: http://www.slideshare.net/nashjain/inverting-the-testing-pyramid
Traditional Agile
www.AgileTestingFramework.com
19. The DDs...
FDD
FEATURE Driven Development
TDD
TEST Driven Development
BDD
BEHAVIOR Driven Development
www.AgileTestingFramework.com
20. FDD - Feature Driven Development
● Is a client-centric, architecture-centric, and pragmatic software
process
● Feature Breakdown Structure (FBS) instead of WBS
● A feature is a small, client-valued function expressed in the form:
<action> the <result> by/for/of/to a <object>
www.AgileTestingFramework.com
21. TDD - Test Driven Development
Is a rapid cycle of testing, coding, and refactoring
● Relies on a very short development
cycle
● Developer writes automated test case
first
● Test case defines desired improvement
or new function
● Next develops minimum amount of
code to pass test
● Lastly refactors the new code to
acceptable standards
Code refactoring is a "disciplined technique for
restructuring an existing body of code, altering its
internal structure without changing its external behavior"
www.AgileTestingFramework.com
22. BDD - Behavior Driven Development
● Outside-in and pull-based - Wire-frame > Test Cases > Coding
● Multiple-stakeholder, multiple-scale, high-automation
● Describes a cycle of interactions with well-defined outputs
● Results in the delivery of working, tested software that matters
www.AgileTestingFramework.com
23. TDD, BDD and automated testing...
TDDBDD
TDD invests in automated Unit tests.
BDD invests in automated Acceptance tests.
www.AgileTestingFramework.com
24. BDD - User Story Traceability
ID: 27
STORY NAME: Save a list of potential cars for later review
As a: Buyer
I can: Add a car to my wish list
So that: I can review my top choices at a later time.
Acceptance Criteria
Scenario 27.1: Add a car to my wish list
Given: A potential buyer is logged in
And: The car is available for sale
When: The ‘Add to Favorites’ option appears
And: A buyer flags the car for the wish list
Then: The car details are displayed in the wish list
Scenario 27.2: Review list of favorite cars
Given: A potential buyer is logged in
Given: A potential buyer has previously picked some favorite
cars’
And: A buyer clicks on “view my favorites’
When: The buyer views the wish list
And: The car is still available for sale
Then: The buyer can view the car summary in the wish list
Story
As a <role>,
I can <activity>,
so that <business value>
Scenarios
Given <context>
When <event>
Then <outcome>
www.AgileTestingFramework.com
27. Agile Coaching, Staffing and Training.
Learn more at www.torak.com
Learn more at www.AgileTestingFramework.com
28. This presentation was inspired by the work of many people and we have done our very best to attribute all
authors of texts and images, and recognize any copyrights. If you think that anything in this presentation
should be changed, added or removed, please contact us.
http://creativecommons.org/licenses/by-nc-nd/3.0/
www.AgileTestingFramework.com