2. Principles of Agile Testing
Testing is continuous
Continuous feedback
Tests performed by the whole team
Decrease time of feedback response
Simplified & clean code
Less documentation
Test Driven
3. Agile testing methods
• There are various agile testing methods as
follows:
• Behavior Driven Development (BDD)
• Acceptance Test Driven Development (ATDD)
• Exploratory Testing
4. Advantages of Agile Testing
• The benefits of the agile testing approach are as
follows:
• It saves time and money
• Agile testing reduces documentation
• It is flexible and highly adaptable to changes
• It provides a way for receiving regular feedback
from the end user
• Better determination of issues through daily
meetings
5. Test Plan for Agile
• The scope of the testing
• Consolidating new functionalities to be tested
• Types of testing/Levels of testing
• Performance & load testing
• Consideration of infrastructure
• Risks Plan
• Planning of resources
• Deliverables & Milestones
7. TDD
• Test Driven Development means –
• Fewer Bugs.
• Higher quality software.
• Focus on single functionality at a given point
in time.
8. • Requirements – Drive out requirement issues
early (more focus on requirements in depth).
• Rapid Feedback – Many small changes Vs. One
significant change.
• Values Refactoring – Refactor often to lower
impact and risk.
• Design to Test – Testing driving good design
practice.
• Tests as information – Documenting decisions
and assumptions.
9. Test Driven Development helps the
programmer in several ways, such as –
• Improve the code.
• Side by side, increasing the programmer’s
productivity.
•
10. Using Test Driven Development concept in
one’s programming skills –
• Will save developer’s time which is getting wasted
for rework.
• Able to identify the error/problem quicker and faster.
• The programmer will be able to write small classes
which will be focused only on a single function.
• Whenever the code base gets more prominent, it
becomes tough to change and debug the code.
11. • But, if developers are using Test Driven
Development technique –
• Means developers have automated tests.
• Writing the test cases for the program which is
a safe side for the programmers.
• It becomes easy to view what the error is,
where it is and how it is paralyzing one’s code.
•
12. Best Practices to Adopt Test Driven
Development
• Roadmap
• Implementation
• Structure
Top Test Driven Development Tools
• JUnit for Unit Tests
• JMeter for Load/Performance Testing
• Mockito for Rest API Testing
13. xUnit frameworks
• Test runner
• Test case
• Test fixtures
• Test suites
• Test execution
• Test result formatter
• Assertions
15. Values of exploration testing
• Individuals and interactions over processes
and tools
• Working software over comprehensive
documentation
• Customer collaboration over contract
negotiation
• Responding to change over following a plan
•
17. When to use Exploratory Testing
• In the early stages of SDLC when the code
undergoes rapid change
• Perform unit tests while familiarity with the
application acquire using this approach.
• Preparing test scripts and doing additional
testing in the later stages of SDLC
• Exploratory testing is well suited for agile
environment as it keeps up with the short
scrum cycles.
18. When to use Exploratory Testing
• While performing exploratory testing, test
plans are developed on the fly which saves lot
of time for the tester. At the end of each
scrum cycle, critical exploratory tests can be
captured for subsequent scrums.
19. How to do exploratory testing
• Utilize the tester’s ability to learn
• Test case preparation and execution are
performed simultaneously
• Test cases keeps growing
• Testing techniques such as Equivalence
partitioning, Error Guessing, Decision Table
Testing, Boundary Value Analysis and others
could also be combined
20. • Testers can apply their ideas and never get lost
from their mission
• Exploratory testing doesn’t use test
automation, instead it focus on tester’s
knowledge, observation and experience
• In order to maintain focus, exploratory testing
can be session based which provides a
structure
•
21. Advantages of Exploratory Testing
• Less preparation is needed and important
bugs are found quickly
• Thinking on your feet, reacting quickly is
encouraged and more defects are uncovered
• Lot of focus is given to expanding knowledge
and learning for the tester
• It can be used to review the work done by
another tester
22. • Exploratory testing can catch defects that may
have been missed in the test cases
• In case of limited time, exploratory testing can
be used to test new features while regression
testing can be used for existing features
23. Disadvantages of Exploratory
Testing
• As the tests are invented and performed
randomly, they can’t be reviewed in advance.
• Testing is dependent on tester’s knowledge,
skill and experience.
• Gaining familiarity with an application takes
time, so there is a possibility of defects being
missed if the tester has less knowledge of the
website or application
26. Critical role of exploratory testing
• Find bugs that automated tests miss
• Diversity means discovering more bugs
• Speed of test cycles
27. 5 Rules to the Road For Test
Planning in Agile
• Define a Test Strategy
– QA Build strategy, Test data creation, Types of
testing and test tools and Integration testing
• Define Scope
• Be Prepared to Re-Scope Often
• Identify Risks and Mitigation Strategies
• Have an Open and Continuous Feedback
Loop
32. Assessing Quality risks on Agile
Project
• Risk: a possible negative outcome
• Level of risk: based on likelihood and impact
• Quality risks: potential problems with product
quality
• Project risks: potential problems for project
success
• Agile quality risk analysis occurs: At a high
level during release planning by business
• Stakeholders : At a detailed level
33. Quality Risks
• Incorrect calculations
• Slow response time
• Confusing interface
• Risk analysis prioritizes tasks and guides
• High risks require extensive testing
• Low risks receive cursory testing
• Risk based prioritization also includes release
and iteration backlog items
34. Process of Quality Risk Analysis
• Gather the agile team
• List iteration backlog items
• Identify functional, non-functional quality risk
• Assess identified risks categorize each risk,
determine risk level
• Build consensus and ensure a good distribution of
risk ratings
• Use level of risk to choose extent of testing
• Select appropriate test techniques for each risk
item
35. Estimating Testing Effort
• During iteration planning, user stories are
estimated
• Story size gives implementation effort
• Risk level should influence story size
• Techniques should be used to reach and
involve whole team to avoid missing anything
• Reliable estimation
36. Example Allocating Test Effort
• Extensive
• Broad
• Cursory
• Opportunity
• Report bugs only
37. Communicating Test Results
• Test progress can be recorded using
automated test results, agile task boards, and
burndown charts
• Test status can be communicated via wikis,
standard test management tools, and during
stand-ups
39. Regression testing
• Before You Build a Regression
Testing Strategy
• Gather all the test cases that should be
executed
• Improvements should never halt. Figure out
all the improvements that can be
implemented in the test cases.
• Estimate the time for execution of test cases
• Outline what all can be automated and how?
40. A few things to determine before
a regression test plan is built are:
• Identifying which test cases should be
executed.
• Identifying what improvements must be
implemented in the test-cases.
• Identify the time to execute regression testing.
• Outline what needs to be automated in the
regression test plan and how.
• Analyze the outcome of the regression testing
41. Categories & Approach
• Sprint level Regression testing(New
Functionality)
• End to End Regression testing(Core
Functionality)
• The Traditional Testing Approach
• Delayed Week Approach
• Delayed Sprint Approach
42. Automated Testing
• Automated Testing of Agile Projects vs.
Waterfall Projects
• Agile Tester Skills – Team work, collaboration
and tools
• Automation Responsibilities on an Agile Team
– any work done repeatedly more than 2 or 3
times need to be automated
• Deciding what Tests get Automated in Agile
Environments
43. Automated Testing
• Start Automating Tests with a TestComplete
Free Trial – Mobile, web, Apps
• Maintaining and Reviewing Automated Tests
in Agile Environments
• Agile Teams Automate Black Box and White
Box Tests
• Implementing Test Driven Development
44. • When Not to Use Automation in an Agile
Environment – When test performed once.
• Switching from Waterfall to Agile
• Functional, GUI, Regression and Performance
Testing in an Agile Environment
• Automated Testing Starts on Day One
• Automated Testing Tool Features - What is
More Important to Agile Testers?
45. • Automated Testing ROI in Agile Environments
• Automated Testing and Agile Methodologies –
Scrum – No automation Lean – Automated
• Implementing Automated Testing in Agile
Environments – Challenges
• Automated Testing Benefits in an Agile
Environment