In software engineering, a bug is an error in a software application. It may cause the application to behave in an unintended manner or quit unexpectedly. Most often bugs are caused by syntax or logic errors within the source code of the application.
They may be introduced by mistake at any stage of the software development process, or caused by oversights and misunderstandings during specification, design, coding, data entry or documentation.
Because bugs negatively affect the usability of an application and sometimes may even have the potential to cause serious damages to its users, testing and quality assurance is an important part of the software development process. The scrutiny of testing and quality assurance may vary for different software application types. But it usually comprises automated and manual tests as source code analysis, unit testing, benchmark and boundary testing, functional testing, end-to-end testing, regression testing and monitoring the application while it is running.
An additional way of ensuring quality and identifying bugs in software applications is to releasing early versions of the software to a selected group of users as alpha and beta versions or release candidates. These users test all parts of the program within real-life conditions to ensure it works accurately.
Bugs are commonly tracked and managed using issue tracking systems. They allow for proper documentation, categorization, and to monitor the progress made to correcting ("fixing") the faulty code. The issue tracking system of SHORELESS is called SHORELESS TIM and is accessible at https://tim.shoreless.limited.
Unfortunately, even after software has been tested thoroughly, some bugs may have not been identified when the software is released to its users, or they were identified, but for any reason not yet corrected before release ("known bugs"). Such bugs might be fixed with patches, maintenance releases, hotfixes or a later major release.