SlideShare a Scribd company logo
REFACTORING AND
TESTING SOFTWARE
By: Stephen O’Dwyer
SUPPORTED LEGACY APPLICATION
 System is a main value driver
 Main system current state
 60+ REPORTED bugs
 70+ enhancements
 Managed by many teams and developers
 Refactoring and acceptance testing
 A way to advance the legacy system to a usable state
 Manageable for developers
LEGACY CODE
 Legacy code is
 Code we’ve gotten from someone else
 Slang for difficult to change code that developers don’t understand
 No acceptance, unit or integration test
BEHAVIOR OF SYSTEM
 Users depend on behavior
 Adding new features currently follows the edit and pray mentality
 Edit code base and pray it dose not have adverse side effects
 Users trust
 Trust is lost when changing functionality unintentionally and unknowingly
REFACTORING
 The act of improving design wile preserving existing functionality
 Time consuming in the beginning
 Use Industry refactoring techniques
 Sprout Method and class
 Reveal hidden dependency
 Identify Interception points
 Reduce constructor blob
REDUCE RISK OF REFACTORING
QUESTIONS
1. What changes do we have to make?
2. How will we know that we’ve done them correctly?
3. How will we know that we haven’t broken anything?
TESTING
 Regression
 Performed by QA team
 Unit test
 A piece of code that checks the correctness of production code
 Frameworks
 XUnit
 NUnit
QUALITY TEST
1. They run fast
2. They help us localize problems
CODE DEMO
CALL TO ACTION
 Write your first unit test
 Refactor a method
 Buy and read Working Effectively with Legacy code by Michael Feathers
REFERENCES
 Feathers, Michael - Working Effectively with Legacy Code
 Roy Osherove – The Art of Unit Testing

More Related Content

What's hot (19)

Marjuni
MarjuniMarjuni
Marjuni
marjuni .
 
7 testing principles
7 testing principles7 testing principles
7 testing principles
Testing Expert
 
Principles of software testing
Principles of software testingPrinciples of software testing
Principles of software testing
Software Testing Books
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principles
Vaibhav Dash
 
Fundamentals of Testing
Fundamentals of TestingFundamentals of Testing
Fundamentals of Testing
mentary fransiska
 
App Managing Test Environments From App Labs
App Managing Test Environments From App LabsApp Managing Test Environments From App Labs
App Managing Test Environments From App Labs
guest4e4766
 
Agile, DevOps, & Hardware
Agile, DevOps, & HardwareAgile, DevOps, & Hardware
Agile, DevOps, & Hardware
David Evans
 
Fundamental of testing (what is testing)
Fundamental of testing (what is testing)Fundamental of testing (what is testing)
Fundamental of testing (what is testing)
helfa safitri
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
Husnul Habib
 
Performance Testing – Look Before you Leap
Performance Testing – Look Before you LeapPerformance Testing – Look Before you Leap
Performance Testing – Look Before you Leap
Software Testing Solution
 
fundamentals of testing (Fundamental of testing what)
fundamentals of testing (Fundamental of testing what)fundamentals of testing (Fundamental of testing what)
fundamentals of testing (Fundamental of testing what)
diana fitri, S.Kom
 
Testing Principles
Testing PrinciplesTesting Principles
Testing Principles
Risma Rustiyan R
 
Fundamentals of testing (what is testing necessary)
Fundamentals of testing (what is testing necessary)Fundamentals of testing (what is testing necessary)
Fundamentals of testing (what is testing necessary)
helfa safitri
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
Donato Di Pierro
 
FUNDAMENTALS OF TESTING (Fundamental of testing what)
FUNDAMENTALS OF TESTING (Fundamental of testing what) FUNDAMENTALS OF TESTING (Fundamental of testing what)
FUNDAMENTALS OF TESTING (Fundamental of testing what)
CindyYuristie
 
