[Groupkit-users] Is anyone using Groupkit for GUI regression testing?
Brought to you by:
cthatcher,
markroseman
From: William D. <wi...@ds...> - 2003-07-24 00:26:01
|
Greetings, I'm interested in using Groupkit as a part of a regression-testing suite. Since Groupkit is tracking screen activity for us already, it should be easier to record and play back those activities. Also, I like the idea that if a script has problems, I can run it again in a little window that several remote people can watch and discuss. A stickier issue is making the playback more on the widget level than on the level of mere x/y screen locations. In other words, instead of saying "move mouse to 323,445 and press button 1", the playback script would say "activate button .frame1.button1". This would go a long way towards helping make the playback scripts less vulnerable to being broken by minor changes to the program or running environment. That may seem like an obscure issue with regard to remote collaboration, but really it ties into the idea of cutting down on the amount of information that needs to be transmitted between multiple remote collaborators. We don't need to transmit every pixel color because both the local and remote machine share a function that can translate a shorter message into the same effective result (e.g. both sides keep a cache of the previous screen). Now extend that same idea a little, and imagine that both the local and remote user were running the same application inside identical "sandboxes" on each machine -- let's say a tcl applet inside a "safe" interpreter. As long as both applications are kept completely in sync, I don't need to transmit a crudely-compressed bitmap of the screen area affected by that application. All I need to do is transmit enough information to keep both copies of the application in sync. In other words, instead of having a button flash, and then transmitting a compressed image of the flash, all I need to do is recognize that button .frame1.button1 was pressed, and send that information to the copy of the application on the remote machine. The point is that there's a connection between remote collaboration and script-driven regression testing. In both cases, we want to distill out the information that matters (this button was pressed), throwing away information that we decide does not matter (the *exact* path the mouse took while moving towards the button). In both cases, it seems like there's promise in approaching the issue from the viewpoint of 1) creating functions that rely entirely on a well-defined state vector, 2) giving all the collaborators a copy of the functions and initial state vectors, and then 3) keeping the state vectors in sync between all the collaborators, so that the functions can generate the detailed results locally. This would even allow people who joined late to catch up with everyone else, since all we have to do is give them the complete state vector -- which is easy to do for a tcl safe interp. Obviously this requires applications that cooperate to some extent with groupkit, but we can still fall back on screen-scraping when all else fails. Also tcl is very good at introspection, so for any given pure tcl/tk application, it may be pretty easy to convince it to work with Groupkit with regard to transmitting state vectors, etc. Has anyone else tried or thought about this sort of thing with regard to Groupkit? Or at the least, has anyone tried using Groupkit in its present form for things like regression testing? --Will William L. Dye |