Ivelin Ivanov wrote:

> 
> =================================
> ||     VERY LONG !!!           ||
> =================================
> ||    AND INTERESTING.         ||
> =================================
> 
> 
> I am surprised that there is not much interest in the Cocoon community for
> Anteater. What do people use for web apps functional test suites?


We are currently using WebTest (also ant based):
http://webtest.canoo.com/webtest/manual/WebTestHome.html

All the best

Michael





> There are a few other open source test tools, but I think Anteater has great
> potential. Especially for Cocoon apps.
> 
> So, let's begin:
> 
> 
> 
>                         - 1 -
> 
> 
> 
> 
> While Anteater is still not solidified and has a relatively small user base,
> I would like to suggest an architectural change, which is compatible with
> Anteater's values, but will hopefully
> improve it in the following areas:
> 
> 1) standartization
> 2) learning curve
> 3) cross project code reuse
> 4) maintainance
> 
> The ideas is to use references to schema documents of standard XML languages
> (like Schematron, DTD, XML Schema, Relax NG) for response validation,
> instead of supporting a proprietary grammar.
> I suggest that we use the org.apache.cocoon.components.validation package
> which is an independent component in Cocoon's main tree and is used by
> XMLForm.
> The Schematron implementation is already available and I think it is quite
> suitable for Anteater, because Schematron is a superset of Anteater's match
> element.
> To be precise it is a superset of the validating use, i.e the cases when
> match is used to assign value to a "result" property. Asigning values within
> <match/> to other properties which are used for subsequent requests is a
> separate concern.
> 
> 
> 
> 
>                         - 2 -
> 
> 
> 
> 
> Schematron was specificly designed for partial, multi-phase validation and
> user friendly error reporting.
> 
> I'll explain how points 1-4 above are addressed by this proposal:
> 
> 1) Schematron is relatively popular. There are a number of articles in
> popular magazines which promote Schematron over other validating schemas.
> 2) Schematron is very easy to learn. Specification and tutorials are
> availbel. There is also supporing discussion groups with decent response
> time.
> 3) Schematron is used for a number of projects. For example there is a
> complete RSS 1.0 validating schema available on the RSS site.
> http://home.freeuk.com/leigh.dodds/rss_validator/
> XMLForm is using schematron extensively as well. Slash-edit is another
> example.
> 4) Maintainance of Schematron documents is easy. Minor local changes are
> made as the underlying (validated) model changes.
> 
> 
> 
> 
> 
>                         - 3 -
> 
> 
> 
> 
> 
> 5) Bonus ;)
> 
> Here is one additional reason why I posted this proposal.
> Validating Schematron documents can be referenced in a transparent
> transformer prior to a page serialization.
> This can be useful in development and QA, to catch and report bugs in
> content (HTML, WAP, XML, etc.) during navigation.
> 
> Searching for problems in a broken HTML page (or other xml markup) can be
> painful.
> Instead of searching for the missing tags or label or icon, the tester (or
> developer) will see a meaningful error report in place of the actual page.
> After testing certain pages time and again, the eye tends to ignore elements
> peripheral to the currently tested feature.
> If there is an underlying validating document which is applied before
> display, then things may be easier. The developer (tester) has to only make
> changes to it when the page structure changes.
> The rest of the time this document will be a safeguard of unexpected
> problems caused as side efects by the development of other features or bug
> fixes or another one of the infinite other possible reasons.
> The transformer applying the validating document can be, of course, turned
> off in production.
> 
> Now the next interesting part. The forementioned validating documents can be
> referenced just as well by Anteater regression suites as they can by a
> pipeline embedded validating transformer.
> 
> 
> 
> 
> 
> 
>                         - 4 -
> 
> 
> 
> 
> As a quick thought, this is how an Anteater script may look:
> 
> <?xml version="1.0" encoding="utf-8"?>
> 
> <project name="calc-test" default="calc">
> 
>   <!-- Simulate the behavior of a user that opens a browser, starts
>   the calculator example, and goes back in the processing several
>   times. -->
>   <target name="calc">
>     <property name="calc" value="${cocoon}/samples/flow/examples/calc/"/>
>     <property name="schema-doc-ns"
> value="http://www.ascc.net/xml/schematron"/>
>     <property name="schema-doc-url"
> value="${cocoon}/samples/flow/examples/calc/sch-report.xml"/>
>     <http description="Test the 'calc' JavaScript implementation">
>       <httpRequest href="${calc}/">
>         <match>
>           <xpath select="html/body//form/@action" assign="cont1"/>
>           <validate phase="page1" assign="violations">
>         </match>
>       </httpRequest>
> 
>       <echo>result = ${violations}</echo>
>     </http>
> 
> ....
> 
> Then the Schematron document would be something like:
> 
> <schema xmlns="http://www.ascc.net/xml/schematron";>
> 
>     <title>Schema for the Calc example</title>
> 
>     <phase id="page1">
>             <p>first page check.</p>
>             <active pattern="form-present"/>
>     </phase>
>     ... other phases ...
>     <pattern name="Test for HTML form element" id="form-present">
> <rule context="/">
> <assert  test="//form">
>         Form element expected on this page.
>       </assert>
> <assert  test="//form/@action">
>   Form element must have action attribute.
>       </assert>
> </rule>
> ... other rules ...
> </pattern>
>     ... other patterns...
> 
>    </schema>
> ...
> 
> 
> 
> 
> Where the validate element will use the validation package to apply the
> schema against the document.
> The violations can be then nicely integrated in the JUnit reporting package.
> 
> 
> 
> If there are enough votes I'll contribute some of the work myself.
> Help would be certainly appreciated.
> 
> 
> Thanks for reading this far.
> 
> 
> Thoughts?
> 
> 
> -= Ivelin =-
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to