Fundamentals of testing 2
Fundamentals of testing 2Fundamentals of testing 2
Fundamentals of testing 2
seli purnianda
 
Best Practices for Selenium Test Automation
Best Practices for Selenium Test AutomationBest Practices for Selenium Test Automation
Best Practices for Selenium Test Automation
TestingXperts
 
fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)
diana fitri, S.Kom
 
How automation can help boost security
How automation can help boost securityHow automation can help boost security
How automation can help boost security
TestingXperts
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principles
Vaibhav Dash
 
App Managing Test Environments From App Labs
App Managing Test Environments From App LabsApp Managing Test Environments From App Labs
App Managing Test Environments From App Labs
guest4e4766
 
Agile, DevOps, & Hardware
Agile, DevOps, & HardwareAgile, DevOps, & Hardware
Agile, DevOps, & Hardware
David Evans
 
Fundamental of testing (what is testing)
Fundamental of testing (what is testing)Fundamental of testing (what is testing)
Fundamental of testing (what is testing)
helfa safitri
 
Fundamentals of testing
Fundamentals of testingFundamentals of testing
Fundamentals of testing
Husnul Habib
 
Performance Testing – Look Before you Leap
Performance Testing – Look Before you LeapPerformance Testing – Look Before you Leap
Performance Testing – Look Before you Leap
Software Testing Solution
 
fundamentals of testing (Fundamental of testing what)
fundamentals of testing (Fundamental of testing what)fundamentals of testing (Fundamental of testing what)
fundamentals of testing (Fundamental of testing what)
diana fitri, S.Kom
 
Fundamentals of testing (what is testing necessary)
Fundamentals of testing (what is testing necessary)Fundamentals of testing (what is testing necessary)
Fundamentals of testing (what is testing necessary)
helfa safitri
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
Donato Di Pierro
 
FUNDAMENTALS OF TESTING (Fundamental of testing what)
FUNDAMENTALS OF TESTING (Fundamental of testing what) FUNDAMENTALS OF TESTING (Fundamental of testing what)
FUNDAMENTALS OF TESTING (Fundamental of testing what)
CindyYuristie
 
Fundamentals of testing 2
Fundamentals of testing 2Fundamentals of testing 2
Fundamentals of testing 2
seli purnianda
 
Best Practices for Selenium Test Automation
Best Practices for Selenium Test AutomationBest Practices for Selenium Test Automation
Best Practices for Selenium Test Automation
TestingXperts
 
fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)fundamentals of testing (Fundamental of testing why)
fundamentals of testing (Fundamental of testing why)
diana fitri, S.Kom
 
How automation can help boost security
How automation can help boost securityHow automation can help boost security
How automation can help boost security
TestingXperts
 

Viewers also liked (6)

Поздравление Ректора АРГУ 2016
Поздравление Ректора АРГУ 2016Поздравление Ректора АРГУ 2016
Поздравление Ректора АРГУ 2016
Мультимедиа технологии
 
Herramientas de publicación
Herramientas de publicaciónHerramientas de publicación
Herramientas de publicación
Alexis_Franco_Ayala
 
07 avgust
07 avgust07 avgust
07 avgust
ind2004
 
Locked Freedom. Semis.
Locked Freedom. Semis.Locked Freedom. Semis.
Locked Freedom. Semis.
Subscribe Huixiang
 

Similar to Refactoring & Testing software. (20)

Software presentation
Software presentationSoftware presentation
Software presentation
JennaPrengle
 
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
Puppet
 
Puppet Labs EMC DevOps Day NYC Aug-2015
Puppet Labs  EMC DevOps Day NYC Aug-2015Puppet Labs  EMC DevOps Day NYC Aug-2015
Puppet Labs EMC DevOps Day NYC Aug-2015
Bob Sokol
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
 
What is Sanity Testing.pdf by QA Training hub
What is Sanity Testing.pdf by QA Training hubWhat is Sanity Testing.pdf by QA Training hub
What is Sanity Testing.pdf by QA Training hub
qatraininghub1
 
