Testing
Pre- and Post-Conditions
-
Review the
MyroC.hheader file documentation.- In the documentation, find at least two functions that have stated a "pre-condition" and at least two functions that have stated a "post-condition". (Note that every function should have postconditions, otherwise there would be no point in calling it.)
-
In anticipation of later work in this lab, review the
documentation for the function
rMotors. The documentation does not explicitly state pre-conditions for this function, but one might infer such conditions. Write a careful statement of the implied pre-condition(s) forrMotors.
-
The program
motors-test.csets the motor speeds of the Scribbler to the givenleftspeedandrightspeed.-
Initialize the variables
leftspeedandrightspeedto 1; compile and run the program. -
Initialize the variables
leftspeedandrightspeedto 1 and -1 respectively. Compile and run the program. -
Initialize the variables
leftspeedandrightspeedto 2 and -1. respectively. Compile and run the program. - Now try using values 6 and 5 respectively.
- Try other numbers that you might need to figure out what works and what doesn't.
- How do these experimental results compare with the pre-conditions that you inferred in Step 1b?
-
Initialize the variables
The assert Function in C
-
Modify the same code,
motors-test.c, to useassertso that it will test the precondition(s) you wrote forrMotorsinmotors-test.c.
Note: You can read about C's assert function in
the accompanying reading
and/or using the command man assert in a terminal
window. Better yet, read about assert in both places!
Choosing Test Cases
-
Program
follower-test.cis supposed to use the Scribbler 2 IR sensors to follow an object (such as a sheet of paper held in front of it) if it moves.-
Develop two test plans for this program to determine whether
the program works correctly. Apply both black-box
and white-box testing strategies by identifying test cases that
will cover a full range of situations that might be encountered
in executing the program. Recall:
- Black-box testing is when the problem is examined to determine the logical cases that might arise. Test cases are developed without reference to details of code.
-
White-box testing is when the code is examined to determine each of the possible conditions that may arise, and tests are developed to exercise each part of the code.
Although black-box testing should not, for white-box testing you will consult the source code for
follower-test.c.
-
Run
follower-test.cwith all the cases from your test plan to determine whether the program works correctly. - Fix errors you found in the program.
- Run the program again with all the cases from your test plan to be sure that it now works correctly.
-
Develop two test plans for this program to determine whether
the program works correctly. Apply both black-box
and white-box testing strategies by identifying test cases that
will cover a full range of situations that might be encountered
in executing the program. Recall:
