0

I was taking an exam yesterday, and I noticed they asked in which order the following occur (and I'll put the order I deemed it to be here):

  1. Unit Testing (Always write your unit tests first!)
  2. Integration Testing (After you have some code and it works with other code / systems)
  3. Validation Testing (Keep your data in a consistent state and make sure no bad data is input)
  4. User / Acceptance Testing (It's all about the users otherwise why are we building a system in the first place?)

Is this about right?

Personally I think load-testing or database tuning oughta be in there at the end, but it wasn't on the test.

leeand00
  • 25,510
  • 39
  • 140
  • 297
  • This would be the correct order, yes, except for "validation testing" which I am not familiar with. Wouldn't that be done as part of other tests (unit and integration tests, specifically)? – Rogério Sep 15 '16 at 20:25
  • @Rogério By the placement I'm assuming that means something like frontend (Javascript) / backend (REST or something else) validation of input put into the forms...but I'm not 100% on that... – leeand00 Sep 16 '16 at 01:11
  • If it is "all about the users" then why does Acceptance Testing come last? – tonicsoft Sep 25 '16 at 20:33

2 Answers2

1

This question doesn't make a whole lot of sense.

For one thing, different people have different definitions of pretty much every kind of testing you have mentioned. For example, in Extreme Programming (XP) Acceptance Tests (while being derived from User Stories) have nothing to do with User Testing, or User Acceptance Testing (UAT). Using the XP definition, Acceptance Testing refers to automated tests that run on a build agent before code makes it anywhere near a user. User Acceptance Testing (UAT) on the other hand, is typically a manual process that happens after a proposed final version has been created and deployed to a UAT environment.

As pointed out in the comments already, Validation Testing is not a common concept with a widely accepted definition. Integration testing also means different things to different people. To some, it is testing that different processes/applications work together (in a UAT environment, for example). For others, it is simply automated tests that involve more that one class i.e. not Unit Tests.

Also, what do you mean by "order"? Do you mean the order in which the tests are written, or the order in which they are run before releasing code to the wild and/or production environment?

In any case, the question is largely irrelevant in the real world because different processes work for different teams. For example, I myself would always write an Acceptance Test before any Unit Tests. Following a test first approach, you always write a Unit Test before modifying a class, yes? So why wouldn't you write an Acceptance Test before modifying the whole system?

If "Acceptance Testing" means anything close to the XP definition of acceptance testing, then I don't think it makes sense for this to come last.

This sounds like the kind of "exam question" that only makes sense in the context of the course that you took before the exam. Without all that information (particularly the definitions of each kind of testing) it is very difficult to provide a useful answer to this question.

tonicsoft
  • 1,736
  • 9
  • 22
  • Yes in the question I believe they meant order as in, which order are these things done with in the context of a single system usecase...at least that's how it seemed to me... – leeand00 Sep 25 '16 at 21:31
0

Instead of validation testing, System testing is correct word. And Database testing is a part of integration and system testing. Also Load testing will be performed on the phase of system and user acceptance test.

Bhanu
  • 40
  • 1
  • 8
  • I'm just using the wording they used on the test. It probably hasn't been updated in 10 years I'm guessing...since I remember taking the test before!!! – leeand00 Sep 22 '16 at 11:44