-Jayaprakash Puttaswamy
Test Automation Strategies
for Legacy Systems
What thoughts come to your
mind?
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
 Legacy Systems : challenges (05 mins)
 Test Automation : the full puzzle (15 mins)
 Refactoring Legacy Code (10 mins)
1.Shortest/Deepest branch technique
2.Applying Strangulation (Strangler pattern)
 Q&A (10 mins)
Next 40 mins!
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Legacy Systems - challenges
1. Lack of Agile Testing Mind-set
• Defect prevention Vs detection
• Developer Vs QA mind-set
2. Lack of Domain knowledge
• Unclear or vague requirements
• Lack of domain knowledge for multiple components
3. Lack of Technical Infrastructure
• Relevant testing tools and frameworks
• No infrastructure to mock/simulate dependencies (hardware/third party software)
4. Lack of Technical Skills
• Inability to distinguish and write Unit Tests, Integration Tests and End-to-End tests
• Quality of Testing (especially Unit Testing)
• Lack of refactoring skills/techniques
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Test Automation - the full puzzle
•Unit testing tools for with
mocking support
•Ability to run test
independently at different
levels
•Testing from Bottom-up
approach (Agile Testing
Pyramid)
•Writing good quality tests
•Usage of mocks
•Vertical slicing while
breaking down tasks
•Distinguishing between
Functional, Integration &
Unit testing
•Clear and refined
Acceptance Criteria
•Alignment between User
Story conversations and
their refinement
1. Clarity on
User Story
and A.C.
2. Thinking
through
about
types/level of
Testing
3. Testing
infrastructure
and tools
4. Testing
skills
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
STP (See-through Pyramid)
Image Source:
http://www.molon.de/galleries/France/Paris/Louvre/images01/15%20Louvr
e%20glass%20pyramid%20at%20sunset.jpg
Image Source: http://martinfowler.com/bliki/TestPyramid.html
Agile Testing Pyramid
STP (See-through Pyramid)
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Agile Testing Quadrants
Source: http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Ex: Component/Technology Stack
Portal UI [HRML/CSS]
Portal Widget Framework
[Bootstrap, jQuery]
Portlets [Liferay
Portlets, Java]
Group Security Engine
[Spring, Hibernate, Java]
Authorization Engine
[OAuth]
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
1. Check if you have clarity on Feature/User Stories/Scenarios
2. If needed, derive more BDD Scenarios
3. Identify the scenario flows through layers/components of your application architecture
4. Evaluate the Impact on the code block that may get modified
5. Evaluate the Stability of the Impacted coded block
6. Identify and implement minimal code/tests that need refactoring and automation (only if
Impact is HIGH and is currently UNSTABLE)
7. Identify units where business logic gets added or modified. There are natural candidates for
Unit testing
8. Identify integration and end-to-end scenarios between units that need testing
Testing Approach for Legacy System
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Refactoring Legacy Code
Source: Video by Sandra Mancuso - https://www.youtube.com/watch?v=_NnElPO5BU0
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Refactoring Legacy Code
Image source: http://www.ferdinandludwig.com/plant-addition.html
Strangulation
(based on EventInterception and AssetCapture strategies)
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
http://in.linkedin.com/in/jputtaswamy
jayaprakash@arithaconsulting.com
@agilejp
@arithatweet
About me
Let’s connect
Jayaprakash Puttaswamy (JP) works as a Director - Technology &
Consulting at Aritha Consulting Services and consults enterprises
in Agile and Agile-BI space.
 Agile Strategist, Coach and an Enabler
 Practicing agile since 12 years (RUP,
XP, Scrum, Lean & Kanban)
 Trained & coached over 1400
professionals spread across 150 plus
teams in 35 plus companies including
start-ups.
 Driven large-scale agile
transformation (both software & non-
software) for global enterprises with
scale of 50 to 4000 people.
Copyright © 2016 Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com
Image courtesy of David Castillo Dominici / FreeDigitalPhotos.net
QnA

