0

Is there a common and accepted term for the manual tests done by programmers or users on software in lieu of or in addition to automated testing? For example, in a progression as follows:

  1. "Desk Test" for the non-automated testing a programmer does while writing code.
  2. "Unit Test" for an automated test for a particular class/method/function.
  3. "Integration Test" for an automated test of multiple components working together.
  4. "System Test" or "Acceptance Test" for application-wide tests that would be meaningful in conversation with the end user.
  5. "User Test", for when we hand it to the user and ask them to find bugs.

Are there better terms for #1 ("Desk Test") and #5 ("User Test")?

(And I know that TDD would say write #2 before #1... but making that point is exactly why I want to know the right word for #1.)

  • #5 is user acceptance testing. Or, more commonly, beta testing. – yannis Jan 15 '14 at 15:57
  • 4
    This question appears to be off-topic because it is a "name that thing" question. "Name that thing" are bad questions for the same reasons that "identify this obscure TV show, film or book by its characters or story" are bad questions: you can't Google them, they aren't practical in any way, they don't help anyone else, and allowing them opens the door for the asking of other types of marginal questions. See blog.stackoverflow.com/2012/02/lets-play-the-guessing-game – Robert Harvey Jan 15 '14 at 17:29
  • The 5th term is ambiguous and could be one of many things as it depends on your project. It could easily be a pilot, beta, or even a release since, once deployed in many situations, it is unlikely to be removed. – James Snell Jan 15 '14 at 17:35
  • @JamesSnell: yes, beta/pilot/release are all stages of software release. Would "user test" be a fair term to encompass them all? Is there a better standard term than "user test"? – DougM Jan 15 '14 at 17:39
  • Coming after the "Acceptance Test" which is where the client makes the final go / no-go on the project which moves from Implementation (coding, testing documenting) to Deployment and Maintenance. – James Snell Jan 15 '14 at 17:47
2

I believe the term you're looking for is "Ad-Hoc Testing". Those are tests you might write as you go but are not intended to be kept or used as part of any structured testing which might be kept and reused.

It's usefulness is dubious and much of the current school of thought (or fashion) is that, like a proof of concept, if you needed to write a test in the first place then it's worth keeping even if only to show how much work you've done?

  • Would "Ad Hoc Test" be the best term to describe the test a developer does on their own, manually, instead of writing a program to do so? – DougM Jan 15 '14 at 17:42
  • Ad-hoc testing is a generic term, too. It merely describes a characteristic of the testing method being named here, and can apply to any testing process (in any industry) that is not formalized. – Robert Harvey Jan 15 '14 at 17:48
  • 1
    It's the closest you'd get without an answer being primarily opinion based and heading for shark vs. gorilla territory. That kind of testing was once called Pen Testing as it was with pen & paper but if you searched on Pen Testing now it would yield a very different result. – James Snell Jan 15 '14 at 17:51
  • 1
    @RobertHarvey - ad-hoc is representative of the behaviour or action, which seems more in tune with the other stages which also broadly describe what they do. – James Snell Jan 15 '14 at 17:57
0

Verification of functionality during coding is a category of White Box Testing. Note the Wikipedia description:

White-box testing (also known as clear box testing, glass box testing, transparent box testing and structural testing) tests internal structures or workings of a program, as opposed to the functionality exposed to the end-user. In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. This is analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT).

Most unit testing, if done properly, is actually black box testing; the unit test should not need knowledge of the internals of the method in order to complete the testing.

See also Development Testing, the process of applying best practices to the development process in order to reduce defects. Development Testing might include static code analysis, data flow analysis metrics analysis, peer code reviews, unit testing, code coverage analysis, traceability, and other software verification practices.

  • 1
    Neither of those are an appropriate name for the non-automated testing a programmer does on their own. both white-box testing and development testing refer to the ENTIRE process, rather than a particular type of non-automated test. – DougM Jan 15 '14 at 17:10
  • Is this a "stump the chump" question? Sounds like you already know the answer. – Robert Harvey Jan 15 '14 at 17:11
  • White box testing is a generic term for developing tests when you know the code so wouldn't be the answer he's looking for. – James Snell Jan 15 '14 at 17:18
  • I'm not looking for a generic term for testing as a whole, or all testing a developer writes, or tests written with access to source coden. I'm looking for a standard term for two types of non-automated tests, as appropriate for the listed progression. – DougM Jan 15 '14 at 17:23
  • #1 is a form of whitebox testing, but so is #2. I don't think this term breaks apart the OP's categories effectively. – Brian Jan 15 '14 at 18:01
0

I rely upon the SWEBOK Testing chapter when I'm looking for generally accepted definitions of testing levels.

That having been said, they only recognize three levels:

  • unit
  • integration
  • system

But they acknowledge multiple objectives of testing:

  • acceptance / qualification
  • installation
  • alpha & beta
  • conformance / functional / correctness
  • reliability achievement and evaluation
  • regression
  • performance
  • stress
  • back-to-back
  • recovery
  • configuration
  • usability

Your first item appears to be a version of unit testing, perhaps with an objective of acceptance or conformance but most organizations place those tests in the system testing phase.

Your fifth item could fall into some combination of the objectives: acceptance, alpha, beta, conformance, and / or usability.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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