Monday, November 2, 2009

iTutor Improvements

The feedback compiled from the iTutor demo is as follows:
  1. iTutor accepts three classes as inputs: Teacher solution, Student solution, and an interface common to them. The users of iTutor can be relieved by removing the interface as input. This interface can automatically be inferred from the public methods of Teacher solution. Also, before processing these solutions, iTutor needs to check whether it can find equivalent public methods in the student solution, if not, it can flag error.
  2. iTutor currently renames the solutions to Student and Teacher. This can be easy if there is a single class. But situation can be difficult if there are many classes. Bellanov needs to investigate and develop features to address this issue.
  3. Currently, the length of method-call sequences in tests has been limited to three. This can be made configurable.
  4. Add "assertions" to all case statements, this would help in automatically generating test cases with variable number of sequences (as assertions exist right after the method-call invocations)
  5. Make the index used in the switch statement as symbolic and remove it as a parameter for the driver method
  6. Remove arguments passed to method calls as parameters from the driver method.
  7. When the methods under test accept non-primitive types, a deep copy of the argument should be made. If not, the method under test of teacher solution may modify the argument before passing it to student solution. Similar techniques need to developed for comparing non-primitive return types.
  8. A problem arises where methods can be overloaded, leading to multiple possibilities when instantiating each solution. iTutor shall generate numerous test drivers, each of which focuses on one constructor.
  9. The logging feature that currently uses print line statements shall be implemented to send that information to a file, which can be accessed and analyzed later.
For the next week, I shall address as much of the following as possible. I predict that I will be able to cover and address points 1, 3, and 5. First and foremost, I am developing a test suite to properly test all of iTutor's present functionality to ensure correct behaviors. After I am convinced that the tool is in proper shape, I shall move on to address the points above.

No comments:

Post a Comment