Unit 1
Unit 1
5 Marks Questions
16 Marks Questions
1. Describe the taxonomy of bugs in software systems. Provide examples for each
category.
o Answer: The taxonomy of bugs in software systems refers to the classification of
defects based on their nature and impact. A common taxonomy includes:
Functional Bugs: These occur when the software does not meet its
intended functionality. Example: A login form that does not authenticate
users correctly.
Performance Bugs: These relate to issues where the system's
performance is suboptimal. Example: A web application that loads pages
too slowly.
Security Bugs: These are vulnerabilities in the system that can be
exploited by attackers. Example: SQL injection or buffer overflow
vulnerabilities.
Usability Bugs: These relate to the user interface or user experience.
Example: Poor navigation or hard-to-read text.
Compatibility Bugs: These occur when software does not function as
expected across different platforms, browsers, or devices. Example: A
website that doesn’t display correctly in different web browsers.
Concurrency Bugs: These happen when multiple processes or threads
interfere with each other, causing unpredictable behavior. Example: A
race condition where two threads access the same resource without proper
synchronization.
Logical Bugs: These arise when there is a flaw in the program's logic,
even if the software runs without crashing. Example: A discount
calculation that incorrectly applies the wrong percentage.
Boundary Bugs: These occur when the software does not handle
boundary conditions correctly. Example: A form that fails when users
input more than the maximum allowed number of characters.
2. Explain the process of path testing and its application in software testing.
o Answer: Path testing is a white-box testing technique that focuses on testing all
possible paths in the program's control flow. The process involves:
Path testing is applied in scenarios where the objective is to verify that the program
handles all control flows correctly, especially in complex decision-making or branching
logic. It helps ensure that all parts of the code are thoroughly tested, and paths with high
risk of defects (e.g., those involving multiple conditions) are given extra attention.
3. Discuss the model for testing and the significance of structured testing approaches.
o Answer: A model for testing provides a systematic approach to identifying and
executing tests. The model ensures that testing is organized and comprehensive.
Some key components of a testing model include: