STM - Unit-1,2,3 Important Questions Answers
STM - Unit-1,2,3 Important Questions Answers
Long Questions
1. State and explain various dichotomies in
software testing.
Dichotomies in software testing represent pairs of opposing
concepts or approaches that influence the testing process and
shape the overall quality of software. These dichotomies reflect
the inherent complexities and trade-offs involved in software
testing, where testers must make informed decisions to balance
contrasting perspectives and achieve effective testing outcomes.
Manual testing:
Automation testing:
Black-box testing:
White-box testing:
Identifies code-level defects and implementation errors
Validates the correctness of logic and algorithms
Verifies code coverage and adherence to coding standards
Static testing:
Dynamic testing:
Exploratory testing:
Enables quick discovery of new defects and potential
problems
Promotes creative thinking and problem-solving skills
Facilitates testing in dynamic and evolving environments
Scripted testing:
Destructive testing:
Constructive testing:
To indicate a Sequence:
To indicate "IF-THEN-ELSE":
Path Selection
Predicates
x > 0
Regular Expressions
There are many different ways to classify bugs, but some of the
most common taxonomies include:
1. By Severity
2. By Frequency
Frequent: Bugs that occur frequently, on every use of the
system.
Occasional: Bugs that occur occasionally, but not on every
use of the system.
Rare: Bugs that occur rarely, and may not be reproducible.
3. By Reproducibility
4. By Root Cause
5. By Testing Phase
This method involves executing the program and tracking the flow
of data values during execution. It monitors the values of
variables as they are assigned, modified, and used throughout the
program to identify potential data flow errors, such as incorrect
calculations, invalid data types, and inconsistent data updates.
Nice Domains
Path Expression
A path expression is a formal representation of a sequence of operations or actions that can be performed on a shared object by concurrent processes. It defines the permitted
order in which operations can be executed to ensure data consistency and prevent race conditions. Path expressions are often used in concurrency control protocols to specify
synchronization rules and ensure that concurrent processes access shared data in a safe and orderly manner.
1. Operations: Represent actions that can be performed on a shared object, such as read, write, or lock.
3. Concatenation: Used to combine operations into sequences, indicating that one operation must be completed before the next can begin.
4. Alternation: Used to represent alternative execution paths, indicating that either one of two or more operations can be executed.
5. Repetition: Used to specify that an operation or a sequence of operations can be repeated multiple times.
Path Product
A path product, also known as a path composition, is a combination of two or more path expressions. It represents the concatenation of multiple execution paths, indicating that
the entire sequence of operations must be executed in the specified order. Path products are often used to describe complex control flow scenarios and to analyze the
interactions between different parts of a program.
To form a path product, the final operation of one path expression is connected to the initial operation of the next path expression. The resulting path product represents the
sequential execution of all the operations from the individual path expressions.
Path expressions and path products are closely related concepts that provide different perspectives on the control flow of a program. Path expressions focus on the individual
operations and their conditions, while path products focus on the overall sequences of operations and their interactions.
Path expressions are the building blocks of path products. They provide the basic units of operations and conditions that can be combined to form more complex execution
paths. Path products, on the other hand, provide a more holistic view of the control flow by representing sequences of operations that span multiple path expressions.
1. Control Flow Analysis: Identifying and analyzing possible execution paths through a program.
2. Test Case Generation: Generating test cases to cover different execution paths.
3. Defect Detection: Uncovering defects related to control flow logic and data consistency.
4. Concurrency Testing: Verifying the correctness of concurrent algorithms and data structures.
Here are some specific ways in which data flow testing can detect
data flow anomalies:
Ugly Domains Ugly domains, on the other hand, lack these desirable
properties and can make testing more difficult and error-prone. They can
introduce complexities that make it challenging to identify and test all
possible input cases.
Nice Domain:
Ugly Domain:
Domain Testing
Domain testing involves checking the program's behavior at and near the
boundaries of its input domain to ensure that it handles invalid or
extreme inputs gracefully and does not produce unexpected or incorrect
results. It aims to identify defects related to incorrect handling of
boundary conditions, such as:
Invalid input types: The program should reject invalid input types,
such as strings for numerical inputs or non-email addresses for email
input fields.