Download presentation
Presentation is loading. Please wait.
Published byAnis Hester Baker Modified over 9 years ago
1
N ORTH D AKOTA S TATE U NIVERSITY D EPARTMENT OF C OMPUTER S CIENCE © NDSU S OFTWARE T ESTING R ESEARCH G ROUP Integrating Testing into the CS1 Syllabus at NDSU Richard Rummelt June 24, 2010 WISTPC ’ 10 Florida International University, Miami FL
2
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Outline Overview of Approach Addition to Course Objectives Modifications to Projects 2
3
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Overview of Approach Minimally Intrusive Approach Looked at the breakdown of class work to inject testing into existing assignments, and projects Focus on tentative lab schedule for this discussion Said “NO” to full-fledged JUnit at the beginning of the CS1 course NDSU CS1 Syllabus Lab Assignments and Labs Seven or Eight Assignments (Homeworks) Seven or Eight In-Lab Projects 3
4
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Course Objectives (Java Projects) Computing and problem solving concepts Object Oriented Programming techniques and terminology Implementation of classes and methods Variables and data types Simple boolean logic Control structures Exception handling Collection structures & iteration techniques Sorting and searching basics Inheritance and polymorphism Standard style conventions Program design concepts Sufficient documentation Testing and debugging concepts 4
5
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications Simplicity of projects 1 and 2 did not lend themselves to much discussion of testing Project 1 was basic “hello world” and project 2 expands on that to include variables and the scope of instance variables Instead we focused on integrating testing during the third week of the semester in both the lectures and the lab work. 5
6
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d) Project 3 Basic elevator problem where they have to implement methods of an elevator and existing requirement was to run a pre-defined scenario and submit the output file Extension of Project 3 with Test Get students to think about their own scenarios of system usage and the expected outputs and write this up manually. Introduces concepts of test inputs, and expected outputs (oracles) 6
7
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d) Project 4 String manipulation problem where they have to implement methods Extension of Project 4 with Test Get students to use BlueJ’s ‘object bench’ to test individual methods by predicting the return values and/or variable values given various input parameters and keep a simple log of this. Continues and reinforces concepts of test inputs, and expected outputs (oracles) 7
8
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d) Project 5 Poker game with many new elements: multiple classes, conditional statements, passing objects, Object class methods (clone, equals, instanceOf) randomization, etc. Extension of Project 5 with Test This is where debugging is introduced. JUnit could also be introduced at this point by requiring a few clearly defined (almost, but not quite, given) Provides the first exposure to a testing tool. 8
9
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Project Modifications (cont’d) Project 6 The game of NIM. New concepts are looping, validity checking, exception handling, pausing threads, more advanced math calculations, etc. Extension of Project 6 with Test The complexity of this project makes this a good point to require JUnit test cases. The numeric nature of this project makes it a good place to teach ‘boundary value analysis’. This would be the point at which students would begin thinking of and writing their own test cases. 9
10
© NDSU S OFTWARE T ESTING R ESEARCH G ROUP Points to Note Initially we use some features of the existing IDE to introduce the students to practical testing without the complexities of a new testing tool We use the Object Bench of BlueJ as a test driver By the 6 th project (of 8) students are familiar with JUnit, and using it independently For the remaining projects they continue using JUnit and refine their testing skills. 10
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.