SlideShare une entreprise Scribd logo
1  sur  10
Impact of Production Bug/s and
How to avoid it
03-Apr-2021
Agenda
• Why should be even care?
• Impact of Production Bug
• How to Reduce Bug
• TDD
• PLUGINs
• Few points need to be followed by QA
Why should I even care?
• Bugs happen all the time – and they will be found in pre-
production or in production.
• But the main difference between preventing and finding
the bug in a pre-production environment is the cost.
• According to IBM’s research, fixing a bug in production
can cost X5 times more than discovering it in pre-
production environments (during the design, local
development, or test phase).
Impact of Production Bug
A customer finds the
bug and alerts
customer service.
The bug is logged by
the production team.
The developer gets the description
of the bug, opens the spec, and
spends time reading it over.
The developer then will
spend time recreating the
bug.
The developer must then
reacquaint him/herself with
the code to debug it.
Next, the fix
must undergo
tests.
The fix is then
built and
deployed in
other
environments.
Finally, the fix
goes through
QA testing
(requiring QA
resources).
How to reduce bug?
• Design well. Keep it simple - Create the design before coding: try to divide difficult problems into smaller parts/steps/modules that we
can tackle one by one, thinking of objects with well-defined responsibilities.
• Create Testable Code - Make sure you see your test fail at least once. This is the key concept of test-driven development(TDD).
• KISS (Keep it simple and Straight-forward) - Complex code is destined to lead to bugs, and it is also much more challenging to test.
• DRY(Don’t Repeat Your Self) – Check some other forks may already written for you or check if it could be done by existing library. Create
Independent method or class.
• Use code analysis tools - It help to ensure and maintain the quality of our code.
• Don’t Use Comments as a Band-Aid - Keep your code comments as clear and concise as possible. Instead of it use semantic name
for method and variable...
Continue…
• Take Compiler Warnings Into Account - By keeping an eye on these warnings, you can ensure that potential problems are stopped
before they become critical issues.
• Take Your Time - If team works under intense pressure to release code by unrealistic deadlines, it are more likely to make mistakes.
Rushing for a release and cutting corners could create larger issues for the application in long time. So, take your time to ensure that best
practices are put in place
• Implement Coding Standards
• Refactoring - Refactoring aims to improve and redesign the structure of already existing code, without modifying its fundamental
behavior. Simple examples of refactoring include fixing improperly names variables or methods and reducing repeated code down to a
single method or function.
• Run functional tests - Typically, this is not done at the development level. Test cases are written based on the specification, and the
actual results are compared with the expected results. Using Selenium and Protractor for UI testing and Junit for API testing.
• Release gradually - Test new features on a small set of users before releasing to everyone.
TDD(Test Driven Development)
TDD will make us automatically think in smaller pieces of code (functions, components, services, directives, whatever we can
imagine), Will make us think about well scoped responsibilities, will make us to take design decisions otherwise we may be ignoring.
• The Steps : -
• Write a single unit test to verify that some criteria is met.
• Run the failing test (non compiling code counts as a failing test).
• Write just enough code so that the test passes.
• Refactor the code making sure that the test still passes.
• Start again, incrementally testing and developing your application
PLUGINs in VS Code for Angular
• Angular Language Service - This extension provides a rich editing experience for Angular templates.
• Bracket Pair Colorizer - This extension allows matching brackets to be identified with colors.
• Move TS - you can simply move files/folders around and this extension will automatically update your import statements.
• Tslint
• Code Spell Checker - Code Spell Checker is a spell checker that considers camelCase code.
PLUGINs in Eclipse/IntelliJ
• SonarLint - SonarLint is an IDE extension that helps you detect and fix quality issues as you write code in Java, JavaScript, PHP, Python
and HTML.
• Spring Tools (Spring Tool Suite (STS)) - This plugin makes it really easy to create Spring and Spring Boot projects in Eclipse. By
using the STS plugin, you can create Spring Boot projects quickly using easy to use start.spring.io integration.
• FindBugs - FindBugs is a defect detection tool for Java that uses static analysis to look for more than 200 bug patterns, such as null pointer
dereferences, infinite recursive loops, bad uses of the Java libraries and deadlocks.
• Rainbow Brackets
Few points need to be followed by QA to avoid bug leakage
• QA Manager/Lead's/BA’s should actively participate, discuss and bring out scenarios that happens in live environment.
• Make sure that test case should covers every modules of your software.
• Proper review of test cases from the lead and monitoring the test execution cycle.
• Change in hands means if in any build cycle Engineer A executing then in another cycle allot to another QA engineer.
• Perform ad hoc test on the product.
• Always strive to have comparable data to a production environment

