Does anyone know the testing activities carried out in an Object-Oriented development project that uses an incremental approach to development and delivery?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
I would say the same as in a non incremental project.
You should do some user tests (manual tests) as well as some automated tests (unit tests, integrated tests, etc.).
In fact since your approach is incremental, you will benefit greatly from having a good suite of automated unit and integration tests. This way after each iteration (or increment if you prefer) you can easily run the test suite to ensure that no regression has happened. By regression I mean to make sure the stuff that was working before isn't broken now because of the latest incremental delivery.
Ideally unit tests should be run before each-check-in in the code base and run on the build server. Not just before an incremental release.
If you are not familiar with it, you should look into continuous integration and your automated tests should be a part of the continuous integration process.
But remember that no matter how great your unit tests are and no matter what type of development approach you use, you should always continue to do some manual user tests.
Designing the test cases
For the unit tests, I would recommend trying to do some TTD, which stands for test driven development. Which means you develop your tests (typically with junit (http://junit.sourceforge.net/) as you code). Possibly even before writing the actual code. This is called test-first programming. You should know that test-first programming can be quite challenging if you haven't done it before.
This way you ensure that all you design is covered by your unit tests. Unit tests should test a single unit.
For the manual user test, if you are using Use Cases you can create test cases for the tester based on those. If you don't have Use Cases, I would suggest you encourage your tester/QA to create testing scenarios so they can reuse these to retest the application.
If your QA find cases which they haven't tested or you find a bug in your code, write a new test scenario (QA) or a new unit test (devs) that covers this situation and include it in your test suite to make sure it does not reappear again at a later date.