Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I generally have different types of tests that I work with - the standard types: Unit Tests (testing basic functionality of classes, methods etc) and Integration Tests (testing how multiple components interact etc).

However I also have a third type of test. It's basically manual tests where I use the unit testing framework and test runner to try out functionality (some people use console apps for this). I typically don't have any asserts in these tests, instead I use the debugger or Debug.Write:s. I often use these types of tests when exploring legacy systems.

Is there an established name for these types of tests? (I'm thinking along the lines of "Exploratory Tests" or "Manual Tests" but these are already established.)

share|improve this question
2  
I would rather pass this question to our colleagues at SQA.SE –  gnat Feb 15 '12 at 9:50
    
@gnat Per the FAQ, "developer testing" is on topic for this site. Would you not agree that is (in general) what this question is about? –  Daniel Pratt Feb 15 '12 at 12:42
    
@DanielPratt I think this question is on-topic here, as well as it would be on-topic at SQA.SE. Until you answered though I felt like it would find better answer at SQA :) –  gnat Feb 15 '12 at 12:46
add comment

8 Answers

up vote 9 down vote accepted

I know the type of "test" you mean and do something similar, but I would not call them tests at all. I would call that "exploratory code".

Usually when I am doing this in a structured way I do two additional things:

  1. I start writing documentation for the code I am exploring to avoid having to do it again in a few months time (and I document the exploratory code itself as well).
  2. If applicable, I actually do add test assertions to the exploratory code whenever something isn't blatantly obvious. That way my exploratory code actually becomes a unit test during the course of an exploration.
share|improve this answer
    
"Exploratory" was my first choice for a name, even if "exploratory testing" has a different meaning. It's a good fit for what I use the "tests" for - exploring an API, code base etc. Rather than throwing the "findings" of that exploration away I like to store the "tests" along with the other types of tests. –  Per Noalt Feb 15 '12 at 18:42
add comment

The use of debug.write makes it sound like manual white-box testing, which is basically testing the internals of the code rather than its interface.

share|improve this answer
add comment

I've always referred to this sort of thing as Visual Checks. I kind of liken it to what a pilot does when he wanders around the outside of his airplane, kicking the tires, checking there aren't any birds nesting in the engine intakes, pulling bits of bird out of the various tubes from the last time you hit one... that sort of thing. The pilot has no real idea if his plane is entirely airworthy, but he does at least have an understanding that nothing obvious has been missed and he should be ok to at least turn the engine over and go through his pre-flight.

Visual Checking of your software is much the same. It's not really going to tell you if your code is actually working, but a quick debug through a problem area of code might help you spot something obviously wrong as a kind of a sanity check before you go and tell your boss what a great job you've done of your latest task. It certainly doesn't hurt, and can provide a good starting point for a major debugging exercise when you know you have a serious bug in your code that you should walk through, however for the most part you don't gain anything in terms of testing by relying too heavily on visual checks.

share|improve this answer
    
Like the analogy! :) –  Per Noalt Feb 15 '12 at 18:45
add comment

I would call this an "ad hoc" test.

share|improve this answer
    
Except that "ad hoc" means "for a very specific purpose" that is no generalizable. The OP's "exploratory" testing is closer. –  Peter K. Feb 15 '12 at 12:57
add comment

I have never come across the proper/best name. I typically preface them with exercise_. For example "exercise_action_foo" or "exercise_bar_dialog". When working w/ WinForms projects, I typically do this for dialogs. Additionally, I add an [Ignore] attribute so they don't run on the build server. This might be 100% 'correct' but can be a time saver during development.

share|improve this answer
    
Yep, "Exercise" is also a good name. It comes a close second to "Exploratory/Explore". :) –  Per Noalt Feb 15 '12 at 18:44
add comment

You can call these "test harnesses". These do not contain asserts, but exist to help you exercise functionality for the purposes of experimentation.

share|improve this answer
4  
test harness is also an established concept, and goes beyond what's asked for here. –  Torbjørn Feb 15 '12 at 8:28
add comment

I like the term Eyeball Test for a manually-verified unit test. Basically I setup everything in a test fixture and try to get it to launch quickly, only I verify its correctness with my eyeballs, and possibly interacting with a control. This is pretty much the only practical way to unit test GUI layouts and can easily be incorporated into a TDD/test-first style.

share|improve this answer
    
Also a good name, I like it, thanks! –  Per Noalt Feb 15 '12 at 18:47
add comment

I don't think there's a good, standardized name for this type of 'testing', but I've always called it Smoke Testing or Sanity Testing.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.