Baking In Quality: The Evolving Role of the Agile Tester
-
Upload
techwellpresentations -
Category
Technology
-
view
318 -
download
3
description
Transcript of Baking In Quality: The Evolving Role of the Agile Tester
W4 Agile Testing
5/1/2013 11:30:00 AM
Baking In Quality: The Evolving
Role of the Agile Tester
Presented by:
Dena Laterza
Agile Velocity
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ [email protected] ∙ www.sqe.com
Dena Laterza
In software quality for seventeen years and currently a quality coach for Agile Velocity (AgileVelocity.com), Dena Laterza became an agile enthusiast five years ago when the director of development brought in agile coaches. The coaching succeeded - and so did the project! Dena has worked on applications in the medical, lead management, contract management, project management, retail, and video-conferencing domains - with both commercial and open-source test automation tools. She is continually learning and mentoring others on automated testing tools and techniques for unit, integration, and GUI testing. Dena lives and practices her craft in Austin, Texas.
BAKING QUALITY IN
The Evolving Role of the Agile Tester
Talk to those around you. Introduce yourself.
What role do they play in software
development?
Introduce yourself!
Illusion of Waterfall
Requirements
Design
Development
QA
Wate
rfa
ll
Release
80
% D
on
e??
Requirements
Design
Development
Requirements
Design
Development
Requirements
Design
Development
Requirements
Design
Development
Ag
ile
Sprint 1 Sprint 2 Sprint 3 Sprint 4
QA QA QA QA
Potentially Releasable Product Increment
Working software is the primary
measure of progress
Copyright © 2013 Agile Velocity, LLC. All Rights Reserved. AGILE VELOCITY PROPRIETARY
Tear Down This Wall
Testers are integrated into Development
Image Source: http://www.thesniper.us
Copyright © 2013 Agile Velocity, LLC. All Rights Reserved. AGILE VELOCITY PROPRIETARY
What is Testing in Agile?
Testing is embedded into the Definition of Done
Testing drives development
Test whenever possible throughout development
Agile testing is a team effort
Agile testing needs automation
http://www.agiletesting.info/what-is-agile-testing-112
Test automation is a core agile practice.
- Lisa Crispin (Agile Testing)
The Test Automation Pyramid
Unit Tests
Test a class, function, or method in isolation
Test common, normal use
Test boundary cases for valid input
Test failure conditions (invalid input, exceptions)
http://starship.python.net/~tbryan/UnitTestTalk/slide2.html Tom Bryan
Acceptance Tests
Verifies User Story meets expectations of the stakeholders
Test with full stack running
Easy to understand outside of Development
Validate API, UI, persistence layer (db)
Tests the system from the user’s perspective
Copyright © 2013 Agile Velocity, LLC. All Rights Reserved. AGILE VELOCITY PROPRIETARY
Acceptance Test Example Feature: Login
Wrong way Scenario: Tests login with invalid credentials Given I am on the Login screen
When I enter "user1" in the username field
And I enter "mypassword" in the password field
And I click the Login button
Then I should see the error message "Username/password is invalid"
Right way Scenario: Tests login with invalid credentials Given I am on the Login screen
When I enter invalid credentials
Then I am not logged in and a meaningful error message is displayed
More Examples
Feature: Fixed amount withdrawal Scenario: Tests withdrawing a fixed amount Given I have $1000 in my account When I withdraw a fixed amount of $200 Then my account balance is $800 Scenario: Tests attempting withdrawal of a fixed amount when balance is too low Given I have $200 in my account When I withdraw a fixed amount of $300 Then I see “Insufficient funds to withdraw this amount.” Error
Tests Are a Safety Net
Image Source: drawingwater.org
Copyright © 2013 Agile Velocity, LLC. All Rights Reserved. AGILE VELOCITY PROPRIETARY
What is the cost of finding a
defect late?
Images Source: http://wendistry.com/wp-content/uploads/2010/03/haystack.jpg
20 Developers making 10 code changes a day
1 Day =
200 Changes
2 Weeks = 2,000
Changes
2 Months = 8,000
Changes
Image Source: innovativelearningdesignes.ca
As a user planning a trip, I want to know the last
date I can change my flight without being
charged a fee, so that I can avoid incurring a
charge.
Acceptance Criteria:
1. User must be logged in to create or edit a reservation
2. User can enter their fly date when creating or editing a
reservation
3. Last date to change flight without a fee is displayed to the
right of the fly date
4. Premium users can change their flight up to 3 days prior
5. All other users can change their flight up to two weeks prior
6. Date formats are based on language in Browser
Push Testing Down
• Strategize as a team on the testing of each story/feature
Image: http://www.adp-ascensores.com/ascensores-alicante-promocion/
Push Testing Down
• Strategize as a team on the testing of each story/feature
Image: http://www.adp-ascensores.com/ascensores-alicante-promocion/
• Understand what can/cannot be tested at each level
Push Testing Down
• Strategize as a team on the testing of each story/feature
• Understand what can/cannot be tested at each level
Image: http://www.adp-ascensores.com/ascensores-alicante-promocion/
• Ensure entire team gains value from all automated tests
Push Testing Down
• Strategize as a team on the testing of each story/feature
• Understand what can/cannot be tested at each level
• Ensure entire team gains value from all automated tests
• Minimize duplication
Image: http://www.adp-ascensores.com/ascensores-alicante-promocion/
Test-Driven Development
Image Source: http://code.dortikum.net
Rinse, repeat
Add a
test.
Run it.
See it fail.
Write
code.
Run test.
See it
pass.
Refactor.
Acceptance Test-Driven
Development
• Product Owner
• Developer
• Tester
Involve the “Power of
3”
Copyright © 2013 Agile Velocity, LLC. All Rights Reserved. AGILE VELOCITY PROPRIETARY
• Use plain words – “Tests that the user cannot log in with an invalid password”
Describe Application Behavior
Automation Framework Strategy
Image Source: www.cwrmobility.com
Design for maintainability
Decide on execution frequency
Decide max execution time
Whole team owns
Whole team gets value
Make tests part of Continuous Integration
What Not To Automate
Everything •On legacy systems, start with a smoke test
•Automate what gives the “most bang for your buck”
•Execution frequency is key
GUI •Especially if the GUI is in flux
•Can tests be covered at a lower level?
Low priority functionality •Non-mission critical
•Not frequently used
•Very little code churn
Baking quality in puts
YOU
in the driver’s seat!
Automated tests don’t find bugs, people do!
I look forward to improving this based on your
feedback.
Thank You!
We provide Agile Training, Coaching, & Implementation Services in the following areas:
Organization - Culture, Structure, Lean, Leadership, Enterprise Optimization
Product - Value Focus, Customer Needs, Prioritization, Planning, Portfolio, Strategy
Team - Scrum, Kanban, Quality, Speed to Market, Tool Selection & Implementation
Technical Practices - Test Automation, Test Driven Development (TDD), Continuous Integration/ Delivery
Implementation - SaaS, Cloud, Architecture, Development, QA, Product Management
Agile Velocity Austin, TX
BDD Resources
http://jbehave.org/ (Java)
http://www.specflow.org/ (.NET) http://cukes.info/ (Ruby)
The Cucumber Book: Behaviour-Driven
Development for Testers and Developers
by Matt Wynne and Aslak Hellesøy