Agile testing is an approach to software testing that follows the principles of agile software development as outlined in the Agile Manifesto. Since many software development organizations are using agile development practices or transitioning to agile software development, it is very important for software testers to understand and learn to operate with an agile mindset. Sammy Kolluru explores the key aspects of agile—whole-team approach, improved collaboration and ownership, results visibility, and incorporating automated tools into testing. Explore how you can achieve high-performance software testing by employing test-driven development, knowing how to pinpoint exactly which test cases need to be run after new functionality is added, and learning secure tips for addressing performance testing within each sprint. See how you can improve your agile skills and how agile proficiency contributes to your career and professional recognition with the option of certification.
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
High-Performance Agile Testing in Software Development
1. W3
Session
10/26/2016 10:15:00 AM
High-Performance Agile Testing in
Software Development
Presented by:
Sammy Kolluru
CSTB
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888-‐268-‐8770 ·∙ 904-‐278-‐0524 - info@techwell.com - http://www.starcanada.techwell.com/
2. Sammy Kolluru
CSTB
Sammy Kolluru brings rich experience in agile software testing and quality
assurance with a proven track record of leadership and commitment to delivering
quality software with his unique perspective—effectiveness, efficiency,
measurement, and visibility. Sammy is a member of both the executive board of
directors at the Canadian Software Testing Board (CSTB) and the Agile Working
Group Committee of International Software Testing and Qualifications Board
(ISTQB). Sammy was ISTQB's internal reviewer for the Certified Tester Foundation
Level—Agile Tester syllabus. Previously Sammy offered his expertise to Dell, Sitel,
Eloqua, and Oracle.
3. 1
@sammykolluru @imbus_CA
Sammy KolluruSammy KolluruB E g PGDBM CTFL CTFL ATB.Eng., PGDBM, CTFL, CTFL-AT
President, imbus Canada Corp
Executive Board Member, CSTB
Agile WG Member, ISTQB®
@sammykolluru @imbus_CA
5. 3
To continually improve and advance the softwarey p
testing profession in Canada.
•Created in January, 2007 as a not-for-profit
organization
• Creates and administers exams
• Issues certificates
• Accredits training providers
•Participates in ISTQB® GA and Working Groups
@sammykolluru @imbus_CA
@sammykolluru @imbus_CA
7. 5
Software Testing Certifications
issued in Canada
@sammykolluru @imbus_CA
Why ISTQB® Certification?
• Benefits to professionals
• Benefits to Companies
• Benefits to Training Providers
@sammykolluru @imbus_CA
8. 6
Benefits to Professionalse e ts to o ess o als
• International recognition of acquired
competencies and skills
• Possibility to use the logo “Certified
”Tester”
• Support to the tester’s career path from
foundation level to expert level
@sammykolluru @imbus_CA
Benefits to Companies
• Competitive advantage for companies• Competitive advantage for companies
• Cost optimization of test activities
• High-level services to customers,
increasing revenues and brand value.
@sammykolluru @imbus_CA
11. 9
What is Agile team?
• Agile team are highly cross functional• Agile team are highly cross functional,
whole-team thinking approach and works
in shorter sprint to build, test and
integrate continuously.
• ALWAYS keep Customer and Quality in
mind.
@sammykolluru @imbus_CA
Agile Team contd…
• The core principle of the Agile team is to• The core principle of the Agile team is to
build quality in to the product.
• On other hand, to develop with test
based approach.
@sammykolluru @imbus_CA
12. 10
What is Agile Testing, anyway?
• Agile Testing does not mean testing in• Agile Testing does not mean testing in
Agile projects.
• A tester in Agile project will work
differently than traditional projects.
@sammykolluru @imbus_CA
Agile Testing contd…
• Testing an application with a plan to• Testing an application, with a plan to
learn and using that information to guide
your testing.
• Positively responding to changes.
• Highly cross-functional.
• Working in a team to deliver quality
product in shorter sprint cycle.
@sammykolluru @imbus_CA
13. 11
Agile Testing recap…
• Iterative and Incremental.
• Testers tests each increment of finished code• Testers tests each increment of finished code.
• Iteration may be shorter, easier.
• Team builds and test a small piece of code,
ensuring it works before moving to next piece.
• and so on….
• Developers are never ahead of testers as they
are in-sync.
• Story is never complete until it is TESTED.
@sammykolluru @imbus_CA
Agile Manifesto
• Individuals and interactions over process
and tools.
• Working software over comprehensive
documentation.
• Customer collaboration over contract
negotiation.
• Responding to change over following a
plan.
@sammykolluru @imbus_CA
14. 12
Agile Principles
1) Customer Satisfaction1) Customer Satisfaction
2) Changing Requirements
3) Frequent Software Delivery
4) Work Together) g
5) Motivated Individuals
6) Face – Face Conversation
@sammykolluru @imbus_CA
Agile Principles
7) Measure of Progress7) Measure of Progress
8) Sustainable Development
9) Technical Excellence
10) Simplicity) p y
11) Self Organizing Teams
12) Regular Adaptation
@sammykolluru @imbus_CA
15. 13
Whole-Team Approach
Main benefits of Agile is the Whole TeamMain benefits of Agile is the Whole Team
Approach:
• Enhance communications and collaboration.
• Leverage various skill sets.
• Quality is everyone’s responsibility.
@sammykolluru @imbus_CA
Early and Frequent feedback
Another benefit of Agile is the feedbacks:Another benefit of Agile is the feedbacks:
• Avoids requirement misunderstanding.
• Making features available early.
• Detecting and resolving problems early.
• Providing information to the team.
• Promoting project momentum.
@sammykolluru @imbus_CA
16. 14
Agile Approach
Common Agile Approaches in use:g pp
• Extreme Programming (XP)
• Scrum
• Kanban
@sammykolluru @imbus_CA
Agile Approach
Common Agile Approaches in use:g pp
@sammykolluru @imbus_CA
17. 15
Agile Approach: Scrum
Scrum is Agile Management framework
• Sprint- iterations usually 2 4 weeks• Sprint- iterations, usually 2 – 4 weeks
• Product Increments- Releasable product
• Product Backlog- Planned product items
• Sprint Backlog- High priority items
• Definition of Done- Criteria for completionDefinition of Done Criteria for completion
• Timeboxing- Unfinished feature moved to backlog
• Transparency- Reports and updates sprint status
@sammykolluru @imbus_CA
Sprint Cycle
• During each sprint Epics are identified• During each sprint, Epics are identified.
• Each story is reviewed and groomed,
acceptance criteria are defined.
• Each story is expanded, coded, tested.
• There may be a release after each
sprint.
@sammykolluru @imbus_CA
18. 16
Sprint Cycle
Sprint 0 Sprint 1 Sprint 2 SprintSprint 0 Sprint 1
Epic
A
Sprint 2
Epic
A
Sprint
3
Epic
A+B
@sammykolluru @imbus_CA
A Epic
B
Epic
C
What are tester’s role in Agile?
• Passive during Agile planning- important• Passive during Agile planning- important
sprint activities will be missed.
• Testing late- diminish the advantages of
the agile and becomes bottle neck.
@sammykolluru @imbus_CA
19. 17
Testing role in Agile approach
• Should contribute to estimation, task
definition requirement clarificationdefinition, requirement clarification,
scoping of work.
• Should advocate for customer’s concerns.
• Understand what user needs, collect live
examples and scenarios.
@sammykolluru @imbus_CA
Testing role contd…
• Should break down stories into test related
tasks:tasks:
• Infrastructure, data, non-functional, privacy, security,
robustness, business rules…
• Should transform from passive participant
to active advocate.
Add t d i k l• Address team concerns and risks, leverage resources.
@sammykolluru @imbus_CA
20. 18
Collaborative User Story Creation
• User stories must address functional and
non-functional characteristics.
• Collaborate between product owners,
developers and testers.
• Each story includes acceptance criteria• Each story includes acceptance criteria.
• Tasks in a story are finished when
acceptance criteria have been satisfied.
@sammykolluru @imbus_CA
Collaborative User Story Creation
Brainstorming user stories may use:
• I
• N
• V
E• E
• S
• T
@sammykolluru @imbus_CA
21. 19
Collaborative User Story Creation
Brainstorming user stories may use:
• Independent
• Negotiable
• Valuable
Estimable• Estimable
• Small
• Testable
@sammykolluru @imbus_CA
Retrospectives
• Meeting held at end of each iteration:
− Successful
− Improvements
• Retain success
• Incorporate improvements
− Regular followups
@sammykolluru @imbus_CA
22. 20
Continuous Integration
• Delivery of product increment requires
reliable, working, integrated software.reliable, working, integrated software.
• Automated activities, involves:
− Static code analysis
− Compile, generate executable files
− Unit test code coverage
@sammykolluru @imbus_CA
Unit test, code coverage
− Deploy to test environment
− Integration test
− Reporting status
Benefits of Continuous Integration
• Early detection and root cause analysis.
• Keeps software version up-to-date.
• Reduces regression risks.
• Provides confidence- built on solid
foundationfoundation.
• Reduces repetitive manual activities.
• Provides regular feedback.
@sammykolluru @imbus_CA
23. 21
Release Planning
• Looks ahead to the release of a product.
• Testers are involved and add value:
− Define user stories and acceptance criteria
− Participate in risk analysis
− Estimating testing efforts
− Defining test levels
− Planning the testing for release
@sammykolluru @imbus_CA
Iteration Planning
• Iteration planning is concerned with
iteration backlogs.iteration backlogs.
• Testers are involved and add value:
− Participating in detailed risk analysis
− Determining testability of stories
− Breaking down stories into testing tasksBreaking down stories into testing tasks
− Estimating testing efforts
− Identifying functional and non-functional
aspects
@sammykolluru @imbus_CA
24. 22
Successful Agile Testing
• Critical factors for successful Agile• Critical factors for successful Agile
Testing
− Test automation
− Exploratory testing
− Test expertise within teamTest expertise within team
− Multiple teams
@sammykolluru @imbus_CA
Nonstop Testing- Using Scrum
• Requirement managementRequirement management
• Nightly build
• Nightly automated tests
• Continuous Integration (CI)
• Static code analysis & coverage measurement
• Task Orientation
• Daily Standup
@sammykolluru @imbus_CA
25. 23
Nonstop Testing- contd…
@sammykolluru @imbus_CA
Burn Down Charts
• Graphical representation of Stories left to do versus
time.
• It is useful for predicting when all of the Stories will• It is useful for predicting when all of the Stories will
be completed.
@sammykolluru @imbus_CA
26. 24
Q & A
Disclaimers:
Logos, images, photos, terminologies, examples etc used in this presentations are properties of their respective
organizations. There were freely available during the creation of these presentations.
Written permission from the author is required to reuse the contents of the presentation.
@sammykolluru @imbus_CA
https://www.surveymonkey.com/r/SXYTT7Z
@sammykolluru @imbus_CA