Software brittleness

In computer programming and software engineering, software brittleness is the increased likelihood that software, that previously appeared reliable, now fails (breaks) when presented with new and unusual data that is altered in some way which generates an undiscovered logic error or semantic error not found during initial software testing. The phrase is derived from analogies to brittleness in metalworking. Because of the variety of complex systems such as analog electronics, digital electronics, instrumentation, robotics, software design, heuristics , AI, and more, the general definition that any complex system that cannot maintain control due to a small change within the expected range of operation would be considered fragile, breakable, and thus “brittle”. Any complex system pushed beyond its designed limits of control would likely not be considered brittle.