Agile Testing
Agile Testing
• It’s a type of testing which follows AGILE software development rules &
Principles
• All the members in the Project team along with Experts & Testers are involved
in agile testing. There will be a continuous integration between Development &
Testing
• Agile testing is not a separate phase, it carried out all the development
phases(Requirements, Design, Coding & TC Development)
• Objective is to achieve the Quality & Customer needs
• It has shorter time frames called Iterations/Sprints
• Its also called the Delivery-Driven approach, which provides a better prediction
• Its an informal process & Dynamic type of testing
• Agile methodology is not a Sequential but Continual
• Delivering valuable software early & continuously is the priority
• Teams should meet daily throughout the project to review & adjust the
behavior & plan. Face to face conversation is most effective way to
convey/share the info.
Agile Testing PRINCIPLES
• Shortening Feed back Iteration
Test team gets to know the product development and its quality
for each Iteration so it minimizes f/b response and fixing cost
• Testing is performed alongside
Agile testing is not a different phase & not kept pending for a
late phase
• Involvement of all Members
It includes, Experts, Various Developers & Testers
• Documentation is weightless
• Clean Code
Detected defects are fixed on the same iteration/Sprint
• Constant response
• Customer satisfaction
Exposing the product to customer throughout the phase
• Test-Driven
Agile Testing METHODOLOGIES
• Test-Driven Development(TDD) Creating Unit Test Cases before developing the
actual code of the S/W.
• Behavior Driven Development(BDD) Aims to develop the application based on
user expectations. So,collaboration among the Developer, Quality experts & Customer
representatives.
• Exploratory Testing Tester has freedom to explore the Code & perform the testing
in User perspective rather than following TC’s.
• Acceptance Test-Driven Development(ATTD) Before Coding begins
Customer Representatives, Developers & Testers Discuss the requirements & Potential
pitfalls to reduce the chances of error.
• Extreme Programming(XP)It’s a Customer-Oriented methodology which helps to
meet Customer expectations & produce Quality product. (Exploration, Planning,
Iterations/Sprints, Maintenance & Death)
• Session-Based Testing It’s a structured & Time-based approach which involves
Uninterrupted testing sessions
• Dynamic Software Development Method(DSDM )It’s a Agile project
delivery frame work which provides a framework for Building & Maintaining systems
• Crystal Methodologies Its focus on people & their Interactions instead of process
& tools(Criticality, Team size & Priority are achieved)
Agile Testing STRATEGIES
• ITERATION 0
i. Finding people, Preparing Usability testing lab, Resources
ii. Verifies Project Scope
iii. Risk Identified
iv. Cost estimation done
v. Requirements & Use cases are designed/Summarized
• Construction Iteration (Iteration begins)
i. Confirmation Testing
ii. Investigative testing
• Release End Game
i. Training End-Users
ii. Marketing of the product release
iii. Back-Up & Restoration
iv. Finalization of System & User Document
• Production
Agile Testing QUADRANTS
• QUADRANT 1 (Automated)
Focus on Internal Quality of Code
(Unit Testing & Component testing can be executed)
• QUADRANT 2 (Manual & Automated)
Focus on Customer Requirements
Test cases are Business-Driven
(Pair Testing, Test Scenarios & Work flow design, Testing User story & Prototype)
• QUADRANT 3 (Manual)
Focus on Feed back received from Quadrant 1& 2
Executing many Iterations, Strengthening the code
(Usability Testing, User acceptance Testing, Pair testing with customer & Collaborative
testing)
• QUADRANT 4 (Tools)
Focus on Non Functional Requirements like,Performance, Security,Stability
(Stress Testing, Load Testing, Performance Testing, Security Testing, Scalability
Testing,
Agile Testing LIFE CYCLE
Impact Assessment
• 1st Phase of life cycle
• Also known as Feedback phase
• Input & Responses are collected from the Users & Stack holders
• Helps to set the Objective of next phase in life cycle
Agile Testing Planning
• It’s the 2nd phase of life cycle
• Developers, Customers, Test engineers & Stack holders team up to
plan the Testing process, Regular meetings & Deliverables
Release Readiness
• It’s the 3rd phase of life cycle
• Test engineers Test the features
• Checks whether the features are ready to go live or not
• If not, sent again to the previous development phase
Daily Scrums
• Daily morning meetings
• Check the Testing & Determine the Objectives of the day
• Goals are set daily
• Helps test engineers to Understand the status of testing
Test Agility Review
• It’s the last phase of life cycle
• It includes weekly meetings
• Meeting is with Stack-Holders
• Evaluate & Assess the progress against the goals
CHALLENGES in Agile Testing
Changing Requirements
• During the product development Changes may given in the
Requirements/Specifications by the User
• Changes given at the end of the Sprint then it will carried over the next
sprint. (so, It will be the overhead job for Developer & Tester)
Inadequate Test Coverage
• Coz of continuous changing Requirements & Integration Tester may
miss Critical test cases
• By analyzing the Test metrics we can track the test coverage.
(so, Extra Effort/ Care needed)
Testers Availability
• Tester may not have adequate skills to perform API & Integration
testing.
• Supposed to provide training for the testers
Less Documentation
• There is less / No documentation in Agile
(so, This may make the Task’s tedious/Complex)
Performance Bottlenecks
• Developer may builds a products without understanding the end-user
requirements & follows only the specification requirements
• Which results in performance issues in the product
(Using load testing tools, Performance bottlenecks can be identified &
fixed)
Detection of defects
• Defects may be detected at the Production stage or at Testing
stage(later part)
(Which makes very difficult to fix them)
Skipping Essential Tests
• Due to time constraints & the complexity of the test cases, Tester may put
some non-functional tests on hold
(It may cause some bugs later, which may be difficult to fix)