Vous êtes sur la page 1sur 32

Agile Testing Framework

The Art of Automated Testing


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.

www.AgileTestingFramework.com
Agenda

Agile Methodologies
Agile Testing Quadrant
Quality
Technical Debt
The Testing Pyramid
Driven Development
FDD
TDD
BDD
Agile Testing Framework

www.AgileTestingFramework.com
Agile Methodologies

www.AgileTestingFramework.com
The Triple Constraint
Waterfall Agile
Predictive Process Adaptive Process

Scope
Constraints Cost Time
(requirements)

Value
Plan Driven
Driven

Scope
Estimates Cost Time
(features)

The plan creates cost and The vision creates


schedule estimates feature estimates

When it doesnt fit in Agile, we cut Scope, not Quality!

www.AgileTestingFramework.com
5 Levels of Agile Planning

www.AgileTestingFramework.com
Agile Testing Touch Points

Release Planning Iteration Planning


Document dependencies Review - Acceptance criteria
Write - End to end flow tests
Write - Workflow tests
Write - Integration tests Iteration Testing
Write/Run - Acceptance tests
Release Testing Write/Run - Unit tests
Write/Run - Component tests
Run - End to end flow tests
Run - Workflow tests
Run - Integration tests
Run - Performance and security tests

www.AgileTestingFramework.com
Agile Testing Quadrant

Business Facing

Are we building the right product?

Are we building the product right?

Technology Facing

www.AgileTestingFramework.com
Agile Testing Quadrant

Business Facing
Supporting the Team

Functional, Story & Exploratory &

Critique Product
Prototype Testing Usability Testing

Unit & Component Performance, Load


Testing & Security Testing
Technology Facing

www.AgileTestingFramework.com
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
Up front testing leads to lower costs and better quality

www.AgileTestingFramework.com
Quality focus on Test first vs. Test last

Performance Testing

Functional Testing

Continuous Integration

Test First
Test First
Test First

Refactoring

www.AgileTestingFramework.com
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
Technical Debt
Is incurred by not developing in the correct way...

Like Financial Debt - is dangerous if the incurred


interest and the debt itself are not payed...

www.AgileTestingFramework.com
Technical Debt

Two ways of doing things!

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
Technical Debt
Shipping first time code is like going into debt. A little debt speeds
development so long as it is paid back promptly with a rewrite... The
danger occurs when the debt is not repaid. Every minute spent on not-
quite-right code counts as interest on that debt.
Ward Cunningham (1992-03-26). "The WyCash Portfolio Management System".

http://blog.techdebt.org/interviews/156/interview-with-philippe-kruchten-on-technical-debt-rup-ubc-decision-process-architecture

www.AgileTestingFramework.com
Symptoms of Technical Debt

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

www.AgileTestingFramework.com
Fixing the Technical Debt
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. Forgos 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

www.AgileTestingFramework.com
The Testing Pyramid

Traditional Agile

Source: http://www.slideshare.net/nashjain/inverting-the-testing-pyramid

www.AgileTestingFramework.com
The DDs...

FDD
FEATURE Driven Development

TDD
TEST Driven Development

BDD
BEHAVIOR Driven Development

www.AgileTestingFramework.com
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
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
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
TDD, BDD and automated testing...

BDD TDD

TDD invests in automated Unit tests.


BDD invests in automated Acceptance tests.

www.AgileTestingFramework.com
BDD - User Story Traceability
ID: 27
Story STORY NAME: Save a list of potential cars for later review

As a <role>, As a: Buyer
I can: Add a car to my wish list
I can <activity>, So that: I can review my top choices at a later time.
so that <business value>
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
Scenarios
Scenario 27.2: Review list of favorite cars
Given <context>
Given: A potential buyer is logged in
When <event> Given: A potential buyer has previously picked some favorite
Then <outcome> 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

www.AgileTestingFramework.com
Agile Testing Framework (ATF)

www.AgileTestingFramework.com
Agile Testing Framework

Agile Planning Stage

BDD Tests written in Agile Project Management Tool

www.AgileTestingFramework.com
Agile Testing Framework

Agile Implementation Stage

BDD Tests Pulled/Run

Data Driven/Functional Tests written

Services Tests Run

CI process run

Quality, Build Status, Test Results Reported

www.AgileTestingFramework.com
Agile Testing Framework

Agile Regression / Release Stage

Regression Tests - Selenium/BDD

Performance Testing - Front End/JVM/Load

Security Testing

Web Accessibility Testing

Web Consistency Testing

www.AgileTestingFramework.com
Agile Testing Framework

Agile Feedback Loop

Technical Debt Management


Quality Metrics
Build Status
Code Coverage - Unit/Functional
Test Results
Code Reviews

www.AgileTestingFramework.com
Agile Coaching, Staffing and Training.

Learn more at www.torak.com

Learn more at www.AgileTestingFramework.com


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

Vous aimerez peut-être aussi