[Dev] CATS Architecture Review

Donn Denman donn at osafoundation.org
Sun Nov 13 22:57:35 PST 2005


I'd like to put together a review of the CATS architecture for sometime 
soon, preferably tomorrow (Monday).  How does 3:00 sound?  If you are 
interested in attending, and that time doesn't work for you, reply with 
a time that works for you, or wait until next Monday the 21st.

The files we're reviewing are: QALogger.py, QAUITestAppLib.py in 
/tools, and we'll also briefly look at the individual CATS tests in 
/tools/QATestScripts/Functional/ and /tools/QATestScripts/Performance/

Here's a rough list of the items I found while reviewing the code this 
evening.

Overall issues
--------------
* Logger Start/Stop is being done in an inconvenient way.  Better to 
have functions
   that can be done any time without Start/Stop side-effects, and 
explicitly put a Start/Stop
   call in for the action that's important in your test.

* Ted found that he could not extend the test framework easily by 
adding a new item.

* There's a lot of boilerplate that could be cleaned up

QALogger.py
-----------
Major
* Should use __new__ instead of a separate class to implement the 
singleton pattern.
  (Merges TestLogger into QALogger class)

Minor
* SuspendProfiling, ResumeProfiling probably are not needed given the 
Logger Start/Stop
   cleanup.
* Lots of minor cleanup should be done

QAUITestAppLib
-------------
Major
* Remove usage of Logger.Start and Stop methods, and move them to 
individual test cases.
* Item creation should use a list of Kinds/classes, instead of booleans 
for 5 pim kinds,
   so the code can be extended to other kinds and support stamped kinds.
* Attribute Setters should know what kind they apply to, and 
automatically give errors
   when applied to the wrong kind.
* Factor out the boilerplate in Check_DetailView(), Check_Object()

Minor
* Move getTime() and GetCollectionRow() from being functions to a 
methods of UITestItem.
* Should call getattr() instead of __getattr__

- Donn Denman




More information about the Dev mailing list