What is Sanity Testing.by subbaraju sir,
What is Sanity Testing.by subbaraju sir,What is Sanity Testing.by subbaraju sir,
What is Sanity Testing.by subbaraju sir,
qatraininghub1
 
Chapter 10 Presentation
Chapter 10 PresentationChapter 10 Presentation
Chapter 10 Presentation
David Morales
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
SeaLights
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interaction
gaoliang641
 
DevOps Adoption: Challenges & Opportunities
DevOps Adoption: Challenges & OpportunitiesDevOps Adoption: Challenges & Opportunities
DevOps Adoption: Challenges & Opportunities
DevOpsDaysJKT
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
Pradeep Patel, PMP®
 
Testing-and-Quality-Assurance-in-Software-Development
Testing-and-Quality-Assurance-in-Software-DevelopmentTesting-and-Quality-Assurance-in-Software-Development
Testing-and-Quality-Assurance-in-Software-Development
Ozias Rondon
 
Software Quality Assurance training by QuontraSolutions
Software Quality Assurance training by QuontraSolutionsSoftware Quality Assurance training by QuontraSolutions
Software Quality Assurance training by QuontraSolutions
QUONTRASOLUTIONS
 
DevOps Certification Course Syllabus.pdf
DevOps Certification Course Syllabus.pdfDevOps Certification Course Syllabus.pdf
DevOps Certification Course Syllabus.pdf
Invensis Learning
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
Tomas Riha
 
Get strategic with qa in dev ops
Get strategic with qa in dev opsGet strategic with qa in dev ops
Get strategic with qa in dev ops
Applause
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assurance
Garuda Trainings
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
Abeer R
 
Agile DevOps: Environment Automation
Agile DevOps: Environment AutomationAgile DevOps: Environment Automation
Agile DevOps: Environment Automation
Accenture | SolutionsIQ
 
Softwaretesting
SoftwaretestingSoftwaretesting
Softwaretesting
Shahid Alam
 
Software presentation
Software presentationSoftware presentation
Software presentation
JennaPrengle
 
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...How to Build High-Performing IT Teams - Including New Data on IT Performance ...
How to Build High-Performing IT Teams - Including New Data on IT Performance ...
Puppet
 
Puppet Labs EMC DevOps Day NYC Aug-2015
Puppet Labs  EMC DevOps Day NYC Aug-2015Puppet Labs  EMC DevOps Day NYC Aug-2015
Puppet Labs EMC DevOps Day NYC Aug-2015
Bob Sokol
 
Making the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To TestingMaking the Unstable Stable - An Intro To Testing
Making the Unstable Stable - An Intro To Testing
Cameron Presley
 
What is Sanity Testing.pdf by QA Training hub
What is Sanity Testing.pdf by QA Training hubWhat is Sanity Testing.pdf by QA Training hub
What is Sanity Testing.pdf by QA Training hub
qatraininghub1
 
What is Sanity Testing.by subbaraju sir,
What is Sanity Testing.by subbaraju sir,What is Sanity Testing.by subbaraju sir,
What is Sanity Testing.by subbaraju sir,
qatraininghub1
 
Chapter 10 Presentation
Chapter 10 PresentationChapter 10 Presentation
Chapter 10 Presentation
David Morales
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
SeaLights
 
Tester developer interaction
Tester developer interactionTester developer interaction
Tester developer interaction
gaoliang641
 
DevOps Adoption: Challenges & Opportunities
DevOps Adoption: Challenges & OpportunitiesDevOps Adoption: Challenges & Opportunities
DevOps Adoption: Challenges & Opportunities
DevOpsDaysJKT
 
Testing-and-Quality-Assurance-in-Software-Development
Testing-and-Quality-Assurance-in-Software-DevelopmentTesting-and-Quality-Assurance-in-Software-Development
Testing-and-Quality-Assurance-in-Software-Development
Ozias Rondon
 
