Group that looked at Miami syllabus

advertisement
Group that looked at Miami
syllabus
Current Syllabus (with regards to
testing)
• 2: To be able to identify
eliminate
Testingand
is already
in errors
in programs
course (albeit in a
– 2.1: Describe thevague
difference
betweenWe
a syntax
manner).
error, run-time error,
and logic
error
focused
on the
level
– 2.2: Read errors reported by the compiler and use
at
which
to
put
in
those error messages to correct the syntax
into this course.
– 2.3: Use techniques and tools for debugging
programs
– 2.4: Design and document a complete set of test
cases and use this to identify logic errors
Proposed outcome
• 2.4: Design a set of test cases based on
boundary values and equivalence classes and
use these to identify logic errors.
Idea #1: Test identification
• Goal: Teach basic testing concepts such as
boundary values and equivalence classes
• Assignment: Give students a method and have
them identify test cases
• Don’t have to worry about confusing students
with notation
Example: A good party
• A good party has to have at least 10 people
and more than 5 programmers
– Okay maybe my criteria for a good party is
different than yours
• Method goodParty(int people, int
programmers)
• What are some tests we should run
Idea #2: Test identification
• Give students .exe and ask them to find errors.
• Reduces perverse incentives for students in
testing their own code
• Could be extended to code-based testing
Idea #3: Writing testers
• Have students write testers as a main method
• Give structure to students
– Something similar to Junit but more forgiving
• Example: Put each test in a separate method that
begins with test
• Stagger due dates for project/tester
• Will make them appreciate Junit later
Later Progression
• CS 2
– Introduce Junit
– Introduce statement coverage and tools (EMMA)
• CS 3 (Data Structures)
– Similar tools for C++
• Integration Testing/Test Drive Development
covered in Software Engineering course
– Oftentimes taken concurrently with CS 3
Evaluation Plan for CS1
• Pre/Post Survey/Assessment
– Importance of testing
– Simple specification, identify test cases
• Need rubric
• Measure grade of final project and compare
control vs. experimental
– Don’t have students turn test cases in
– Survey students if they used testing techniques
Download