Testing in CS1 Lennie Cooper Kevin Lawrence LeAndrew Davis Djuradj Babich Testing in CS1
Course Description Introduction to OO Programming in C++ An introductory course in C++ programming. It covers the syntax and the rules of the C++ language, including how to code, compile, and execute programs. Students will learn program design, structured modular programming, arrays, report generation, and file processing, including basic software testing concepts and techniques. 11/13/2018 Testing in CS1
Formalize Testing @ the end of chapter on Basic Concepts Introduce basic testing concepts: Define Testing Introduce Terminology Define Test Case/Suite… Introduce basic test case classifications: Black-Box White-Box 11/13/2018 Testing in CS1
Assignment w/ Testing: Example Assignment: Example Program allows cashier to enter customers age as input. It determines if customer is allowed to purchase alcoholic beverage. The output is either Allow (age >=21) or Prohibit (age<21). Submission requirements example: Pseudo Code/Implementation Flow Chart Document Test Suite Document (w/out tool support) 11/13/2018 Testing in CS1
Test Suite Document: Example Test Case ID Testing Technique Purpose Set Up Input Expected Output Actual Output TC1 Equivalence Underage Test Execute Program 12 Prohibit TC2 Of Age Test 27 Allow TC3 Boundary Underage Test 20 TC4 22 TC5 21 11/13/2018 Testing in CS1
Introduce 4 Testing Techniques @ the end of chapter on Decision Structure: Equivalence Testing Boundary Testing @ the end of chapter on Repetition Structure: Control Flow-Based Testing: Statement Coverage Branch Coverage 11/13/2018 Testing in CS1
Integrate Testing Chapter Testing Concept Overview N/A Basic Concepts Formalize Testing I/O Decision Introduce Equivalence and Boundary Testing Test suite document required with lab submissions Repetition Introduce Statement and Branch Coverage Testing Test suite document required with lab submissions Functions Records Arrays Classes Use all 4 testing techniques as assigned Test suite document required with lab submissions 11/13/2018 Testing in CS1
Evaluation Plan Assess student’s knowledge of testing Pre-Test (administered @ the beginning of the lecture that formalizes software testing) Post-Test (administered during the last two weeks of the semester) Grade distribution for labs excludes testing Quality Rubrics Obtain student feedback on usefulness of testing Survey measured in a likert scale (administered during the last two weeks of the semester) Keep track of introduced overhead Instructor’s Log 11/13/2018 Testing in CS1
Question, Comments, Concerns, and Queries? Thank You Question, Comments, Concerns, and Queries? 11/13/2018 Testing in CS1