Whats a chain
chain:
sequence of nocdes where each node:
has exctly one indegree and one out degree
every two consecutive nodes in that sequence has an edge between them
What is structural testing
testing that uses program structure (e.g., flow graphs) to measure test adequacy and identify gaps in test sets.
finite feasible
is all nodes always finitely feasible read
No, it is not always guaranteed to be finitely feasible. The all-nodes coverage criterion is only finitely feasible when restricted to reachable nodes. Programs may contain dead code, making some nodes unreachable. Determining whether a node is reachable in general reduces to the halting problem, which is undecidable, so reachability itself is undecidable. Therefore, all-nodes coverage is only finitely feasible when limited to reachable nodes.
Advantages of structural
Disadvantages of structural
What is regression testing
Testing that ensures new changes do not break existing working functionality.
Purpose of regression testing
When regression testing
When is Regression Testing Performed?
How regression testing works
Name 3 techniques in regression testing as well as pros and cons
Why regression testing important
Why is Regression Testing Important?
challenges with regression
Challenges in Regression Testing
Whats a maximal chain
maximal chain: a chain such that adding any other adjacent node would make it lose its property of being a chain
What is a dd path
a dd path is a set of that is either :
. a single node ( start or terminal)
. special node ( branching node - outdegree is >=2 or merging node - indegree is >=2 )
. a maximal chain
EACH NODE BELONGS TO EXACTLY ONE DD PATH
What is a dd path graph
A DD-path graph is obtained from the original control-flow graph (CFG) by:
Collapsing each maximal chain into a single node, and
Keeping all start, terminal, branch, and merge nodes as single nodes, and
Preserving the control-flow edges between these new nodes.
When is dd path graph adequate
for each node or edge in dd path graph theres a test case covering it
READ VERY IMPORTANT
dd path coverage is equivalent to edge coverage BUT REQUIRES LESS CHECKS
This is because we group maximal chains into one unit
Read very important
dd path coverage subsumes node coverage because:
each node belongs to exactly one dd path so if you have full dd path coverage you have full node coverage
is dd path coverage complete ?
dd path coverage:
Not complete ( no gurantee all bugs found)
solution:
use stronger adeqiacy criterial ( prime paths…) -> However problem with this is that it leads to more test cases and no guarantee that more bugs will be found -> tradeoff between potential reward of stronger adequacy and expensiveness to implement this stronger critera
another solution you can do is you switches ( or if elses) instead of sequential condtions to reduce risk of bugs
What is a simple path
simple path - path that visits A node at most once ( except potentially start and end)
tip : no repetition except potentially start and end
what is a prime path
prime path -
simple path that cannot be extended without losing its property of being simple path
what is adequacy in prime paths
for each prime path there is a test case that covers it
Informally -
test case covers every simple path and up to two iterations of a loop
cyclomatic number
the no of linearly independent paths in a programs control flow graph