SlideShare a Scribd company logo
BUGS
Personal story
My 3,000,000 debt
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
The Pacman Bug: A
Case Study
● Pac-Man was released in 1980 and became a
cultural phenomenon.
● The game's code had a bug that caused the right
side of the screen to become garbled after level
256.
● This bug was caused by an integer overflow, a
common programming error.
● The bug was never fixed in the original arcade
version, becoming a unique feature of the game.
● The "kill screen" is now a well-known part of Pac-
Man's legacy.
When Software Bugs
Get Real
● In September 1997, the USS Yorktown
experienced a critical software error.
● The ship's propulsion and steering systems
shut down, leaving it dead in the water.
● The root cause was determined to be a divide
by zero error in the ship's control software.
● This incident highlighted the potential risks of
software bugs in complex systems.
● It also underscored the importance of
thorough testing and validation in software
development.
Infamous Software Bugs
● Year 2000 Problem (Y2K): Many programs used two-digit year
representations, causing potential issues when the year 2000
arrived.
● Ariane 5 Flight 501 (1996): A software bug caused the rocket to
self-destruct shortly after launch, resulting in a $370 million loss.
● Therac-25 Radiation Therapy Machine (1985-1987): A software
bug caused the machine to overdose patients with radiation,
leading to several deaths.
● Mariner 1 Space Probe (1962): A missing hyphen in the guidance
software caused the probe to veer off course and self-destruct.
● Knight Capital Group Trading Loss (2012): A software bug caused
the firm to lose $440 million in 30 minutes due to unintended
trades.
Software Bugs:
Explained
● Software bugs are errors or flaws in a
computer program's code.
● They can cause unexpected behavior,
crashes, or security vulnerabilities.
● Bugs can be introduced at any stage
of software development.
● Common causes include human
error, communication gaps, and
complex code.
● Testing and debugging are essential
for identifying and fixing bugs.
Types of Software
Bugs
● Functional bugs: Errors in program
functions or features.
● Performance bugs: Issues with speed,
stability, or resource usage.
● Usability bugs: Problems with the user
interface or experience.
● Security bugs: Vulnerabilities that can be
exploited by attackers.
● Compatibility bugs: Conflicts with other
software or hardware.
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
Bug Detection Time vs.
Cost
● The cost to fix a bug increases
exponentially the later it's detected.
● A bug found during the
implementation phase is 6X more
expensive than one found in design.
● If a bug makes it to production, it
can be 15X more expensive than if
found in design.
● Shift-left testing emphasizes early
bug detection to reduce costs.
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
Lifecycle
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer
How to do it right?
Writing an Effective Bug Report
● Use a clear and concise summary in the title.
● Provide steps to reproduce the bug.
● Include the expected and actual behavior.
● Specify the environment and any relevant attachments.
● Assign the appropriate priority and severity level.
Perfect Bug
Report: A Case
Study
● Clear and concise title: "Button not working on
homepage"
● Steps to reproduce:
1. Go to homepage
2. Click button
3. Observe no response
● Expected behavior: Button should open a new page
● Actual behavior: Nothing happens when button is
clicked
● Environment: Chrome browser on Windows 10
● Attachments: Screenshot of error message
● Priority: High
As a developer - I simply
don’t care
As a developer - I simply
do care
Or else I will get fired for doing a poor job / Fail
my customers / fail any target or goal I have in
life
Planning > Coding
Weeks of coding can prevent hours of planning
Think about this point for a second
Planning > Coding
Be sure you are building the right thing
Be sure you are building it in the right way
Be sure about when you are “done”
Have it reviewed prior to being implemented
Bug Prevention Strategies
● Static Analysis: Use tools to analyze code for potential errors before running it.
● Dynamic Analysis: Test code during execution to identify unexpected behavior
or crashes.
● Code Reviews: Have other developers review code to catch errors early on.
● Unit Testing: Write tests for individual code units to ensure they work as
expected.
● Test-Driven Development (TDD): Write tests before writing code to guide
development and prevent bugs.
Bug Prevention - Coding Tactics
● Input validation and sanitization: Check user input for validity and potential security risks.
● Error handling and exception management: Anticipate and gracefully handle errors to
prevent crashes.
● Defensive programming: Write code that is robust and can handle unexpected inputs or
conditions.
● Modularity and encapsulation: Break down code into smaller, well-defined modules to isolate
potential issues.
● Code comments and documentation: Explain the code's purpose and logic to improve
understanding and maintainability.
● Version control: Track changes to code and revert to previous versions if necessary.
Thank you
Planning > Coding
Be sure you are building the right thing
Be sure you are building it in the right way
Be sure about when you are “done”
Have it reviewed prior to being implemented

More Related Content

