Skip to main content
Share Your Experience: Take the 2024 Developer Survey
8 votes

How to overcome the TDD/BDD time fallacy

I believe that the reason why students tend to come out opposed to using TDD/BDD (testing) is because they've been assigned to use it when it isn't necessary. Testing a "Hello World" program is 100% a ...
thesecretmaster's user avatar
  • 4,795
7 votes

Should unit testing be taught in introductory programming classes?

I'll assume that you mean a first programming course that uses a language (Java...) that has well integrated testing tools. If you just use unit testing as an add-on then I'd guess the proper answer ...
Buffy's user avatar
  • 36.4k
6 votes

How can I incentivize students to test their applications with end users?

Rather than just try to motivate them, you can change the structure of the assignment. Testing on family members and friends seems like it is the problem. Instead, break the assignment into two parts: ...
Buffy's user avatar
  • 36.4k
6 votes

How to overcome the TDD/BDD time fallacy

Give an assignment to write a function or class, and give stub code that includes tests. Initially all the tests fail. Let the students know that these and other similar tests will determine score ...
droid's user avatar
  • 161
6 votes

How to overcome the TDD/BDD time fallacy

The whole point of TDD is to try and reduce the number of defects in software. If your students are confident enough to think that they won't benefit from automated testing, fine — but have some tests ...
Aurora0001's user avatar
  • 3,516
5 votes

How to overcome the TDD/BDD time fallacy

The point of TDD, like many of the other answers have been saying, isn't really to test the code and find bugs, but to codify your requirements. Having requirements that are codified is useful when ...
FirstLastname's user avatar
4 votes

Automatic grading of test-cases

Have you thought about having a solution that you create and test the students test cases against your solution? Then you have a stable platform for running the student defined tests. Also run test ...
Fritz Sieker's user avatar
  • 1,213
4 votes

Should unit testing be taught in introductory programming classes?

It depends on what you mean by "used." The student projects might not lend themselves to TDD in that the early assignments will probably be very small and if the end up writing 90% of the project ...
Mike Zamansky's user avatar
4 votes

Should unit testing be taught in introductory programming classes?

I'm going to start my answer the same way as the only other answer so far and say it depends on the context of the course, but head in a different direction. The fact that you're calling the course ...
Piyush Parikh's user avatar
4 votes

Any auto grading site that supports all-testcases-in-one-file (and/or in github)?

At the TU Delft we've developed WebLab, which is used in various CS related courses. It has support for programming assignments, for which students code their solutions in a web-editor, and run their ...
Elmervc's user avatar
  • 41
4 votes

Are jUnit or TestNG simple enough for undergraduates to apply in a matter of weeks? What alternative?

Good on you for adding this into your class! But I admit that sounds it like a lot in a short time to me. My only practical thoughts are to (1) provide some starter code that gets the lab project ...
Ben I.'s user avatar
  • 33.7k
3 votes

How can I incentivize students to test their applications with end users?

You're at something of a dead end. The problem is intrinsic to the assignment; they are aware that, once their project is done, very little is likely to come of it. Thus, it isn't worth putting real,...
Ben I.'s user avatar
  • 33.7k
3 votes

Automatic grading of test-cases

If you run all implementations against all tests, then you can see anomalies. If you put results into a grid, then any failures should show up as a line: horizontal for implementations, vertical for ...
ctrl-alt-delor's user avatar
2 votes

How to overcome the TDD/BDD time fallacy

The first mistake teachers usually make is not changing the point of view: Unittests should be recognizes as "verifies what my code does" and not as "verifies my code is right". Unittests are ...
Timothy Truckle's user avatar
2 votes

Should unit testing be taught in introductory programming classes?

Yes, but introduce it one step at a time (Zone of Proximal Development). Manual testing is the absolute minimum, needed to know if you have written the program that you intend to (feedback). ...
ctrl-alt-delor's user avatar
2 votes

Should unit testing be taught in introductory programming classes?

That depends entirely on the context of your CS1 course. Are you teaching unit testing suite to your students? If you haven't learned something then how can you use it? If unittest is part of the ...
Kaneki's user avatar
  • 783
2 votes

What's a good unit testing assignment for Android?

I assume that there is some logic in the app, somewhere. Hard for me to imagine it otherwise. If you build the client side with a Model-View-Controller architecture, the testing can be done on the ...
Buffy's user avatar
  • 36.4k
2 votes

How to overcome the TDD/BDD time fallacy

I always have mixed feelings about TDD. If TDD is to emphasize the important to writing test code, yes by all means. But if TDD is to make you to write test code before implementation, NO I am totally ...
Qiulang 邱朗's user avatar
2 votes

Are jUnit or TestNG simple enough for undergraduates to apply in a matter of weeks? What alternative?

If you are willing to use TDD, even in an elementary course there is a solution. I've used it, though with older students. On the first day of the term, give a demo about how to develop a piece of ...
Buffy's user avatar
  • 36.4k
2 votes

Automatic grading of test-cases

Very interesting strategy. You are essentially putting the 10% test case-writers in the role of a sophisticated recruiting agent who is "interviewing" the rest of the 90% of the class for a job. It is ...
42-'s user avatar
  • 121
2 votes

Using autograding (Github Classroom) - pitfalls and best practices?

1, 2, & 3 In most cases, I'm okay with them having the tests ahead of time. The only thing that concerns me a bit is that they can edit the tests, and GitHub would use those. What I do, and it's ...
Ryan Nutt's user avatar
  • 3,009
2 votes

Using autograding (Github Classroom) - pitfalls and best practices?

In the auto grader I use, the following process is followed: The students files are copied into a pristine work area The "provided" file(s) are removed from the work area If I intend to use ...
Fritz Sieker's user avatar
  • 1,213
1 vote

How do I learn how to write QA test scripts for software products?

Think like the user from hell. Check that it dose what it should. (knowledge of the spec is needed for this one) Check that you can achieve the goals of a user, easily. (user insight is needed for ...
ctrl-alt-delor's user avatar
1 vote

Can one prove a part of the program to be correct rather than test it?

Yes, in theory, but not in practice. The problem is that a "proof", like a program, might be flawed. Some things, however, aren't amenable to proof if they depend on things that can't be ...
Buffy's user avatar
  • 36.4k
1 vote

How can I unit test a class in a .cs file that is uploaded or otherwise provided to me?

You're essentially looking for unit testing. In C#, I am partial to nunit, though there are other testing suites, and they all do roughly the same thing. Here's a breakdown of an nunit test: ...
Ben I.'s user avatar
  • 33.7k
1 vote

What's a good unit testing assignment for Android?

As part of their coursework, my students build a master/detail application with a simple search field on the master page. They have a testing assignment to write a JUnit functional test validating ...
Brendenw's user avatar
  • 141
1 vote

What's a good unit testing assignment for Android?

I have written a small game for Android, which I published on GitHub. It's a board game, and I have written unit tests for all important parts of the program, especially for placing stones on the ...
Roland Illig's user avatar
1 vote
Accepted

What's a good unit testing assignment for Android?

Tic tax toe. Begin game. Test model state is:  --------- Move(x, 1, 1). Test model state is:  ----x---- Scoring bowling. Begin game. Test score is: 0 knock down 3 pins. Test score ...
candied_orange's user avatar
1 vote

How to overcome the TDD/BDD time fallacy

I'd like to add two notes. First is that if you write both the unit tests and the code, then all they test is that the code does what you think it is supposed to do, not what it is actually supposed ...
Buffy's user avatar
  • 36.4k

Only top scored, non community-wiki answers of a minimum length are eligible