01 AgileTestingInto
01 AgileTestingInto
Design
SOFTWARE DEVELOPMENT
PHASES Coding
Testing
Maintenance
2
WATERFALL VS AGILE
3
WHAT IS AGILE METHODOLOGY?
Simple design
• Extreme Programming
• Scrum
• Crystal Methods
• Lean Development
➢If short iterations are good, make them really, really short 9
EXTREME PROGRAMMING PRACTICES (A)
Simple design Enough design is carried out to meet the current requirements and no more.
Test-first An automated unit test framework is used to write tests for a new piece of
development functionality before that functionality itself is implemented.
All developers are expected to refactor the code continuously as soon as possible
Refactoring
code improvements are found. This keeps the code simple and maintainable.
10
EXTREME PROGRAMMING PRACTICES (B)
Large amounts of overtime are not considered acceptable as the net effect is
Sustainable pace
often to reduce code quality and medium term productivity
A representative of the end-user of the system (the customer) should be
available full time for the use of the XP team. In an extreme programming
On-site customer
process, the customer is a member of the development team and is
responsible for bringing system requirements to the team for implementation.
11
XP RELEASE CYCLE
12
SCRUM -- AN AGILE PROCESS
• The Scrum approach is a general agile method but its focus is on managing
iterative development rather than specific agile practices.
• There are three phases in Scrum.
• The initial phase is an outline planning phase where you establish the general objectives
for the project and design the software architecture.
• This is followed by a series of sprint cycles, where each cycle develops an increment of
the system.
• The project closure phase wraps up the project, completes required documentation
such as system help frames and user manuals and assesses the lessons learned from
the project.
13
FUNCTIONALITY OF SCRUM
14
BASIC PARTS OF SCRUM
• Role
• The Sprint cycle
• Scrum Master
• Product Owner
• Sprints are fixed length, normally 2–4 weeks. They correspond to the
development of a release of the system in XP.
• Team
• The starting point for planning is the product backlog, which is the list of
• Artifacts work to be done on the project.
• Product Backlog • The selection phase involves all of the project team who work with the
• Sprint Backlog customer to select the features and functionality to be developed during
the sprint.
• Burn-down Charts
• Once these are agreed, the team organize themselves to develop the
• Meetings software. During this stage the team is isolated from the customer and the
• Sprint Planning organization, with all communications channelled through the so-called
‘Scrum master’.
• Sprint Review
• The role of the Scrum master is to protect the development team from
• Sprint Retrospectives external distractions.
• Daily Scrum • At the end of the sprint, the work done is reviewed and presented to
stakeholders.The next sprint cycle then begins.
15
WHAT IS AGILE TESTING?
• Agile Testing is a software testing practice that follows the principles of agile software
development.
• Agile Testing involves all members of the project team, with special expertise contributed by
testers. Testing is not a separate phase and is interwoven with all the development phases such
as requirements, design and coding and test case generation. Testing takes place simultaneously
through the Development Life Cycle.
• Furthermore, with testers participating in the entire Development Lifecycle in conjunction
with cross-functional team members, the contribution of testers towards building the software
as per the customer requirements, with better design and code would become possible.
• Agile Testing covers all the levels of testing and all types of testing.
16
AGILE TESTING ACTIVITIES
18
SPRINT BASED LIFECYCLE
19
A ‘PRESCRIBING MEDICATION’
STORY
20
EXAMPLES OF TASK CARDS
FOR PRESCRIBING
MEDICATION
21
TEST C ASE DESCRIPTION FOR DOSE
CHECKING
22
TESTING IN EXTREME PROGRAMMING
• Tests are written as programs rather than data so that they can be
executed automatically. The test includes a check that it has executed
correctly.
• Usually relies on a testing framework such as JUNIT.
• All previous and new tests are run automatically when new functionality
is added, thus checking that the new functionality has not introduced
errors.
24
TEST-DRIVEN DEVELOPMENT
25
TEST-DRIVEN DEVELOPMENT
26
TDD PROCESS ACTIVITIES
27
TDD EXAMPLE
28
Source: Internet
CUSTOMER INVOLVEMENT
• Test automation means that tests are written as executable components before
the task is implemented
• These testing components should be stand-alone, should simulate the submission of input to
be tested and should check that the result meets the output specification. An automated test
framework (e.g. JUnit) is a system that makes it easy to write executable tests and submit a
set of tests for execution.
• As testing is automated, there is always a set of tests that can be quickly and
easily executed
• Whenever any functionality is added to the system, the tests can be run and problems that
the new code has introduced can be caught immediately.
30
XP TESTING DIFFICULTIES
31
BENEFITS OF TEST-DRIVEN DEVELOPMENT
• Code coverage
• Every code segment that you write has at least one associated test so all code written has at least
one test.
• Regression testing
• A regression test suite is developed incrementally as a program is developed.
• Simplified debugging
• When a test fails, it should be obvious where the problem lies. The newly written code needs to be
checked and modified.
• System documentation
• The tests themselves are a form of documentation that describe what the code should be doing.
32
ROLE OF TESTER IN AGILE TEAM
33
TEAMWORK
• Collaborative Approach − Working with cross-functional team members on Test Strategy, Test Planning, Test
Specification, Test Execution, Test Evaluation, and Test Results Reporting. Contributing the testing expertise in
conjunction with other team activities.
• Self-organizing − Planning and organizing well within the sprints to achieve the targets of testing by
amalgamating expertise from other team members as well.
• Empowerment − Making appropriate technical decisions in achieving the team’s goals.
• Commitment − Committing to understanding and evaluating the product’s behavior and characteristics as
required by the customers and stakeholders.
• Transparent − Open, Communicating and Accountable.
• Credibility − Ensuring the credibility of the test strategy, its implementation, and execution. Keeping the
customers and stakeholders informed on the test strategy.
• Open to Feedback − Participating in sprint retrospectives to learn from both successes and failures. Seeking
customer feedback and acting quickly and appropriately to ensure quality deliverables.
• Resilient − Responding to changes.
34
TEST PLANNING
• Testing Scope
• New functionalities which are being tested
• Level or Types of testing based on the features complexity
• Load and Performance Testing
• Infrastructure Consideration
• Mitigation or Risks Plan
• Resourcing
• Deliverables and Milestones
35
SPRINT ZERO
• Sprint Zero involves preparation activities before the first sprint. A tester needs to collaborate
with the team on the following activities −
• Establishing a business case for the project
• Establish the boundary conditions and the project scope
• Outline the key requirements and use cases that will drive the design trade-offs
• Outline one or more candidate architectures
• Identifying the risk
• Cost estimation and prepare a preliminary project
36
AGILE TESTING PRACTICES
• An Agile tester needs to adapt Agile practices for testing in an agile project.
• Pairing − Two team members work together at the same keyboard. As one of them tests, the
other reviews/analyzes testing. The two team members can be
• One tester and one developer
• One tester and one business analyst
• Two testers
• Incremental Test Design − Test cases are built from user stories, starting with simple tests
and moving to more complex tests.
• Mind Mapping − A mind map is a diagram to organize the information visually. Mind mapping
can be used as an effective tool in Agile testing, using which information regarding the
necessary test sessions, test strategies and test data can be organized.
37
AGILE TESTING STRATEGIES
38
REFERENCE
39