Simply speaking, deviations from the anticipated results are regarded as defects. There are a few more terms that are used in the industry interchangeably to define a problem, such as a failure, bug, or error. However, any form of issue, no matter what it's called, must be resolved before launching the product.
Software defects can be the result of the following:
- A feature is built based on invalid or incomplete requirements
- A feature is stated in the requirements but the required software for it is missing
- The function used in the code is not returning the expected results, or running in an infinite loop, or accepting an invalid number/type of an input parameter
- Users are not restricted from performing invalid/unauthorized actions
- Error messages as not shown as expected
- Stated and unstated requirements are not met
- Text and images are unreadable...