views:

41

answers:

2

I'm making an application similar to Auto Hot Key, which reads some pixels in the screen, makes some computations and then performs some mouse clicks.

I have 3 different kinds of tests which I intend to do:

  1. I know I'll make use of Unit Tests, for testing indivudal classes to make sure each one of those makes what it's supposed to do.
  2. Now, I'll also want to test that all the logic my program has to do is correct. In this kind of test, I'll want to fake the mouse input and also fake the class that performs the mouse click on the system. What would this kind of tests be called?
  3. I'll also want a third kind of test, where I check that it actually does everything it should in a real system (i.e., it actually will read real system's screen pixels, it will actually perform mouse clicks on my computer, etc). How is this kind of test called? Full Integration Test? System Test?

Thanks

+1  A: 

Yes UI (or GUI) testing falls under system testing. See http://en.wikipedia.org/wiki/System_testing for more.

I can provide some help on how to do those tests if they are web-based. You could use

  1. Selinium
  2. YUI Unit test framework etc.

Best of luck...

MovieYoda
A: 

The second and third are both System Tests. There is a step in between Unit Testing and System Testing called Integration Testing where you combine multiple different parts of the system to test how they communicate, but you don't actually put the whole system together yet.

If you want to do the second step on the GUI, what you call it depends on what it is. If you're only testing the GUI alone with a screen reader and/or a mouse clicker, that's a Unit Test. If you have the whole system put together, it's a System Test. I don't see where you would use these tools for Integration Testing.

I think the important thing isn't what it's called, though. The important thing is that you are thorough and make sure that your application works as intended. To me, this involves taking personal responsibility for putting together a test suite that doesn't overlook any aspect of the system.

Erick Robertson