Contenu connexe

Tendances

Tendances (20)

Quality Assurance Guidelines
Quality Assurance GuidelinesQuality Assurance Guidelines
Quality Assurance Guidelines
 
Presentation_TDD
Presentation_TDDPresentation_TDD
Presentation_TDD
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
 
Unit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and MoqUnit Testing in Action - C#, NUnit, and Moq
Unit Testing in Action - C#, NUnit, and Moq
 
Testing automation in agile environment
Testing automation in agile environmentTesting automation in agile environment
Testing automation in agile environment
 
How to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance ToolbeltHow to Add Test Automation to your Quality Assurance Toolbelt
How to Add Test Automation to your Quality Assurance Toolbelt
 
Continuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the RescueContinuous Automated Regression Testing to the Rescue
Continuous Automated Regression Testing to the Rescue
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
 
Common Java problems when developing with Android
Common Java problems when developing with AndroidCommon Java problems when developing with Android
Common Java problems when developing with Android
 
Orientation Program on Automated Software testing Powered by Infaum Education...
Orientation Program on Automated Software testing Powered by Infaum Education...Orientation Program on Automated Software testing Powered by Infaum Education...
Orientation Program on Automated Software testing Powered by Infaum Education...
 
Test automation in agile ecosystem
Test automation in agile ecosystemTest automation in agile ecosystem
Test automation in agile ecosystem
 
Tdd
TddTdd
Tdd
 
Chapter17 of clean code
Chapter17 of clean codeChapter17 of clean code
Chapter17 of clean code
 
Software testing tools (free and open source)
Software testing tools (free and open source)Software testing tools (free and open source)
Software testing tools (free and open source)
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testing
 
TDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 editionTDD in the ABAP world - sitNL 2013 edition
TDD in the ABAP world - sitNL 2013 edition
 

Similaire à Topic production code

Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
BestBrains
 
Test driven development
Test driven developmentTest driven development
Test driven development
Harry Potter
 
Test driven development
Test driven developmentTest driven development
Test driven development
Luis Goldster
 
Test driven development
Test driven developmentTest driven development
Test driven development
Tony Nguyen
 

Similaire à Topic production code (20)

Introduction to-automated-testing
Introduction to-automated-testingIntroduction to-automated-testing
Introduction to-automated-testing
 
Software Development Standard Operating Procedure
Software Development Standard Operating Procedure Software Development Standard Operating Procedure
Software Development Standard Operating Procedure
 
Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Software testing
Software testingSoftware testing
Software testing
 
Agile Testing - What is it?
Agile Testing - What is it?Agile Testing - What is it?
Agile Testing - What is it?
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Test-Driven-Development.pptx
Test-Driven-Development.pptxTest-Driven-Development.pptx
Test-Driven-Development.pptx
 
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
 
TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)TDD and Related Techniques for Non Developers (2012)
TDD and Related Techniques for Non Developers (2012)
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Agile
AgileAgile
Agile
 
10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming10 Reasons You MUST Consider Pattern-Aware Programming
10 Reasons You MUST Consider Pattern-Aware Programming
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Test driven development
Test driven developmentTest driven development
Test driven development
 

Plus de Kavi Kumar (7)

Hospital Management System
Hospital Management SystemHospital Management System
Hospital Management System
 
game project presentation
game project presentationgame project presentation
game project presentation
 
कॉपीराइट Copyright
कॉपीराइट Copyrightकॉपीराइट Copyright
कॉपीराइट Copyright
 
अंगिका भाषा(Angika Bhasa)
अंगिका भाषा(Angika Bhasa)अंगिका भाषा(Angika Bhasa)
अंगिका भाषा(Angika Bhasa)
 
Programming Vocabulary
Programming Vocabulary Programming Vocabulary
Programming Vocabulary
 
J query ppt
J query pptJ query ppt
J query ppt
 
