The prime objective of a code developer is to write the code for creating a software while software tester prime objective is to find defects or bugs in the developed software. Now let’s see what is meant by software defects or software bugs.
Software defect or bug: The software functionality which is not in accordance with requirement specification documentation is called software defect or bug.
Type of defects: Defects are categorized based on the root cause on how they occur. The different types of defects are
- Coding defects: The requirements have been coded incorrectly due to which behavior of an implemented software function is not in accordance with the requirement specification documents.
The other frequently occurred defects made by developers are due to
- Missed to code for the requirements which listed in requirement specification document
- Coding the requirements which are not specified in the requirement specification document
These types of defects are usually caused by developer’s oversight.
Requirement as per specification document: If user clicks on ‘Home’ link in a website then ‘Home’ page should be presented to the user.
Tester observation while testing the ‘Home’ link: Tester found that ‘About Me’ page is displayed each time the ‘Home’ link is clicked which is a deviation in the behavior from the requirement specification document. This is an example of coding defect.
- ‘Missing requirement’ defects: A valid requirement which is mandatory and supposed to code (or implement) is missed. The root cause of this defect is due to not capturing this requirement in the specification document. These types of observations are categorized as ‘Missed requirements defects’ since the requirements are missed from requirement specification document.
These types of defects are usually caused by business analyst’s oversight.
Tester observation while testing the Website: Tester found that ‘Disclaimer’ link is missing in the website. According to organization/webmaster guidelines it is mandatory to show ‘Disclaimer’ link in the website so tester expressed his/her concern that the ‘Disclaimer’ link is missing and to fix this developer expects the business analyst to document in requirement specification document.
- ‘New requirement’ defects: A requirement which is not in project scope to code (or implement) but later on it was determined that is mandatory to code (or implement) to address potential failures in the production (or after implementation).
These types of defects are usually caused by poor requirement analysis for scoping in assessing potential failures.
Requirement as per specification document: System A transmits data to system B for data processing in system B.
System A: Transmits student records (records contain marks of each student) to system B
System B: Responsible for
- Filter student records who gained more than 80 % passed marks in the examination
- Process filtered student records to pass this information to the scholarship department
Tester observation while conducting system integration testing: Tester found that data is not getting loaded in system B and on further investigation it is found that the root cause is memory constraints i.e system B fails to load data whenever system A transmits of more than 100000 student records.
To address this defect the project stakeholders decided to create additional (or new) requirement. So, the additional (or new) requirements are created as below in specification document.
System A: Transmits student records (record contains marks of each student) to system C
System C: This system is optimized to process (or handle) large volume of data i.e in this case system filter student records who gained more than 80 % passed marks in the examination and send to system B for further processing.
System B: Process filtered student records to pass this information to the scholarship department