Challenges in Defect Discovery
- Unfinished Requirements: Defects might be hard to find early in the development process due to misunderstandings caused by incomplete or unclear specifications.
- Time Restrictions: There may not be enough time for comprehensive testing and defect identification due to pressure to fulfil deadlines.
- Modifying Conditions: Project requirements that change frequently can affect the code’s stability and make it difficult to stay on top of bug identification.
- Absence of Test Information: Testing may be left unfinished and possible flaws may go unnoticed if there are insufficient or misleading test results.
- Complex Architecture of Software: Finding flaws and their underlying causes can be challenging in software architectures that are complex and have a lot of interdependencies.
Defect Discovery in Software Engineering
We know that technology cannot guarantee that there won’t be any occurrence of defects. Therefore, they should be a way to identified defects at early stage before the cost required to fix it becomes more expensive. For this reason, defect has been discovered when a particular defect is reported to development team and further developers acknowledge that defect is valid or not.
A Defect is not necessarily been considered to be discovered when testers identify a problem within the software. To get defect discovered, testers need to report defect to developers’ team and then development team further acknowledge that defect is valid.
Steps in Defect Discovery :
Defect discovery generally takes place in three steps :
- Discover Defect : Discover defect simply means identification of defect before it causes major problems to system and before releasing the product to customer. Not all defect that is identified is considered discovered. Some defects are not valid at all.
- Report Defect : Testers report the defect for development team acknowledgment so that defect can be analyzed and fixed. These defect reports can be handwritten or electronic reports. To make defect report good, it is necessary to provide information as many as possible to development team to reproduce defect. More will be the information shared by test team, easier it will be for the development team to identify the problem and find ways to fix it.
- Accept Defect : It is not necessary that all defects that are being reported are valid. Therefore, Developers accept defect if it is valid otherwise reject defect. If this acknowledgment of defect takes place at a late stage, then it might be costly. It is the defect is valid, then development team further resolve defect and minimize its impact on the system.