Re: [Wtr-general] Handling multiple versions of a website [advice needed]

2006-10-25 Thread Chris McMahon
On 10/25/06, John Lolis [EMAIL PROTECTED] wrote:
Thanks for the input davemunns, its nice to hear from someone who is so far along in a project.My only real fear is that of maintaining such a giant library. If you were to leave your company tomorrow, would someone be able to pick it up in time before it got too out of date?
I have a framework along the lines of Mr. Munn's, but mine is organized more along the lines of verbs than of nouns. I have a high-level controller capable of calling any number of actions implemented in a middle level. Each of the middle-level actions may use a set of tag-level libraries for our app, kept in a set of low-level scripts. All of the Watir happens at the lowest level; all of the actions in the middle and upper layers are domain-specific. My framework isn't good enough to detect GUI changes automatically, but I could do that if I had to. 
As for designing one of these yourself, read this article from Kevin Lawrence: http://www.developertesting.com/archives/GrowYourHarness.pdf
. If you don't understand it right away, read it again, and again, until you do. This is exactly how you create a large, effective, maintainable test framework.  
___
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general

Re: [Wtr-general] Handling multiple versions of a website [advice needed]

2006-10-25 Thread Bret Pettichord
John Lolis wrote:
 Has anyone thought of a good way of managing such changes? Do you make one 
 giant 'mapping' class and just update that as needed? Do you store the Watir 
 calls and generate code around them? 
   
I have a library of some 1250 lines of code. Although some of it was 
written as a result of refactoring working tests along the lines that 
Kevin Lawrence writes about in the article cited by Chris, most was 
directly test driven by specific tests that were designed to test-drive 
the automation framework. I have 700 lines of such tests. These of 
course are in addition to the tests that were written to test our 
application.

I believe that simple tests of your framework are the best way to detect 
problems. They can be used to verify that the framework matches up to 
the application.

Bret
___
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general


[Wtr-general] Handling multiple versions of a website [advice needed]

2006-10-24 Thread John Lolis
Looking for some feed back on this topic.

To start, I'm attempting to automate a very large and very complex web 
application. Watir is great at handling all the strange controls (it has some 
timing issues with frames and modal dialogs, but those are known issues). The 
problem I now face is how to keep my tests from become outdated in a fast 
moving environment.

Its simple enough to wrap Watir calls in objects (for example a Login 
object) so that I can write a test case and use Login(name,pass) instead of 
ie.link(yadayada).click. The problem comes when you have 20+ objects 
currently (and it will probably grow 10 fold) and all of them contain Watir 
code. When a new version of the web site comes out I predict tracking down the 
problems (and adding switches to handle old versions) would quickly make the 
project unmaintainable.

Has anyone thought of a good way of managing such changes? Do you make one 
giant 'mapping' class and just update that as needed? Do you store the Watir 
calls and generate code around them? 

Any insight from someone who has been through this would be great :)
-
Posted via Jive Forums
http://forums.openqa.org/thread.jspa?threadID=4936messageID=13707#13707
___
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general


Re: [Wtr-general] Handling multiple versions of a website [advice needed]

2006-10-24 Thread Dave Munns
I have written a product testing tool that automates the navigation (detecting 
GUI changes) through 320+ classes in a web-based gui. It also generates 
performance measurements.

The tool is designed in 3 levels ( each in an rb file): 1) the high level test 
classes (named to easily map to the GUI object screen labels) and a main method 
with navigation steps, 2) a middle level that processes table row and column 
data, and 3) a low level that identifies each web object by html tag.

The product's GUI does change with each release and even between builds. 
Separating the html tag identifiers (level 3) from the data level (level 2) 
from the navigation (level 1) helps with these changes in that it is easy to 
know which file and class needs changing. Additions are also easily made to the 
correct file, so entropy does not creep in, maintenance does not suffer.

By incorporating the test automation tool into the product build process, the 
goal is to determine when the product is ready to hand over to the QA dept.
Time will tell if this simple approach can keep up with a commercial software 
product lifecycle.
-
Posted via Jive Forums
http://forums.openqa.org/thread.jspa?threadID=4936messageID=13721#13721
___
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general