Unformatted text preview:

CS 350 slide set 9 M Overstreet Old Dominion University Fall 2005 Simplified Task Planning Template p 82 Rows include only Launch strategy Plan tasks and schedule System test plan Only one line per module but see next slide Postmortem Totals Columns include only Task Name Planned Value Plan hours by person Cumulative PV Total team hours Actual hours Cumulative hours Cumulative hours Size Actual Week Planned Week Task Plan Report per Module Task Design Design rev Code Code rev Compile Code insp Test data Test driver Test rev Test insp Testing Size Who Planhrs PV Act hrs Plan com date Act com date EV Another omission Given the limited time Log where errors are found only Omit noting where errors are inserted You must report errors found for each task Some tasks may be unlikely to discover errors but also include them in your error report Reading TSP text omit Ch 6 central part of CS 410 TSP text Ch 7 8 9 10 App B config mgmt will be discussed in class TSP text Read Ch 16 Managing yourself Ch 17 Being on a team Ch 18 Teamwork What s due when See class web site link under checklists Required forms checklist due dates Submit completed components to userid cs350 The grader will check for them there Comments Make sure you know what data you will need to report so it will take less time to provide it You set your own schedules Look over the forms NOW But we will be checking on what you submit prompting for things Project is about TSPi not coding Eval biased on determining if you followed TSPi Did you make reasonable plans time sizes req tasks Were you able to handle the inevitable surprises Did you set goals design inspect test record errors log time etc Did you measure your performance against your goals Did you support your team Term Project Requirements 1 Overview Loop M times Generate test data N numeric values Store N values in a file Run P programs Each read test data Executes Store output in a file Read output files to compare output from M programs Report differences Count differences Compute simple estimate off reliability of each program Requirements simplifying assumptions All programs to be tested read from standard input Test programs have a fixed set of names pgm01 pgm02 pgm03 etc All input is numeric All programs read their input until EOF All output is numeric Not desirable but simplifies coding But you don t know how much These programs may be buggy but are all supposed to do the same thing Requirements 3 Your program reads 3 values from standard input M the outer loop parameter the number of test cases N the number data values per test case P the number of programs Assume P is at least 2 Requirements Random values Use an existing random number generator do man random on a UNIX box You should generate values between 0 and 10 For debugging you want to be able to generate exactly the same set of random numbers on different runs Set the seed explicitly to a constant Requirements computing reliability 1 We will compute only an estimate of reliability If one program produces an output that disagrees with all other programs and they agree count this as an error for that one program If more than one program produces a different value assume all programs are in error See example next slide Two programs is a special case You can count either way but be sure you can handle this Requirements Reliability 2 If we re testing five programs Prog p1 p2 p3 p4 p5 Comment val 1 2 2 2 2 2 no error detected val 2 1 1 1 586 1 p4 error val 3 1 2 1 586 1 all programs in error val 4 5 5 5 5 p3 error Requirements Comparing Floats For coding simplicity assume all data to be compared are floats would be better to treat integer values differently from float or double values Assume two floats are equal if they differ by less than 0 01 Use pgm01 output as the basis for the percentage comparison Hints use system OS call Do man system on a UNIX box for documentation Example to run program abc from a C program and have it read from file Input as standard input and write to file Output as standard output use system abc Input Output System is an OS call to the operating fork a new shell and run the parameter in that shell as if you had typed that command Use of files Data generator module generates one file That file is read repeatedly once by each program being tested Testing generates several output files one per test program The comparison module Reads one value from each output file Loop using array of files Compare values reports and counts Loops until end of file What s hard to code 1 Example assume you have five versions of a program that read numeric data and compute the mean and standard deviation of input data A possible defect some version only produces the mean but not the standard deviation So in general your program does not know how much output to expect and different versions may produce different size output What s hard to code 2 What happens if one version fails and produces no output What happens if one version loops What happens if one version incorrectly produces nonnumeric output Answer ignore problems 2 and 3 handle 1 What s hard to code 3 Use of UNIX tmp directory for random data files Advantage cleaned out by OS You re not required to do this but it s the right way If you do this must generate a unique file name Good news you don t need to do this What s hard to code 4 Unexpected end of file What if the different output files have different numbers of values Then hit end of file on some but not all Suggestion get a version running that handles the case where all files have the same number of values and make sure that works Then add functionality anything But don t break Testing term project 1 No test data will be provided it s up to you Unit testing is required So you must provide a driver and test data for each unit Are any stubs required To test your program you will need to have several programs for it to run Consider using existing programs If you write them make them as simple as possible as long as you can use them to test your code thoroughly Testing 2 Consider programs each consisting of one line pgm1 cout 1 2 3 endl pgm2 cout 1 2 3 endl pgm3 cout 1 2 4 endl pgm4 cout 1 2 endl etc as useful How many requirements can you test using programs like these Announcements Be sure you look at code examples on class web site Exam 2 is scheduled for Dec 1 Will have short take home part and in class parts Will discuss in class …


View Full Document

ODU CS 350 - Lecture Notes

Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?