0% found this document useful (0 votes)
16 views4 pages

Unit 1

Uploaded by

lavanya1985 tumu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views4 pages

Unit 1

Uploaded by

lavanya1985 tumu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

1 Mark Questions

1. What is the purpose of software testing?


o Answer: The purpose of software testing is to ensure that software functions as
expected, meets the requirements, and is free from defects or bugs. It involves
identifying issues and ensuring the software performs correctly in various
conditions to deliver high-quality products.
2. What are dichotomies in software testing?
o Answer: Dichotomies in software testing refer to the classification of test
outcomes into two categories: pass or fail. It helps testers differentiate between
correct behavior (success) and incorrect behavior (failure) of the system.
3. Define a predicate in the context of path testing.
o Answer: A predicate is a condition or decision in the program that can evaluate
to either true or false. It is often used in the context of control flow, where the
execution path may change based on the truth value of the predicate.
4. What is meant by path sensitizing in path testing?
o Answer: Path sensitizing is the process of selecting inputs that force the program
to follow a specific path during execution. It ensures that the path is executable
and relevant for testing.
5. What are achievable paths in path testing?
o Answer: Achievable paths are the paths that can actually be executed during the
program's run. These paths are based on the program's logic and constraints (e.g.,
loops or conditions) that must be satisfied to traverse through the path.

5 Marks Questions

1. Explain the consequences of bugs in software systems.


o Answer: Bugs in software systems can have various consequences depending on
the severity of the issue. The consequences include:
 Reduced reliability: Bugs can lead to unpredictable system behavior,
reducing user confidence.
 System failure: Critical bugs may cause the system to crash or halt,
resulting in downtime.
 Security risks: Some bugs, especially vulnerabilities, can lead to security
breaches, data theft, or unauthorized access.
 Increased cost: The cost of fixing bugs increases as the software
progresses to later stages of development or after release.
 Reputation damage: Bugs in released products can harm the reputation of
the organization, leading to customer dissatisfaction and loss of business.
2. What is a flow graph in path testing? Explain its significance.
o Answer: A flow graph is a graphical representation of a program's control flow,
consisting of nodes (representing program statements or blocks of code) and
edges (representing the control flow between them). Flow graphs help visualize
how the program's execution progresses and which paths can be taken. It is
crucial in path testing because it allows testers to:
 Identify all possible paths the program can take.
 Ensure comprehensive coverage by selecting critical paths to test.
 Detect potential errors or bugs in the logic by examining execution flows.
3. What are path predicates and how are they used in path testing?
o Answer: A path predicate is a logical expression that determines the condition
under which a particular path in a flow graph will be executed. It is derived from
the conditions in the program that influence control flow, such as if-else
statements or loops. Path predicates help identify which input values will lead to
the execution of a particular path, allowing testers to focus on the most relevant
paths during testing.

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:

1. Creating a flow graph of the program, identifying the nodes (program


statements) and edges (control flow between statements).
2. Identifying all possible paths in the flow graph, ensuring that each path
is covered at least once during testing.
3. Path sensitization, where inputs are selected to exercise a specific path,
ensuring that the path is executable and relevant.
4. Path instrumentation, where test data is introduced to trigger different
paths in the program. Tools or code modifications may be used to monitor
and verify path execution.
5. Executing the tests and verifying that the program behaves as expected
along each selected path.

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:

 Test Planning: Involves defining the scope, resources, objectives, and


schedules for testing.
 Test Design: Developing test cases, test scripts, and selecting the right
testing techniques (e.g., path testing, boundary value analysis).
 Test Execution: Running the tests based on the designed test cases.
 Test Reporting: Documenting the results and defects found during
testing, including severity and impact.
 Test Closure: Ensuring all objectives are met and closing the testing
phase after reviewing all test results.

The significance of structured testing approaches includes:

o Consistency: A model ensures that testing is consistent and repeatable across


different phases of development.
o Comprehensiveness: Structured approaches ensure that all aspects of the
software, including edge cases, are tested.
o Risk Management: By organizing tests based on priority and severity, risks can
be mitigated early in the development process.
o Efficiency: A well-defined model helps optimize resource use, ensuring that time
and effort are focused on the most critical parts of the software.

You might also like