essential to guarantee confidence in bug-free solution delivery\naccounts for almost half of software development cost; yet not present in final product shipped\n\n
rapid prototyping; clearly expose the underlying algorithm\n
simple:instruction set of one-byte opcodes, followed by optional parameter\nfast:in terms of execution (beneficial for iterations)\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
# Demo 1\n# figure out shape of function input arguments\ncd /Users/lwy08/Dropbox/FYP/fyp/fyp; python main.py trivial\ncd trivial-tests; nosetests; cd ..\n\n# Demo 2a\n# test for branch coverage using (random) range of values\n# open absolute.py\ncd /Users/lwy08/Dropbox/FYP/fyp/fyp; python all_paths.py absolute.pyc\n# open test_absolute.py\npython test_absolute.py\n\n# Demo 2b\n# graphic visualisation script\ncd /Users/lwy08/Dropbox/FYP/fyp/fyp; python gui.py\n\n
- tracer\n- also supports recursive function testing\n\n
\n
\n
\n
\n
Performance - Runtime complexity + space efficiency\nlimits imposed on recursion depth, generating test data values & #iterations for type inference\n
CC measures #linearly independent paths through the source code\n