Friday, June 18, 2010
Show me tests upfront and all the photos in the world
Codility should show candidates all the testcases upfront before the test. We hear this request from time to time.
No. Never ever. Over my dead body.
Why? Because software engineering is about making software that handles inputs not yet known when software is being developed.
Imagine a photo-editing software. Its authors test it (hopefully!) before shipping it to customers. Testing for sure includes exercising the software on some photos. Most likely the test set consists of many kinds of photos having different sizes, contents, formats, dynamic ranges, etc. But the software would be worth nothing if it works correctly only on photos from this test set. The software has to deal correctly with billions of photos created by its customers, and these photos are not (and won't be) available to the developers of the software. Even worse, most of these customers' photos do not exist yet when the software is being written.
Software is routinely created to handle potentially very large quantities of different input vectors which are not available when the software is being written. This is bread and butter of software engineering.
Now if people tell me that Codility should present candidates with a complete list of test cases on which their code should behave correctly, I ask them to send me all the photos that will ever be edited with Photoshop.
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment