A flaw or unintentional negative aspect of software.
Software always has bugs. The larger, more flexible and more widely used the larger the number of apparent bugs.
Finding, tracking, fixing and keeping bugs fixed is a major challenge in SoftwareEngineering. There are tools and techniques to help (BugZilla, UnitTesting and RegressionTesting).