Software Testing Concepts: STLC, Bug Life Cycle & Metrics
Input Domain Testing
The input domain of a program is the set of all possible inputs that it can accept. Since testing every single input is impossible, input domain testing is used to partition the input space into manageable subsets, ensuring effective test coverage.
Explanation:
- Input domain testing is a black-box testing technique.
- Inputs are divided into equivalence classes (valid and invalid).
- Testers choose representative values from each class.
- Special focus is given to boundary values, since
wsasasdas
It gives a common checklist and language for quality (like usability, reliability, security), so teams set clear goals. It breaks each into measurable sub-points, which guide design and testing. Result: better coverage, fewer surprises, and software built and verified against the right qualities.
Apache Ant, it improves Maintainability → Modifiability because the build logic lives in one XML file that’s easy to change, and Portability → Installability because scripted one-command builds make
Read MoreCore Concepts in Software Testing and Code Quality
Graphs and Cyclomatic Complexity
A graph is a structure composed of nodes (also called vertices) and the connections between them, known as edges or arcs. They are used to represent relationships between elements.
Graph Types
- Directed: Connections have a specific direction (e.g., A → B).
- Undirected: Connections have no specific direction (e.g., A – B).
McCabe’s Cyclomatic Complexity
Cyclomatic complexity measures the number of linearly independent paths through a program’s source code. This metric helps
Read MoreFundamentals of Software Development, Testing, and Modeling
What is Software and Its Common Myths?
Definition of Software
Software is a set of instructions, data, or programs used to operate computers and execute specific tasks. It is the intangible component of computers, as opposed to hardware.
Types of Software
- System Software: e.g., Operating Systems
- Application Software: e.g., MS Word, Web Browsers
- Programming Software: e.g., Compilers, Editors
Common Software Myths
(Content for this section was not provided).
Core Software Engineering Concepts
Software Engineering
Read MoreSoftware Maintenance, Evolution, and Documentation Best Practices
Software Maintenance Fundamentals (Week 1)
Definition of Software Maintenance (SM)
- “The modification to a software product after delivery to correct faults.”
Maintenance vs. Software Evolution
| Maintenance | Evolution |
|---|---|
| All activities preventing failure or decay of a software system. | Activities that provide new or changed functionality only. |
Software Aging and Decay
- Software ages when it does not adapt to changing technology, user needs, or competitors.
Lehman’s Laws of Software Evolution
- Continuing Change:
- Real-
Foundations of Computation and Compiler Techniques
A Turing Machine (TM) is a theoretical model that defines an abstract machine capable of performing computations using a tape, a head for reading and writing symbols, and a finite set of states. The tape is infinite and divided into cells, each holding a symbol.
The machine reads the current symbol, changes it, moves left or right, and transitions between states based on a predefined set of rules. TMs can simulate any algorithm and are fundamental to understanding the limits of computation.
However,
