STM SEM Prep - Unit 1
5 Marks
Q1. Explain the purpose of testing in software
development.
Ans. Testing in software development is performed to
ensure that software products are reliable, meet user
requirements, and are free from defects before deployment
or release.
Key Purposes of Testing
Bug Detection: Testing allows early identification and
correction of errors or flaws in the software, minimizing
the chances of releasing defective products.
Quality Assurance: It verifies that the software meets
functional and non-functional requirements, enhancing
product quality and user satisfaction.
Risk Reduction: Early testing helps catch issues when
they are less expensive to fix, reducing risks related to
poor quality, security vulnerabilities, or performance
bottlenecks.
Requirement Validation: Testing confirms that the
software adheres to business needs and technical
specifications, highlighting any gaps or unmet
requirements.
STM SEM Prep - Unit 1 1
, Efficiency Improvement: Comprehensive testing
streamlines development by preventing repeated bug
fixes and facilitating smooth collaboration between
developers and testers.
Compliance and Reliability: Ensures the software
meets industry standards, regulatory requirements, and
provides reliable and robust performance.
Types and Impact of Testing
Functional Testing: Checks if software functions as
expected against requirement documents.
Usability Testing: Assesses how user-friendly and
intuitive the software is.
Performance Testing: Evaluates scalability and
response times under varying workloads.
Security Testing: Detects vulnerabilities to safeguard
user data and privacy.
Compatibility and Regression Testing: Ensures the
software works across platforms, and that updates do
not break existing functionality.
Overall, testing in software development makes products
robust, reliable, and suitable for their intended environment,
thus saving time and resources over the software’s
lifecycle.
Q2. Describe any 3 dichotomies used in
software testing with examples.
STM SEM Prep - Unit 1 2
, Ans. Three major dichotomies used in software testing are:
1. Static vs Dynamic Testing
Static Testing: Involves analyzing software without
executing the code. Examples include code reviews and
static analysis tools, which help find errors early in the
development process.
Dynamic Testing: Involves running the code to find
defects by observing the software's behavior during
execution. Examples include unit testing, integration
testing, and system testing.
Example: Reviewing a module’s source code for syntax
errors (static) vs executing test cases to validate
functionalities (dynamic).
2. Black Box vs White Box Testing
Black Box Testing: Tests the software from an external
perspective, without knowledge of internal code. It
focuses on inputs and expected outputs. Example:
Checking if a login form accepts valid credentials and
rejects invalid ones.
White Box Testing: Examines internal logic, structure,
and code paths. It requires programming knowledge
and ensures all code branches are tested. Example:
Writing unit tests that confirm every path in a piece of
code works correctly.
Example: A tester verifies a payment function just by
entering values (black box), while another writes test
STM SEM Prep - Unit 1 3
, scripts that traverse each conditional path in the
payment function (white box).
3. Positive vs Negative Testing
Positive Testing: Validates the system works as
expected for valid input and normal use cases.
Example: Entering correct user details in a signup form
to confirm account creation.
Negative Testing: Checks how the system handles
invalid, unexpected, or malicious input. Example:
Attempting to submit a signup form with empty fields or
malformed email addresses and ensuring appropriate
error messages are shown.
Example: Testing an application's upload feature with
valid file formats (positive) and invalid file formats
(negative) to ensure both cases are handled properly.
These dichotomies help structure the testing process and
ensure robust software quality from multiple perspectives.
Q3. Analyze the different types of bugs based
on their taxonomy.
Ans. The taxonomy of software bugs classifies bugs based
on their nature, cause, impact, and occurrence in the
software lifecycle. Here are key types of bugs based on
their taxonomy:
1. Requirements, Features, and Functionality Bugs
STM SEM Prep - Unit 1 4
5 Marks
Q1. Explain the purpose of testing in software
development.
Ans. Testing in software development is performed to
ensure that software products are reliable, meet user
requirements, and are free from defects before deployment
or release.
Key Purposes of Testing
Bug Detection: Testing allows early identification and
correction of errors or flaws in the software, minimizing
the chances of releasing defective products.
Quality Assurance: It verifies that the software meets
functional and non-functional requirements, enhancing
product quality and user satisfaction.
Risk Reduction: Early testing helps catch issues when
they are less expensive to fix, reducing risks related to
poor quality, security vulnerabilities, or performance
bottlenecks.
Requirement Validation: Testing confirms that the
software adheres to business needs and technical
specifications, highlighting any gaps or unmet
requirements.
STM SEM Prep - Unit 1 1
, Efficiency Improvement: Comprehensive testing
streamlines development by preventing repeated bug
fixes and facilitating smooth collaboration between
developers and testers.
Compliance and Reliability: Ensures the software
meets industry standards, regulatory requirements, and
provides reliable and robust performance.
Types and Impact of Testing
Functional Testing: Checks if software functions as
expected against requirement documents.
Usability Testing: Assesses how user-friendly and
intuitive the software is.
Performance Testing: Evaluates scalability and
response times under varying workloads.
Security Testing: Detects vulnerabilities to safeguard
user data and privacy.
Compatibility and Regression Testing: Ensures the
software works across platforms, and that updates do
not break existing functionality.
Overall, testing in software development makes products
robust, reliable, and suitable for their intended environment,
thus saving time and resources over the software’s
lifecycle.
Q2. Describe any 3 dichotomies used in
software testing with examples.
STM SEM Prep - Unit 1 2
, Ans. Three major dichotomies used in software testing are:
1. Static vs Dynamic Testing
Static Testing: Involves analyzing software without
executing the code. Examples include code reviews and
static analysis tools, which help find errors early in the
development process.
Dynamic Testing: Involves running the code to find
defects by observing the software's behavior during
execution. Examples include unit testing, integration
testing, and system testing.
Example: Reviewing a module’s source code for syntax
errors (static) vs executing test cases to validate
functionalities (dynamic).
2. Black Box vs White Box Testing
Black Box Testing: Tests the software from an external
perspective, without knowledge of internal code. It
focuses on inputs and expected outputs. Example:
Checking if a login form accepts valid credentials and
rejects invalid ones.
White Box Testing: Examines internal logic, structure,
and code paths. It requires programming knowledge
and ensures all code branches are tested. Example:
Writing unit tests that confirm every path in a piece of
code works correctly.
Example: A tester verifies a payment function just by
entering values (black box), while another writes test
STM SEM Prep - Unit 1 3
, scripts that traverse each conditional path in the
payment function (white box).
3. Positive vs Negative Testing
Positive Testing: Validates the system works as
expected for valid input and normal use cases.
Example: Entering correct user details in a signup form
to confirm account creation.
Negative Testing: Checks how the system handles
invalid, unexpected, or malicious input. Example:
Attempting to submit a signup form with empty fields or
malformed email addresses and ensuring appropriate
error messages are shown.
Example: Testing an application's upload feature with
valid file formats (positive) and invalid file formats
(negative) to ensure both cases are handled properly.
These dichotomies help structure the testing process and
ensure robust software quality from multiple perspectives.
Q3. Analyze the different types of bugs based
on their taxonomy.
Ans. The taxonomy of software bugs classifies bugs based
on their nature, cause, impact, and occurrence in the
software lifecycle. Here are key types of bugs based on
their taxonomy:
1. Requirements, Features, and Functionality Bugs
STM SEM Prep - Unit 1 4