PDF
Codebits 2014 - Secure Coding - Gamification and automation for the win
PDF
Software Defects.pdf
PDF
Btech chapter jotesjxisnfis sizbsifnssjzbsoxn
PPTX
"Introduction to Software Engineering: concepts, processes, and methodologies."
PDF
Software Quality in Practice
PDF
Software Defect Prevention via Continuous Inspection
PPTX
Introduction to Software Engineering
PPTX
Zero-bug Software, Mathematically Guaranteed
Codebits 2014 - Secure Coding - Gamification and automation for the win
Software Defects.pdf
Btech chapter jotesjxisnfis sizbsifnssjzbsoxn
"Introduction to Software Engineering: concepts, processes, and methodologies."
Software Quality in Practice
Software Defect Prevention via Continuous Inspection
Introduction to Software Engineering
Zero-bug Software, Mathematically Guaranteed

Similar to SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer (20)

PPTX
Indy meetup#7 effective unit-testing-mule
PPT
SOFWARE QUALITY, INTRODUCTION
PDF
Quality Assurance 1: Why Quality Matters
PPTX
Defect Tracking Software Project Presentation
PPTX
Types of errors 2019
PDF
Software Common Defect Enumeration
PPTX
Programming Development LifeCycle11.pptx
DOC
Software Bugs A Software Architect Point Of View
PPT
10290057.ppt
PDF
Agile Secure Development
PPTX
Java Code Quality Tools
PPTX
software engineering introduction is a gateway of engineer
PPTX
Code - Fu: Defensive Programming
PPT
lecture02.ppt
PPTX
Code - Fu: Defensive Programming
PDF
Qualidade de Software em zOS usando IBM Debug Tool e RDz
PPT
SOFTWARE QUALITY ASSURANCE, PAOLA DI MAIO
PPTX
Software Chapter 5 software testing.pptx
PDF
IRJET- Obfuscation: Maze of Code
PDF
Applying formal methods to existing software by B.Monate
Indy meetup#7 effective unit-testing-mule
SOFWARE QUALITY, INTRODUCTION
Quality Assurance 1: Why Quality Matters
Defect Tracking Software Project Presentation
Types of errors 2019
Software Common Defect Enumeration
Programming Development LifeCycle11.pptx
Software Bugs A Software Architect Point Of View
10290057.ppt
Agile Secure Development
Java Code Quality Tools
software engineering introduction is a gateway of engineer
Code - Fu: Defensive Programming
lecture02.ppt
Code - Fu: Defensive Programming
Qualidade de Software em zOS usando IBM Debug Tool e RDz
SOFTWARE QUALITY ASSURANCE, PAOLA DI MAIO
Software Chapter 5 software testing.pptx
IRJET- Obfuscation: Maze of Code
Applying formal methods to existing software by B.Monate
Ad

More from Hanokh Aloni (20)

PPTX
Negev Game Devs 202304 Abandonware meetup
PPTX
How to code review for awesomeness and clarity
PPTX
NWD Total commander for fun and profit!!!
PPTX
CI CD OPS WHATHAVEYOU
PPTX
How to write proper GIT commit messages.pptx
PPTX
Architectural kata 0 of n.pptx
PPTX
Code smells (1).pptx
PPTX
NWD the73js.pptx
PPTX
top developer mistakes
PDF
Things senior developers should know
PPTX
Cynefin framework in software engineering
PPTX
Microservices
PPTX
Wcbpijwbpij new
PPTX
Trunk based vs git flow
PPTX
How to write unmaintainable code
PDF
How i learned to stop worrying and love the logs
PPTX
Game is ggj2018 presentation
PPTX
Microservices
PPTX
Game is ggj2017 presentation
PPTX
02 terms and issues
Negev Game Devs 202304 Abandonware meetup
How to code review for awesomeness and clarity
NWD Total commander for fun and profit!!!
CI CD OPS WHATHAVEYOU
How to write proper GIT commit messages.pptx
Architectural kata 0 of n.pptx
Code smells (1).pptx
NWD the73js.pptx
top developer mistakes
Things senior developers should know
Cynefin framework in software engineering
Microservices
Wcbpijwbpij new
Trunk based vs git flow
How to write unmaintainable code
How i learned to stop worrying and love the logs
Game is ggj2018 presentation
Microservices
Game is ggj2017 presentation
02 terms and issues
Ad

Recently uploaded (20)

PDF
Nekopoi APK 2025 free lastest update
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
System and Network Administration Chapter 2
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
AI in Product Development-omnex systems
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
L1 - Introduction to python Backend.pptx
PPTX
ai tools demonstartion for schools and inter college
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
Nekopoi APK 2025 free lastest update
Design an Analysis of Algorithms I-SECS-1021-03
ISO 45001 Occupational Health and Safety Management System
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
System and Network Administration Chapter 2
How to Migrate SBCGlobal Email to Yahoo Easily
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Design an Analysis of Algorithms II-SECS-1021-03
Odoo POS Development Services by CandidRoot Solutions
AI in Product Development-omnex systems
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Which alternative to Crystal Reports is best for small or large businesses.pdf
L1 - Introduction to python Backend.pptx
ai tools demonstartion for schools and inter college
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Upgrade and Innovation Strategies for SAP ERP Customers

