Quality
Correctness
Efficiency
Correctness
Formal
Correctness Proof:
No practical general method due to
complexity of software -> Limited
application and hence Very impractical.
Testing:
Repeatedly test-running a program.
Key factors:
1. Thoroughness (How many times to test
and how
effectively to cover all possible execution
paths of
the program?)
2. Selection of test input cases: A different
Efficiency
Two
factors
1. execution speed (execution
time)
2. memory requirement
Execution time is more critical as
memory size can be increased at
relatively low cost due to
technology advances.
Exact execution time is not only
difficult to measure but also not
O(n )
3
Represents
So
But,
So,
We would like to find a time complexity function for the above function.
Let t(n) be the actual time for execution given the parameter n.
We see that if n=0 or n=1, t(n) = a certain constant time c 1 .
Otherwise, that is, if n>=2, t(n) = c1 + t(n-1) + t(n-2) + c2 .
t(n) = c3 + t(n-1) + t(n-2) for yet another constant c3