Software Quality Assurance training by QuontraSolutions
Software Quality Assurance training by QuontraSolutionsSoftware Quality Assurance training by QuontraSolutions
Software Quality Assurance training by QuontraSolutions
QUONTRASOLUTIONS
 
DevOps Certification Course Syllabus.pdf
DevOps Certification Course Syllabus.pdfDevOps Certification Course Syllabus.pdf
DevOps Certification Course Syllabus.pdf
Invensis Learning
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
Tomas Riha
 
Get strategic with qa in dev ops
Get strategic with qa in dev opsGet strategic with qa in dev ops
Get strategic with qa in dev ops
Applause
 
Interview questions and answers for quality assurance
Interview questions and answers for quality assuranceInterview questions and answers for quality assurance
Interview questions and answers for quality assurance
Garuda Trainings
 
Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)Getting started with Site Reliability Engineering (SRE)
Getting started with Site Reliability Engineering (SRE)
Abeer R
 

Recently uploaded (20)

Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Hyper Casual Game Developers Company
Hyper  Casual  Game  Developers  CompanyHyper  Casual  Game  Developers  Company
Hyper Casual Game Developers Company
Nova Carter
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
How to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryErrorHow to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
Let's Do Bad Things to Unsecured Containers
Let's Do Bad Things to Unsecured ContainersLet's Do Bad Things to Unsecured Containers
Let's Do Bad Things to Unsecured Containers
Gene Gotimer
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t IgnoreWhy CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Shubham Joshi
 
Lumion Pro Crack + 2025 Activation Key Free Code
Lumion Pro Crack + 2025 Activation Key Free CodeLumion Pro Crack + 2025 Activation Key Free Code
Lumion Pro Crack + 2025 Activation Key Free Code
raheemk1122g
 
How to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptxHow to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptx
riyageorge2024
 
Applying AI in Marketo: Practical Strategies and Implementation
Applying AI in Marketo: Practical Strategies and ImplementationApplying AI in Marketo: Practical Strategies and Implementation
Applying AI in Marketo: Practical Strategies and Implementation
BradBedford3
 
Do not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your causeDo not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your cause
Fexle Services Pvt. Ltd.
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
jamesmartin143256
 
iTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation KeyiTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation Key
raheemk1122g
 
Catching Wire; An introduction to CBWire 4
Catching Wire; An introduction to CBWire 4Catching Wire; An introduction to CBWire 4
Catching Wire; An introduction to CBWire 4
Ortus Solutions, Corp
 
Artificial hand using embedded system.pptx
Artificial hand using embedded system.pptxArtificial hand using embedded system.pptx
Artificial hand using embedded system.pptx
bhoomigowda12345
 
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.pptPassive House Canada Conference 2025 Presentation [Final]_v4.ppt
Passive House Canada Conference 2025 Presentation [Final]_v4.ppt
IES VE
 
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
!%& IDM Crack with Internet Download Manager 6.42 Build 32 >
Ranking Google
 
Hyper Casual Game Developers Company
Hyper  Casual  Game  Developers  CompanyHyper  Casual  Game  Developers  Company
Hyper Casual Game Developers Company
Nova Carter
 
Solar-wind hybrid engery a system sustainable power
Solar-wind  hybrid engery a system sustainable powerSolar-wind  hybrid engery a system sustainable power
Solar-wind hybrid engery a system sustainable power
bhoomigowda12345
 
File Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full VersionFile Viewer Plus 7.5.5.49 Crack Full Version
File Viewer Plus 7.5.5.49 Crack Full Version
raheemk1122g
 
How to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryErrorHow to Troubleshoot 9 Types of OutOfMemoryError
How to Troubleshoot 9 Types of OutOfMemoryError
Tier1 app
 
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-RuntimeReinventing Microservices Efficiency and Innovation with Single-Runtime
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Natan Silnitsky
 
