Non-reproducible defects, also known as non-reproducible bugs or intermittent bugs, are software issues that occur inconsistently and cannot be reliably reproduced under the same conditions. These defects may be challenging to identify and fix.
Below are the checklist that can help you go to the causes of the non-reproducible defects. Keep these ideas and techniques handy to reproduce such non-reproducible defects:
Environmental Issues
Devices
function toggleChildCheckboxes(source) { var childCheckboxes = document.getElementsByClassName('childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Operation Systems
Different OS
Updates
Security Patches
function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Version incompatibility of library files function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Random Events
label { display: block; } Timing Issues
Server-DB time
Race Condition
DB deadlocks
Cyclic error
Hardware Errors
Malfunctions
Disk Full
Scheduled Jobs Un-Scheduled Events
Browser upgrades
Antivirus Upgrades
Antivirus Scans
Memory Leaks (Build over time when resources exhausted)Connection Leakages Transient Condition
Network Gliches
System Load Fluctuations
function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Heisenbugs
Elusive bugs that vanish or change behavior during debugging attempts.
label { display: block; } Heisenbugs
Alteration of Program during debug
Thread Interaction
Parallelism
Concurrency of resources
function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Timing Issues
label { display: block; } Timing
Time Zone Issues
Day Light Saving Time
Leap Year
System Clock Accuracy
function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } }
Data Related Issues
label { display: block; } Data Related
Data Distribution
Load balancing
Consistency Issues
Compress/Decompress large data
Algorithms
Buffer sizes
Memory Limitations
Pagenation
Disk Size
Read Write Access
function toggleChildCheckboxes(source) { var childCheckboxes = source.parentNode.querySelectorAll('.childCheckbox'); for (var i = 0; i < childCheckboxes.length; i++) { childCheckboxes[i].checked = source.checked; } } function toggleNestedChildCheckboxes(source) { var nestedChildCheckboxes = source.parentNode.querySelectorAll('.nestedChildCheckbox'); for (var i = 0; i < nestedChildCheckboxes.length; i++) { nestedChildCheckboxes[i].checked = source.checked; } }
Let me know if more items can be added to the checklist.