Test automation_strategy_for_legacysystems

  • 1.
    -Jayaprakash Puttaswamy Test AutomationStrategies for Legacy Systems
  • 2.
    What thoughts cometo your mind?
  • 3.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com  Legacy Systems : challenges (05 mins)  Test Automation : the full puzzle (15 mins)  Refactoring Legacy Code (10 mins) 1.Shortest/Deepest branch technique 2.Applying Strangulation (Strangler pattern)  Q&A (10 mins) Next 40 mins!
  • 4.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Legacy Systems - challenges 1. Lack of Agile Testing Mind-set • Defect prevention Vs detection • Developer Vs QA mind-set 2. Lack of Domain knowledge • Unclear or vague requirements • Lack of domain knowledge for multiple components 3. Lack of Technical Infrastructure • Relevant testing tools and frameworks • No infrastructure to mock/simulate dependencies (hardware/third party software) 4. Lack of Technical Skills • Inability to distinguish and write Unit Tests, Integration Tests and End-to-End tests • Quality of Testing (especially Unit Testing) • Lack of refactoring skills/techniques
  • 5.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Test Automation - the full puzzle •Unit testing tools for with mocking support •Ability to run test independently at different levels •Testing from Bottom-up approach (Agile Testing Pyramid) •Writing good quality tests •Usage of mocks •Vertical slicing while breaking down tasks •Distinguishing between Functional, Integration & Unit testing •Clear and refined Acceptance Criteria •Alignment between User Story conversations and their refinement 1. Clarity on User Story and A.C. 2. Thinking through about types/level of Testing 3. Testing infrastructure and tools 4. Testing skills
  • 6.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com STP (See-through Pyramid) Image Source: http://www.molon.de/galleries/France/Paris/Louvre/images01/15%20Louvr e%20glass%20pyramid%20at%20sunset.jpg Image Source: http://martinfowler.com/bliki/TestPyramid.html Agile Testing Pyramid STP (See-through Pyramid)
  • 7.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Agile Testing Quadrants Source: http://lisacrispin.com/2011/11/08/using-the-agile-testing-quadrants/
  • 8.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Ex: Component/Technology Stack Portal UI [HRML/CSS] Portal Widget Framework [Bootstrap, jQuery] Portlets [Liferay Portlets, Java] Group Security Engine [Spring, Hibernate, Java] Authorization Engine [OAuth]
  • 9.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com 1. Check if you have clarity on Feature/User Stories/Scenarios 2. If needed, derive more BDD Scenarios 3. Identify the scenario flows through layers/components of your application architecture 4. Evaluate the Impact on the code block that may get modified 5. Evaluate the Stability of the Impacted coded block 6. Identify and implement minimal code/tests that need refactoring and automation (only if Impact is HIGH and is currently UNSTABLE) 7. Identify units where business logic gets added or modified. There are natural candidates for Unit testing 8. Identify integration and end-to-end scenarios between units that need testing Testing Approach for Legacy System
  • 10.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Refactoring Legacy Code Source: Video by Sandra Mancuso - https://www.youtube.com/watch?v=_NnElPO5BU0
  • 11.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Refactoring Legacy Code Image source: http://www.ferdinandludwig.com/plant-addition.html Strangulation (based on EventInterception and AssetCapture strategies)
  • 12.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com http://in.linkedin.com/in/jputtaswamy jayaprakash@arithaconsulting.com @agilejp @arithatweet About me Let’s connect Jayaprakash Puttaswamy (JP) works as a Director - Technology & Consulting at Aritha Consulting Services and consults enterprises in Agile and Agile-BI space.  Agile Strategist, Coach and an Enabler  Practicing agile since 12 years (RUP, XP, Scrum, Lean & Kanban)  Trained & coached over 1400 professionals spread across 150 plus teams in 35 plus companies including start-ups.  Driven large-scale agile transformation (both software & non- software) for global enterprises with scale of 50 to 4000 people.
  • 13.
    Copyright © 2016Aritha Consulting Services Pvt. Ltd. All rights reserved. www.arithaconsulting.com Image courtesy of David Castillo Dominici / FreeDigitalPhotos.net QnA