Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^5: Testing IS Development

by sundialsvc4 (Abbot)
on Mar 11, 2009 at 15:06 UTC ( [id://749905]=note: print w/replies, xml ) Need Help??


in reply to Re^4: Testing IS Development
in thread Testing IS Development

The tests of which you speak here really move into the realm of process data integrity, not the specific testing of any particular application. Like any “manufacturing production-line,” the shop must have the means to validate where the data is actually coming from, and that the correct parameters were specified to the applications that were run. This is an ongoing part of the daily production process.

This presupposes, of course, that the applications themselves are “known good,” such that it's all essentially worthless if they're not. In other words, they do have a test-suite, it does validate the handling of the data that is flowing through each application, and it does also check that not-valid data will be detected and rejected. Each time an application is deployed to the production environment (by the personnel that is responsible for that ... not the developers themselves), it must clear all tests.

So, the two concerns are complementary to each other, not exclusive.

Replies are listed 'Best First'.
Re^6: Testing IS Development
by JavaFan (Canon) on Mar 11, 2009 at 15:22 UTC
    The tests of which you speak here really move into the realm of process data integrity, not the specific testing of any particular application.
    That maybe for the specific example I gave*, but remember, I only raised the issue after the following statement was made:
    The benefit of test driven development is, you *know* your code will work before you ship it.
    which IMO, is so far away from the truth, I wouldn't hire a programmer who thinks that way. I rather have a programmer who's unsure, than one who's convinced to be right, when he isn't.

    *A programmer might also assume the area of a circle is 22/7 times the radius, and write his/her tests accordingly.

      I respectfully dissent. CPAN, for instance, wouldn't be CPAN without “all those tests.” After all, we don't need to be dealing with somebody else's bugs:   we have plenty enough of our own.

      Perhaps we can take the viewpoint of Thomas Edison's quote:  “I know a hundred ways to build a light bulb that don't work.” In our case, “we know a hundred ways and places that the code doesn't fail.” This does not, of course, mean that the software is defect-free, because obviously we know that it does have plenty of defects lurking in there somewhere. So the tests that we do have, give us a good foundation for helping to consider where the defects are much less likely to be.

      I would also offer the opinion that this becomes a lot more important when you have a large number of developers working on the same project:   there is no longer a single person who “lives, breathes, and sleeps-with this piece of code every day,” who therefore has a gut-instinct about it. More than just a few people now need to have a basis for determining that the code is (and remains) reliable. When a bug happens, all of them have to dig for it, and having some objective sense of where not to start digging (first) is very helpful.

        I don't say that it's “bug free.” (Absurd...) But we do have a long list of places where it probably isn't buggy... And that's worth something.

        I respectfully dissent. CPAN, for instance, wouldn't be CPAN without “all those tests.”
        Well, unless you are claiming all the code on CPAN is bugfree, you have just proven my point.
      *A programmer might also assume the area of a circle is 22/7 times the radius, and write his/her tests accordingly.
      Yes, but (s)he will at least detect when the assumption, correct or incorrect, no longer holds. See here for a real world example where simple testing most likely would have prevented a serious bug.
      --
      No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://749905]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-03-19 10:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found