Go over the list of next set of enhancements to CATS framework.
List of items discussed
CATS output - Many people feel that the output logged by CATS framework is not very legible. We can possibly cut short some of the logging that we do for every verification method
Action Time - Action time reported should stand out in the log file. Right now it is cluttered in rows of data and also confused with times elapsed running the testcase, running the test suite etc.
Chandler's logger - Investigate if we can use CHandler's logger instead of CATS. We could possible reuse a lot functionality already built in for the logger.
Logger Start and Stop - Try to move the logger start and stop to testscripts rather than test library methods.
Modal Dialogs - Investigate how CATS should handle modal dialogs. Make sure a unit test is included for whichever option we go with. There were a couple of suggestions : - setting a preference on the dialog saying 'Don't ask again' and running CATS with that prefernce set. - put a switch internally in chandler to autoselect the OK option and have CATS programmatically choose that option.
Items hardwired - Currently CATS only recognizes the 4 basic items in CHandler; note, event, mail and task. We need to make it extensible so it can detect the type of items from the repository like feeds, photo etc. Also be able to handle MixedIn types like stamped Mail+Event etc
Run Functional tests from within Chandler - This is already developed by Donn. YOu can add scripts to the sidebar and open new testscripts from a file into Chandler. You can associate a function key with it and execute the test script from within Chandler. THis avoids having to quit and restart chandler for every test script. Make sure you comment out the Chandler.Quit() from the testscript before executing it from Chandler.
Rename verification methods - Some of the verification methods are wrongly named as TestEventCreation() Rename them to something more appropriate
Removing Calendar imports within Performance tests - Heikki has already implemented a solution for this. We are going to take off the importing calendars part from the performance testcases and have them run on pre-populated and subsequently restored repositories. 10. Yielding to the app - Currently the performance test scripts are sprinkled with app_ns.Yield, app_ns.IdleEvent, app_ns.Yield which can be replaced by wx.wakeUpIdle. That would be cleaner solution but may not work in all cases. Needs investigation (bug 4734)
Logger code clean up - Logger code needs to be cleaned up. We should use __new method to instantiate a new instance of the logger. That way we wouldn't need QALogger() function in QALogger.py
Use of Dictionaries - Currently we use dictionaries for comparing the output values but not the input values. We should try using dictionaries for both.
Timeout - Incorporate a dead man's switch in the Logger which is set to some x mins, for testscripts to timeout if they haven't completed execution in that much time. That way if the system is hung, it won't reach the finally clause and therefore timeout.
SetAttr methods - A lot of the SetAttr methods in the QAUITestAppLib can be consolidated. Many of these can be done in the application layer rather than the scripting layer.
CheckObject Attributes - Check with Katie about CheckObject attributes used in the application and how we can leverage that in CATS.
QAUITestAppLib cleanup - Break QAUITestAppLib into multiple files (and libraries?) in order to make it managable.