Sofware engineering
Sofware engineeringSofware engineering
Sofware engineering
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Topic production code

  • 1. Impact of Production Bug/s and How to avoid it 03-Apr-2021
  • 2. Agenda • Why should be even care? • Impact of Production Bug • How to Reduce Bug • TDD • PLUGINs • Few points need to be followed by QA
  • 3. Why should I even care? • Bugs happen all the time – and they will be found in pre- production or in production. • But the main difference between preventing and finding the bug in a pre-production environment is the cost. • According to IBM’s research, fixing a bug in production can cost X5 times more than discovering it in pre- production environments (during the design, local development, or test phase).
  • 4. Impact of Production Bug A customer finds the bug and alerts customer service. The bug is logged by the production team. The developer gets the description of the bug, opens the spec, and spends time reading it over. The developer then will spend time recreating the bug. The developer must then reacquaint him/herself with the code to debug it. Next, the fix must undergo tests. The fix is then built and deployed in other environments. Finally, the fix goes through QA testing (requiring QA resources).
  • 5. How to reduce bug? • Design well. Keep it simple - Create the design before coding: try to divide difficult problems into smaller parts/steps/modules that we can tackle one by one, thinking of objects with well-defined responsibilities. • Create Testable Code - Make sure you see your test fail at least once. This is the key concept of test-driven development(TDD). • KISS (Keep it simple and Straight-forward) - Complex code is destined to lead to bugs, and it is also much more challenging to test. • DRY(Don’t Repeat Your Self) – Check some other forks may already written for you or check if it could be done by existing library. Create Independent method or class. • Use code analysis tools - It help to ensure and maintain the quality of our code. • Don’t Use Comments as a Band-Aid - Keep your code comments as clear and concise as possible. Instead of it use semantic name for method and variable...
  • 6. Continue… • Take Compiler Warnings Into Account - By keeping an eye on these warnings, you can ensure that potential problems are stopped before they become critical issues. • Take Your Time - If team works under intense pressure to release code by unrealistic deadlines, it are more likely to make mistakes. Rushing for a release and cutting corners could create larger issues for the application in long time. So, take your time to ensure that best practices are put in place • Implement Coding Standards • Refactoring - Refactoring aims to improve and redesign the structure of already existing code, without modifying its fundamental behavior. Simple examples of refactoring include fixing improperly names variables or methods and reducing repeated code down to a single method or function. • Run functional tests - Typically, this is not done at the development level. Test cases are written based on the specification, and the actual results are compared with the expected results. Using Selenium and Protractor for UI testing and Junit for API testing. • Release gradually - Test new features on a small set of users before releasing to everyone.
  • 7. TDD(Test Driven Development) TDD will make us automatically think in smaller pieces of code (functions, components, services, directives, whatever we can imagine), Will make us think about well scoped responsibilities, will make us to take design decisions otherwise we may be ignoring. • The Steps : - • Write a single unit test to verify that some criteria is met. • Run the failing test (non compiling code counts as a failing test). • Write just enough code so that the test passes. • Refactor the code making sure that the test still passes. • Start again, incrementally testing and developing your application
  • 8. PLUGINs in VS Code for Angular • Angular Language Service - This extension provides a rich editing experience for Angular templates. • Bracket Pair Colorizer - This extension allows matching brackets to be identified with colors. • Move TS - you can simply move files/folders around and this extension will automatically update your import statements. • Tslint • Code Spell Checker - Code Spell Checker is a spell checker that considers camelCase code.
  • 9. PLUGINs in Eclipse/IntelliJ • SonarLint - SonarLint is an IDE extension that helps you detect and fix quality issues as you write code in Java, JavaScript, PHP, Python and HTML. • Spring Tools (Spring Tool Suite (STS)) - This plugin makes it really easy to create Spring and Spring Boot projects in Eclipse. By using the STS plugin, you can create Spring Boot projects quickly using easy to use start.spring.io integration. • FindBugs - FindBugs is a defect detection tool for Java that uses static analysis to look for more than 200 bug patterns, such as null pointer dereferences, infinite recursive loops, bad uses of the Java libraries and deadlocks. • Rainbow Brackets
  • 10. Few points need to be followed by QA to avoid bug leakage • QA Manager/Lead's/BA’s should actively participate, discuss and bring out scenarios that happens in live environment. • Make sure that test case should covers every modules of your software. • Proper review of test cases from the lead and monitoring the test execution cycle. • Change in hands means if in any build cycle Engineer A executing then in another cycle allot to another QA engineer. • Perform ad hoc test on the product. • Always strive to have comparable data to a production environment