SYSNGS BUGS - definition, lifecycle and what can I do with them as a developer

  • 4. The Pacman Bug: A Case Study ● Pac-Man was released in 1980 and became a cultural phenomenon. ● The game's code had a bug that caused the right side of the screen to become garbled after level 256. ● This bug was caused by an integer overflow, a common programming error. ● The bug was never fixed in the original arcade version, becoming a unique feature of the game. ● The "kill screen" is now a well-known part of Pac- Man's legacy.
  • 5. When Software Bugs Get Real ● In September 1997, the USS Yorktown experienced a critical software error. ● The ship's propulsion and steering systems shut down, leaving it dead in the water. ● The root cause was determined to be a divide by zero error in the ship's control software. ● This incident highlighted the potential risks of software bugs in complex systems. ● It also underscored the importance of thorough testing and validation in software development.
  • 6. Infamous Software Bugs ● Year 2000 Problem (Y2K): Many programs used two-digit year representations, causing potential issues when the year 2000 arrived. ● Ariane 5 Flight 501 (1996): A software bug caused the rocket to self-destruct shortly after launch, resulting in a $370 million loss. ● Therac-25 Radiation Therapy Machine (1985-1987): A software bug caused the machine to overdose patients with radiation, leading to several deaths. ● Mariner 1 Space Probe (1962): A missing hyphen in the guidance software caused the probe to veer off course and self-destruct. ● Knight Capital Group Trading Loss (2012): A software bug caused the firm to lose $440 million in 30 minutes due to unintended trades.
  • 7. Software Bugs: Explained ● Software bugs are errors or flaws in a computer program's code. ● They can cause unexpected behavior, crashes, or security vulnerabilities. ● Bugs can be introduced at any stage of software development. ● Common causes include human error, communication gaps, and complex code. ● Testing and debugging are essential for identifying and fixing bugs.
  • 8. Types of Software Bugs ● Functional bugs: Errors in program functions or features. ● Performance bugs: Issues with speed, stability, or resource usage. ● Usability bugs: Problems with the user interface or experience. ● Security bugs: Vulnerabilities that can be exploited by attackers. ● Compatibility bugs: Conflicts with other software or hardware.
  • 10. Bug Detection Time vs. Cost ● The cost to fix a bug increases exponentially the later it's detected. ● A bug found during the implementation phase is 6X more expensive than one found in design. ● If a bug makes it to production, it can be 15X more expensive than if found in design. ● Shift-left testing emphasizes early bug detection to reduce costs.
  • 15. How to do it right?
  • 16. Writing an Effective Bug Report ● Use a clear and concise summary in the title. ● Provide steps to reproduce the bug. ● Include the expected and actual behavior. ● Specify the environment and any relevant attachments. ● Assign the appropriate priority and severity level.
  • 17. Perfect Bug Report: A Case Study ● Clear and concise title: "Button not working on homepage" ● Steps to reproduce: 1. Go to homepage 2. Click button 3. Observe no response ● Expected behavior: Button should open a new page ● Actual behavior: Nothing happens when button is clicked ● Environment: Chrome browser on Windows 10 ● Attachments: Screenshot of error message ● Priority: High
  • 18. As a developer - I simply don’t care
  • 19. As a developer - I simply do care Or else I will get fired for doing a poor job / Fail my customers / fail any target or goal I have in life
  • 20. Planning > Coding Weeks of coding can prevent hours of planning
  • 21. Think about this point for a second
  • 22. Planning > Coding Be sure you are building the right thing Be sure you are building it in the right way Be sure about when you are “done” Have it reviewed prior to being implemented
  • 23. Bug Prevention Strategies ● Static Analysis: Use tools to analyze code for potential errors before running it. ● Dynamic Analysis: Test code during execution to identify unexpected behavior or crashes. ● Code Reviews: Have other developers review code to catch errors early on. ● Unit Testing: Write tests for individual code units to ensure they work as expected. ● Test-Driven Development (TDD): Write tests before writing code to guide development and prevent bugs.
  • 24. Bug Prevention - Coding Tactics ● Input validation and sanitization: Check user input for validity and potential security risks. ● Error handling and exception management: Anticipate and gracefully handle errors to prevent crashes. ● Defensive programming: Write code that is robust and can handle unexpected inputs or conditions. ● Modularity and encapsulation: Break down code into smaller, well-defined modules to isolate potential issues. ● Code comments and documentation: Explain the code's purpose and logic to improve understanding and maintainability. ● Version control: Track changes to code and revert to previous versions if necessary.
  • 26. Planning > Coding Be sure you are building the right thing Be sure you are building it in the right way Be sure about when you are “done” Have it reviewed prior to being implemented