Let's Do Bad Things to Unsecured Containers
Let's Do Bad Things to Unsecured ContainersLet's Do Bad Things to Unsecured Containers
Let's Do Bad Things to Unsecured Containers
Gene Gotimer
 
How to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber PluginHow to Install and Activate ListGrabber Plugin
How to Install and Activate ListGrabber Plugin
eGrabber
 
Medical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk ScoringMedical Device Cybersecurity Threat & Risk Scoring
Medical Device Cybersecurity Threat & Risk Scoring
ICS
 
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t IgnoreWhy CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Why CoTester Is the AI Testing Tool QA Teams Can’t Ignore
Shubham Joshi
 
Lumion Pro Crack + 2025 Activation Key Free Code
Lumion Pro Crack + 2025 Activation Key Free CodeLumion Pro Crack + 2025 Activation Key Free Code
Lumion Pro Crack + 2025 Activation Key Free Code
raheemk1122g
 
How to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptxHow to Create a Crypto Wallet Like Trust.pptx
How to Create a Crypto Wallet Like Trust.pptx
riyageorge2024
 
Applying AI in Marketo: Practical Strategies and Implementation
Applying AI in Marketo: Practical Strategies and ImplementationApplying AI in Marketo: Practical Strategies and Implementation
Applying AI in Marketo: Practical Strategies and Implementation
BradBedford3
 
Do not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your causeDo not let staffing shortages and limited fiscal view hamper your cause
Do not let staffing shortages and limited fiscal view hamper your cause
Fexle Services Pvt. Ltd.
 
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptxThe-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
The-Future-is-Hybrid-Exploring-Azure’s-Role-in-Multi-Cloud-Strategies.pptx
james brownuae
 
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
Bridging Sales & Marketing Gaps with IInfotanks’ Salesforce Account Engagemen...
jamesmartin143256
 
iTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation KeyiTop VPN With Crack Lifetime Activation Key
iTop VPN With Crack Lifetime Activation Key
raheemk1122g
 
Catching Wire; An introduction to CBWire 4
Catching Wire; An introduction to CBWire 4Catching Wire; An introduction to CBWire 4
Catching Wire; An introduction to CBWire 4
Ortus Solutions, Corp
 

Refactoring & Testing software.

  • 2. SUPPORTED LEGACY APPLICATION  System is a main value driver  Main system current state  60+ REPORTED bugs  70+ enhancements  Managed by many teams and developers  Refactoring and acceptance testing  A way to advance the legacy system to a usable state  Manageable for developers
  • 3. LEGACY CODE  Legacy code is  Code we’ve gotten from someone else  Slang for difficult to change code that developers don’t understand  No acceptance, unit or integration test
  • 4. BEHAVIOR OF SYSTEM  Users depend on behavior  Adding new features currently follows the edit and pray mentality  Edit code base and pray it dose not have adverse side effects  Users trust  Trust is lost when changing functionality unintentionally and unknowingly
  • 5. REFACTORING  The act of improving design wile preserving existing functionality  Time consuming in the beginning  Use Industry refactoring techniques  Sprout Method and class  Reveal hidden dependency  Identify Interception points  Reduce constructor blob
  • 6. REDUCE RISK OF REFACTORING QUESTIONS 1. What changes do we have to make? 2. How will we know that we’ve done them correctly? 3. How will we know that we haven’t broken anything?
  • 7. TESTING  Regression  Performed by QA team  Unit test  A piece of code that checks the correctness of production code  Frameworks  XUnit  NUnit
  • 8. QUALITY TEST 1. They run fast 2. They help us localize problems
  • 10. CALL TO ACTION  Write your first unit test  Refactor a method  Buy and read Working Effectively with Legacy code by Michael Feathers
  • 11. REFERENCES  Feathers, Michael - Working Effectively with Legacy Code  Roy Osherove – The Art of Unit Testing
  翻译: