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.

Does anyone know the testing activities carried out in an Object-Oriented development project that uses an incremental approach to development and delivery?

share|improve this question
    
By test activities, are you referring to activities by any member of the team ? Or more specifically testers or devs ? –  Gilles Apr 9 '11 at 20:19
    
@bleakcabal, not sure. Haven't really people any thought into who's going to carry out these activities. It'll likely be the testers. –  Mr Teeth Apr 10 '11 at 2:44
add comment

1 Answer

up vote 2 down vote accepted

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.

share|improve this answer
    
Thanks a lot for the reply bleakcabal. I'm going to look into the user test and automated test you mentioned. Another thing...do you know some techniques that can be used to design test cases? –  Mr Teeth Apr 9 '11 at 20:07
    
I edited my post with more information regarding your comment. –  Gilles Apr 9 '11 at 20:16
    
thanks a lot! I appreciate it. This is pretty useful for me and will be for others who come across this. –  Mr Teeth Apr 10 '11 at 2:41
1  
"For the manual user test, if you are using Use Cases you can create test cases for the tester based on those." I'd say this would be something better done by a professional tester - they will come up with far more challenging scenarios, and test design is a skillset that most people do not possess. –  testerab Apr 16 '11 at 15:00
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.