Chuck, These are excellent suggestions. I really appreciate your taking time to discuss them.
They underline some struggles I've been having with Puffin on a philosophical level. CASE AGAINST SCRIPT: 1) My end goal is a GUI-based tool (potentially commercial grade or better) that is as easy to use as the commercial versions out there today (Mercury Astra QuickTest, Empirix's e-Test, others). The target audience for this goal is (a) quality assurance engineers; (b) developers. 2) I don't want you to *have* to write XML *OR* script. 3) In the mean time, I want as many folks looking at Puffin as possible. XML is a common demoninator (some would say the "lowest common denominator", but I will leave that to the theorists). 4) The XML version of Puffin is just a means to an end. I need a way that the eventual GUI version will store information. 5) A script-based approach does not directly help the end goal. HOWEVER CASE FOR SCRIPT 1) Until such time as I have a GUI, all users will likely be developers (as most QA folks don't have time to write code to do tests -- at least like this). 2) I want to help developers. (I'm a developer. Lord knows, I need help. ;-)). 3) I am a Python coder and want to further Python. As you can see, this isn't cut in stone. For the record, I've had many a Perl enthusiast suggest the same thing from the Perl side of the great wall. Heck, I've even had some VB-slaves grunt similar comments. So the need for a traditional scripting-based format seems to be a very important concept to developers. On the other hand, I can only get a handful of truly hardcore QA folks to mess with it, because they'd just as soon concentrate on the testing and not on writing anything like this (XML or script). So it comes down to this: How can I best (and most quickly) meet the needs of my number 1 audience (QA engineers) while continuing to help (and receive AWESOME feedback like this) from developers? One Thought: A script to turn your Python (/Perl/VBScript/JavaScript) version into my XML? The problem would be maintaining it. Doable. Hmmm. More thought needed. Again, thank you VERY much for your thoughts and believe me, I am thinking on them. In the mean time, let me ask you (all) to consider this question: Would you still want a script-based version as much if a GUI prevented your exposure to the XML nastiness? In your experience with QA professionals, do you think it would be useful to QA folks? Keyton > -----Original Message----- > From: Chuck Esterbrook [mailto:[EMAIL PROTECTED]] > Sent: Thursday, June 06, 2002 6:31 PM > To: A. Keyton Weissinger; [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: Re: Web testing > > > On Thursday 06 June 2002 04:39 am, A. Keyton Weissinger wrote: > > Give it a shot. I am in the midst of a biggie refactor in response to > > Ken's feedback and to add stuff like POP3 test action support and the > > like. I want the thing to be commercial-grade and better so I try > > very diligently to respond quickly to user requests. > > Keyton, > > Thanks for the thorough review. You might consider putting that on > your web site for the time being. > > I have to admit that I have Purcell's same reaction: I hate XML. My > hate has at least two sources: > > * Syntax. For example, the <double>double</double> tagging of > everything and boneheaded rules, like <tag foo=4> is considered > unreadble (gimme a break!). > > * Lack of programming. XML is not a programming language, but Python > is. I'd prefer to work with Python when constructing the test cases. I > think you can achieve the same declarative nature (by providing a > framework) while still having full access to the Python language and > libraries, which are invaluable. > > > Would you consider a Pythonic approach for Puffin specs? Here's a > translation from your last example to what I'm thinking. It's probably > not "right", but you get the idea and could do a better translation > yourself. > > from puffin.Plan import Plan > > class MyPlan(Plan): > > def work(self): > while not self.condition('*'): > self.makeTask('login', actions=['resetInventory', 'login']) > for i in range(4): > self.makeTask('makeDecision', depends='login', actions=[ > 'selectRandomCategory', > 'getItemLists', > 'selectItem']) > while self.value('CURRENT_INVENTORY_COUNT'): > self.makeTask('makePurchase', > depends='makeDecision', > actions=['generateSelectionCount', > 'addItemToCart', > 'updateCurrentSelection', > 'showCart', > 'getUpdatedInventory']) > self.makeTask('checkOut', depends='makePurchase') > > > And if action names never have spaces, then as a convenience, the > actions= arg could be a string which makeTask() would .split() if > needed. > > I don't even understand all of your approach, but the idea was to > translate the XML tags to self.foo() calls and use Python for looping > (and anything else). I could then even pull user names and passwords > from the database, and loop over those. Something I've done with Python > and Steve's framework, which I generally like, but still found tedious > (which to some extent is just the nature of automating tests). > > So I'm interested in a higher level approach, but not if I get "cut > off". > > > -Chuck > > _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ Webware-discuss mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/webware-discuss
