Top 100 most common software defects
Learn how to spot these edge cases hiding in plain site before the code is written
At Mission Ready Software we have been analyzing the root causes of hundreds of thousands of failures induced by software for almost 40 years. No organization on earth has analyzed more software root causes than we have. Shockingly, they shrink down to only a few hundred unique common software defects. This class covers the top 100 that are the most common AND easiest to spot early in development before the code is even started. Our methodology for predicting the most overlooked defects/edge cases is built on a robust foundation. We began by meticulously compiling a structured list of common software defects, or “edge cases,” that have historically impacted mission and safety-critical systems. This extensive research culminated in the “Common Defect Enumeration” (CDE), a publicly available resource.
Here’s how our process works for identifying the most common software defects
-
First identify the common defect enumerations don’t apply to your system. For example, if your software doesn’t have machine learning then it can’t encounter machine learning failure modes.
-
Design & Testing Insights: Review the relevant common defect enumerations while looking at your system and software models such as the state diagrams, interfaces, critical sensors. Don’t focus on individual “shall” statements but instead focus on what’s missing from the collection of shall statements.
-
Actionable Edge Case Software Testing Recommendations: Each of the Common Defect Enumerations can be tested in fault injection testing. This class shows you how.
-
Requirements Enhancement: Your software specifications and design can be improved by adding or modifying a few controls and mitigations for the common defect, ensuring greater resilience and preventing future defects.
These are general categories for the common software defects:
- Faulty state management – inadvertent state transitions, stuck states, etc.
- Faulty error handling – inability to detect system faults and/or handle them properly, false negatives
- Faulty processing – peak loading and endurance issues
- Faulty timing – race conditions, functions that exceed their timing budget, functions that execute in the correct order but too early or late
- Faulty sequencing – functions that execute out of order
- Faulty functionality – the software is over designed or under designed
- Faulty usability – the software leads a user directly to a system failures
- Faulty data definition – incompatible units of measure, data sizes, resolution, unused data issues, boundary issues, etc. especially for interfaces between components developed by different organizations
- Faulty machine learning – errors in population sampling, training and modeling
- Faulty algorithms – Algorithms overflow, aren’t robust, aren’t written to specification
The Most Common Software Defects (CDEs)
-
VIRTUAL SELF - GUIDED
-
The Common Defect Enumerations that apply to the entire software system that are often overlooked
-
How to identify which ones apply to your system
-
Apply the generic common software defect to your system. Learn how to look at your system illustration/design flows/MBSE and see failure modes hiding in plain site.
Once you know the edge cases - how to design and test for them
Feed the edge cases into MBSE and automated testing-
VIRTUAL SELF - GUIDED
-
The Top 100 most common defects class is a prerequisite
-
Develop robust design to control or mitigate the root cause
-
Develop robust test strategy for fault injection of most common edge cases
Software test engineers
Learn how to see defects and edge cases before the software is even coded. Learn how to test for those defects.
Software engineers/systems engineers
Learn how to spot overlooked defects and edge cases hiding in plain site in your system architecture and MBSE design flows.
Software Safety Engineers
Learn how to spot the underlying root causes for safety hazards.
RAM and Site Reliability Engineers
Learn how to spot the common defects that kill availability and uptime.
TERMS & CONDITIONS
As per the terms and conditions page of this website, this training class as well as all training classes are non-refundable.