[Chandler-dev] Reviving the DESKTOP Test Automation Project

Phillip J. Eby pje at telecommunity.com
Wed Sep 5 23:32:31 PDT 2007


At 11:06 PM 9/5/2007 -0700, Mikeal Rogers wrote:
>On Sep 5, 2007, at 10:20 PM, Phillip J. Eby wrote:
>
>>At 08:55 PM 9/5/2007 -0700, Aparna Kadakia wrote:
>>>It is important to remember that the framework we adopt needs to
>>>support testing at the UI level and not within. This is more for
>>>functional testing which covers scenarios rather than unit level
>>>testing.
>>
>>Crossing over a thread here, I think it's important to point out
>>that "UI level" in this context presupposes an architecture in
>>which there *is* such a thing.
>>
>>One possible architecture refactoring is to have an "interaction
>>model" layer which encompasses a significant portion of what would
>>now be considered "UI level" code -- but *without* having any "UI"
>>code (i.e., graphics or I/O).  Such a system would be amenable to
>>automated functional testing without involving any actual GUI
>>code.  (See also my reply to John's post about transparent
>>persistence; this is the same visual/logical split I described there.)
>
>I figured this was what you were getting at.
>
>Removing the barrier of simulating end-user UI actions would make
>test debugging and maintenance worlds easier. I would say it makes
>test authoring easier, but if the recorded scripts framework takes
>off, it's hard to compete with recorded actions vs. sitting down and
>writing code.

Perhaps; of course, one of the main ideas behind doing something like 
this would be to make it possible to write the tests *before* the 
code exists that will be tested, as a specification of what the code 
is supposed to do.  There would still be a place for recorded 
scenarios, of course, since some tests will be added to cover 
scenarios that weren't envisioned at specification time.


>I can say writing these kinds of tests would be much
>easier than in the previous CATS system.
>
>Around the beginning of the year we looked in to what automated
>testing might be accomplished around this layer. I tried looking at
>what automated testing might be feasible that was somewhere between
>the current unittests and functional tests. What i found was that the
>desktop architecture didn't seem to provide a way to break apart
>these components and reliably test them in isolation, and that doing
>anything beyond what the current unittests did wasn't feasible in the
>short term ( the unittest coverage is already blurring the line
>between functional testing and unittesting).

Yep, this is exactly the issue.



>>In addition, it would eliminate the issue we've had with the
>>functional test frameworks that are distinct from the application
>>itself.  In an interaction-model design, the application *is* the
>>functional test framework, so there is no duplication of
>>functionality, documentation, learning, code getting out of sync, etc.
>
>I think I understand what you mean here, but just to make sure.
>You're saying that the visual components of the UI will be using the
>same API that would be used for testing,

Yep.


>If we do keep doing higher level automated tests ( and I imagine we
>will, hopefully using the new recorded scripts framework ) there is
>some value in watching them run periodically. Especially if the sole
>purpose of those tests becomes catching graphical rendering problems
>and we start automating the application semantics testing at other
>layers.

Of course.  Note, however, that in this model a functional test is a 
functional test whether the GUI is hooked up or not.  You could 
always run them with the GUI hooked up if you wanted to watch.  :)



More information about the chandler-dev mailing list