I think I like this idea but I'm not sure if I can decompose my applications into small enough chunks. Maybe you could add mock services to call out to?
Thanks for pointing this out! There was an issue with point total calculation that has been fixed, and all users' totals have been updated appropriately.
This is a really good idea and something like this will be the 99designs of the coding world.
I am not entirely sure it will work, (the effort to write the
unittests is high) and there is little understanding of the codebase it will enter and the code reuse issue is ...
Add to that integration and delivery and this unittest approach is a problem.
But change it to be "here is our code and CI on github", create a pull request that will change the flow of the credit card processing to use swipe and paypal as well as our tired old merchant bank.
If it takes as much effort to write the unit tests as it does to implement the solution then the problem was trivial to begin with, but that's probably true of 90% of all programming work.
It might be more useful for harder problems but there are already a number of sites addressing those : TopCoder, kaggle, Innocentive, etc.
One thing on my "to-do" list is adding a test suite builder, that allows you to specify inputs and outputs and then generates the test code for you. That would allow people who can't code or just aren't familiar with the syntax of a particular language/framework to still post contracts.
Cucumber and related "natural language tests" were supposed to do this - allow non-programmers to program tests.
Turns out everyone who writes a cucumber test is a programmer writing their own unit tests or a whole batch for everyone else.
I do think there is mileage in wufoo / VWO style webstie testing - record a series of macros and replay them each day against the site - let people know when something changes / does not work. ie a regular scheduled sign up with specific credit card then a cancellation - test that the whole sign up / email thing is still working.
I started working on exactly your last suggestion. We have employees that were doing this, I said it was a waste of time, they said to have some of our devs in India do it.
Instead, I created "Amir" which is effectively a Selenium/CasperJS runner performing pre-recorded tasks each day and checking for outliers. Once it fails, emails go out.