TESTING AND DEBUGGING
Fundamentals of Computer Science I
zombie[0] zombie[2] zombie[5] zombie[1] zombie[3] zombie[4]
TESTING AND DEBUGGING Buuuuugs zombie[3] zombie[1] zombie[4] - - PowerPoint PPT Presentation
TESTING AND DEBUGGING Buuuuugs zombie[3] zombie[1] zombie[4] zombie[5] zombie[2] zombie[0] Fundamentals of Computer Science I Outline Debugging Types of Errors Syntax Errors Semantic Errors Logic Errors Preventing
Fundamentals of Computer Science I
zombie[0] zombie[2] zombie[5] zombie[1] zombie[3] zombie[4]
3
4
“There has never been an unexpectedly short debugging period in the history of computers.”
“As soon as we started programming, we found out to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be
programs.”
5
6
7
– For integer N > 1, compute its prime factorization
– Possible application: Break RSA encryption
8
it divides
9
10
11
12
13
% python Factors1.py 98 Traceback (most recent call last): File "Factors1.py", line 5, in <module> while n % i == 0: ZeroDivisionError: integer division or modulo by zero
14
% python Factors2.py 5
15
% python Factors3.py 5 TRACE 2 5 TRACE 3 5 TRACE 4 5
16
% python Factors4.py 5 5 % python Factors4.py 6 2 3 % python Factors4.py 98 2 7 7 % python Factors4.py 3757208 2 2 2 7 13 13 397
17
% python Factors4.py 11111111 11 73 101 137 % python Factors4.py 11111111111 21649 51329 % python Factors4.py 11111111111111111 2071723 5363222357
18
% python Factors5.py 98 2 7 7 % python Factors5.py 11111111 11 73 101 137 % python Factors5.py 11111111111 21649 513239 % python Factors5.py 11111111111111 11 239 4649 909091 % python Factors5.py 11111111111111111 2071723 5363222357
19
% python Factors.py 3757208 2 2 2 7 13 13 397 % python Factors.py 9201111169755555703 9201111169755555703
digits i <= n i*i <= n 3 instant instant 6 0.15 seconds instant 9 77 seconds instant 12 21 hours * 0.16 seconds 15 2.4 years * 2.7 seconds 18 2.4 millennia * 92 seconds
* estimated
20
21