Plan and execute a unit test

The most used excuse not to test (yet) is that it takes to much time. Exactly that is what this task is about.

It is not the intention to write any big reports, but just simply the context of the modules and the modules themselves. See below.

Metiq is a 3 ECTS module, running for 14 weeks. This amounts to 6 available working hours per student per week. The task are individual, and I do not accept doubles in the deliverables.

Plan (MeTiQ milestone 2)

The (individual) plan should contain a set descriptions of modules that should be tested, preferably in the self documenting style as in the shoppingcartexample, that is e.g. javadoc style. Of course the interface of the modules should suffice. Since we want to learn how much time you estimated for your test and actually need for your test, the testplan should contain the following:

  1. Per module the interface description (java interface definition or C++ header file).
  2. Per module:
    1. Per module the number of testable methods.
    2. Per method the estimated tests needed to capture all possible pre and postconditions.
    3. Per test the estimated amount of time to implement the test.
    all in one document (spreadsheet)

I also need such details as in which project team this work is done, like for which sofa or other project. These are the people that may want to use and or criticize your work. These people will also be able to see any handed in things before the deadline. You may opt for a group for only yourselves.

It could indeed be very handy to put your plan in a spreadsheet format, in which you can simply add up things. Note that you have to add the required details, but the spreadsheet format can support this to, e.g. on a separate sheet.

Execute (MeTiQ milestone 3)

Now you try to execute your plan. Use exactly the time per week that is allocated for MeTiQ, that is 6 hours - lecture_time - consulting_time. Let us agree on the minimum of 4 clock hours per week (Those hours that have 3600 seconds!).

As deliverable I expect the following in electronic form, uploaded to peerweb:

  1. The implemented modules.
  2. The implemented test modules, complete with one script to execute your all your tests automatically. (Work on that script early!. You may share it intra or inter group.) The test script must execute all tests without failure (all tests should succeed.)
  3. The time bookkeeping of your work. E.g. in the suggested spreadsheet format. In the book keeping I also expect to see the amount of time you spent on reworking the module under test, in case you have to correct the module because of failures. But please do not mix this correction time with testing time.
  4. It may very well be that you test less then you planned. Or maybe more then you planed ;-). Please stick to the amount of time as given above. Note that I will compare the time bookkeeping to assess the validity of the time records. Do not cheat with the written time, for I will find out!.

Pieter van den Hombergh
Last modified: Wed Mar 8 09:08:48 CET 2006