[Attempto] controlled English to express acceptance testing

Kenneth Jones kennethjone at gmail.com
Thu Apr 21 22:41:36 CEST 2011


Yes, I plan to open source the code eventually.  Currently it's what you
might call a proof-of-concept prototype -- an Agile programmer might refer
to as a "spike".  I need to finish the prototype, rewrite/refactor the code,
write documentation, and surround the code with tests before I open-source
it.

Yes, I create FitNesse input from the DSCNLs.  I am taking this approach
(instead of breaking completely away from FitNess) in order to retain
compatibility with a currently-existing testing framework and to allow
incremental porting of tests to the new approach, one test at a time.

By creating simple DSCNLs for simple subdomains I keep the complexity low.
 I then take an opportunistic approach to translating from ACE to FitNesse.
 Some languages require ACE --> DRS --> FitNesse and others are so simple
that there's hardly any work at all to performing the translation.

My test case definition language is an example of a very simple language
that is trivial to transform from ACE to Fitnesse.  In order to describe
test cases you only need existential quantification and conjunction (or, as
Sowa would say, existential conjunctive logic), i.e., in order to describe
test cases you only need to specify the properties of the objects that
exists and assume a closed world.

If the domain allows, you can use extralingual contextual information to
infer the types of the objects being described.  For instance, if you are
testing software that determines the price of a car based on its color,
model year, and make, then you might want a section of your FitNesse tests
to test only this part of your code.  Because you are in this section of the
test, the context requires tests case that specifies the color, model year,
and make of exactly one car. A sentence like "The car's color is blue and
its model_year is 2000 and its make is Ford." would suffice.

Sentences like these are trivial to parse and interpret.  First, make sure
the sentence conforms to the grammar by requiring that editing be done in
ACE Edit.  Then pick out instances of the word 'is'.  The word immediately
preceding each instance is a property name and the word immediately
following it is the value of the property.  FitNesse tests are usually
specified in tabular form, so you just create a row in the table that has
the property values in the correct columns and your translation is done.

I am using ACE Editor instead of ACEWiki because I want to develop a tool
that has a GUI that is substantially different from that of ACEWiki.  Also,
I am not doing any reasoning at this point in time, though I plan to add
reasoning in the future.  It just seemed that what I wanted was sufficiently
different from ACEWiki to make development easier with ACE Editor, but I may
be wrong about that.

ACE Editor is bundled with ACEWiki.  You can download the source code from
ACEWiki's Launchpad site.

-- Ken

On Thu, Apr 21, 2011 at 12:53 PM, Jean-Marc Vanel
<jeanmarc.vanel at gmail.com>wrote:

> Hi Kenneth
>
> Is this project code that you can open source and share ?
> By "replace existing FitNesse tests" , I understand that somehow you
> translate the Attempto DRS into FitNesse input .
> How do you do that ?
> Why are you using ACE editor and not ACE Wiki ?
> I guess it's because ACE editor is simpler ; but is ACE editor available as
> source ? Maybe you just use the ACE editor instance at
> http://attempto.ifi.uzh.ch/webapps/aceeditor/ ...
>
>
> 2011/4/21 Kenneth Jones <kennethjone at gmail.com>
>
>> I am currently developing just such an application, but it's in its early
>> stages.  I am actually trying to replace existing FitNesse tests.  Early
>> results look promising.
>>
>> At this point I am developing a set of domain-specific CNLs (DSCNLs), one
>> for each section in the Fitnesse tests (a DSCNL for data specification, a
>> DSCNL for counting, e.g., auditing rules, etc.).  By taking this approach
>> and developing a grammar for each language I keep language design simple and
>> minimize the amount of learning required by the users (business analysts).
>>  I am using ACE Editor and APE.
>>
>> -- Ken
>>
>> On Thu, Apr 21, 2011 at 10:32 AM, Jean-Marc Vanel <
>> jeanmarc.vanel at gmail.com> wrote:
>>
>>> One idea is to use controlled English to express use cases in a much
>>> more formal way than JBehave, FitNesse and other testing and
>>> acceptance tools (
>>>
>>> http://en.wikipedia.org/wiki/Acceptance_testing#List_of_acceptance-testing_frameworks
>>> ) . Note: acceptance testing is also known as functional testing,
>>>
>>> Any thoughts or experiences about this subject ?
>>>
>>>
> --
> Jean-Marc Vanel
> Déductions SARL - Consulting, services, training,
> Rule-based programming, Semantic Web
> http://jmvanel.free.fr/ - EulerGUI, a turntable GUI for Semantic Web +
> rules, XML, UML, eCore, Java bytecode
> +33 (0)6 89 16 29 52 -- +33 (0)1 39 55 58 16
> ( we rarely listen to voice messages, please send a mail instead )
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ifi.uzh.ch/pipermail/attempto/attachments/20110421/9c6e6c77/attachment-0001.html>


More information about the attempto mailing list