CMPT 120 Topic Software Development Process Last step
- Slides: 23
CMPT 120 Topic: Software Development Process Last step -> Testing and Debugging
Learning outcomes At the end of this course, a student is expected to: • Create (design) simple algorithms • Create (design) small to medium size programs using Python: • Decompose a solution into parts • Translate pseudocode to/from Python programs • Use the core features of Python to design programs to solve problems • Test small to medium size programs in Python: • Test boundary case • Describe and apply techniques to debug programs: • Recognize and categorize errors as syntax, runtime, semantic 2
Last Lecture • Strings • Indexing • Slicing • Immutable 3
Today’s Menu • Let’s practice using the Python building blocks we have seen so far • Last step of the software development process -> 5. Testing (and debugging) • Type of errors 4
Remember? Software Development Process 1. Problem Statement • Make sure we understand what the problem 2. a) Solution(s) Design • We come up with one or more solutions -> solution is expressed as an algorithm b) Identify data involved in problem • Input – identify data needed in order to solve problem • Structure and represent data into algorithms/programs • Output – identify data produced by solution to problem 3. Selection • We select the “best” solution by analyzing algorithms • Which one is the most effective/efficient? 4. Implementation • We implement the algorithm into a computer program 5. Testing and debugging • Does the program execute (run)? • Does it solve the problem? 5
5. Testing and debugging • Does the program execute (run)? • If it executes then the answer is Yes -> Youpi! • If it does not execute because there is an error (a bug), then we need debug • Debugging: identifying and correcting errors • What could go wrong? 6
A bit of history – Grace Hopper and UNIVAC • https: //upload. wikimedia. org/wikipedia/commons/3/37/Grace_Hopper_and_UNIVAC. jpg 7
Debugging • From Grace Hopper’s notes: 8 Source: https: //mostinterestingfacts. files. wordpress. com/2009/04/bug. jpg
#1 - Syntax error • Occurs when our Python code does not follow the Python syntax rules • Our textbook says that … • if there is a syntax error anywhere in our program, Python displays an error message and quits, and we will not be able to run the program • Example: 9
#1 - Syntax error • Looking at the software development process, at which step would a syntax error be detected? • In which step(s) would we fix a syntax error? And how do we fix a syntax error? 10
5. Testing and debugging • Does the program solve the problem? • We answer this question by testing our Python program using a variety of test cases, each using • Valid data • Invalid data • Boundary data • When testing, our goal is to “crash” our program 11
Test case • Test case contains 1. Test data: 1 particular set of specific data (either valid, invalid or boundary), i. e. , values 2. Expected result: must be computed beforehand (before we start our testing) • Before feeding the test data into our program, we must know what the result will be otherwise we will be unable to ascertain whether our program works or not 12
Example of test cases for our Average_of_5_Midterms. py Test Case # Test Data Expected Results 1 all 5 midterms = 8 8. 00 2 mt 1 = 5, mt 2 = 6, 4. 20 mt 3 = 7, mt 4 = 3, mt 5 = 0 Can you think of another test case? 3 13
Observations about the creation of test cases 14
5. Testing and debugging • We test our Python program using 1 test case at a time • We feed the test data of the test case into our executing program • We compare its results (perhaps displayed on the computer monitor screen) with the expected results of the test case • If both results are the same -> Youpi! • If they are not, then we need to debug • The error could be in … • • Our program Our expected results • Once we debugged, we test our program again with all the test cases we have used so far • What could now go wrong? 15
#2 - Runtime error • Our textbook defines a runtime error as follows: • The second type of error is a runtime error, so called because the error does not appear until after the program has started running (i. e. , at runtime) • These errors are also called exceptions because they usually indicate that something exceptional (and bad) has happened 16
#2 - Runtime error - Example • It may be the case that the data assigned to our variables are such that an error occurs • Example: sum = float(input("Please enter the sum: ")) # at this point the user enters 2635 num. Of. Stds = float(input("Please enter number of students: ")) # at this point, the user enters 0 average = sum / num. Of. Stds • Result: Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sum / num. Of. Stds Zero. Division. Error: integer division or modulo by zero 17
#2 - Runtime error • Looking at the software development process, at which step would a runtime error be detected? • In which step(s) would we fix a runtime error? And how do we fix a runtime error? 18
#3 - Semantic error • Our textbook defines a semantic error as follows: • If there is a semantic error in our program, it will run without generating error messages, but it will not produce the expected (correct) result • So, in a sense, the meaning of the program is erroneous as it does not do what its intended purpose (its description) said it would • The bottom line: our Python program will not solve the problem!!! 19
#3 - Semantic error • Can you think of an example? 20
#3 - Semantic error • Looking at the software development process, at which step would a semantic error be detected? • In which step(s) would we fix a semantic error? • Identifying semantic errors (debugging) can be tricky because it requires us to hand trace the program trying to figure out where it went wrong • Trick: work backward -> demo 21
Summary • Practice using the Python building blocks seen so far • Last step of the software development process -> 5. Testing (and debugging) • Type of errors 22
Next Lecture • Lists 23
- Step 1 step 2 step 3 step 4
- Cmpt 120 sfu
- Anne lavergne sfu
- What is a function header in python
- Cmpt 120
- Steps in photosynthesis
- Step-by step inventory process
- What is a photogram?
- Process of making apple juice step by step
- Fabric process step by step
- Step 1 in 7 step improvement process
- What is the last step in the marketing research process?
- 120*120 px
- 100+80+60+40+20
- Example of specific topic
- Narrowed down topic examples
- Step up writing
- معنیkinds
- Flush terminal plane
- Creating a dinosaur sculpture step by step
- What is the first step in writing an informative essay
- How to write an argumentative essay step by step
- Step up step back
- Factoring ways