Documentation for natural language for interaction scenarios

78 views
Skip to first unread message

BrainWash

unread,
Jan 12, 2012, 2:55:31 AM1/12/12
to Zucchini Framework
Hi Guys,

Do you have any documentation for natural language for interaction
scenarios?
I am lost now. Only reference I have is the image from home page of
the framework.
I would like to know more keywords or commands.



Cheers,

vaskas

unread,
Jan 19, 2012, 7:56:11 PM1/19/12
to Zucchini Framework
Hi BrainWash,

As you can see, there's not much documentation so far :)
Have a look at the source of the base Screen class:
https://github.com/playup/zucchini/blob/master/lib/uia/screen.coffee

There's currently only a short list of essential methods that can be
shared consistently across all setups.

Chenxin Yan

unread,
Feb 7, 2012, 4:43:11 PM2/7/12
to Zucchini Framework
This is a question to the above vaskas's reply.

I am comparing natural language used in zucchini-demo-5104b4a/features/
add_book/feature.zucchini and the screen.coffee file pointed by
Vaskas.

What are the following in feature.zucchini? I did not find the
corresponding ones in screen.coffee

Start on the "..." screen
Then on the ".." screen:
Delete a row "...."

I also have a high level question. What are UI operations that
zucchini currently does not support? In another word, what are
zucchini's limitations in terms of writing testing scenarios
(feature.zucchini file) in natural language?

Thanks for your responds in advance.

Vasily Mikhaylichenko

unread,
Feb 7, 2012, 6:34:25 PM2/7/12
to zucchini...@googlegroups.com
Hi Chenxin,

'... in the "..." screen:' is basically a new screen marker which tells Zucchini to proceed with a new screen class (https://github.com/playup/zucchini/blob/master/lib/uia/base.coffee#L47).


You are very much encouraged to implement custom steps that make sense for your application testing.

Zucchini supports whatever operations UIAutomation supports but it often means that you have to create custom steps thus extending the DSL for your purposes.

Cheers
Vaskas

Chenxin Yan

unread,
Feb 7, 2012, 9:13:18 PM2/7/12
to Zucchini Framework
This means that writing a test on Zucchini involves two steps

1. Write work flow scenario file feature.zucchini. e.g.
https://github.com/rajbeniwal/zucchini-demo/blob/master/features/add_book/feature.zucchini

2. write coffee script for each screen, which implements natural
language commands for the corresponding screen if natural language
commands related to that screen are not implemented in the base class
Screen in screen.coffee. For the demo, the workflow involved 4
screens. So the four coffee scripts are created for them.
https://github.com/rajbeniwal/zucchini-demo/blob/master/features/support/screens/books.coffee
https://github.com/rajbeniwal/zucchini-demo/blob/master/features/support/screens/new_book.coffee
https://github.com/rajbeniwal/zucchini-demo/blob/master/features/support/screens/book%20input/title.coffee
https://github.com/rajbeniwal/zucchini-demo/blob/master/features/support/screens/book%20input/author.coffee

So, creating a test case based on Zucchini does not sound as simple as
I originally thought.

We are using UI automation enhanced by Tuneup_js. The developers
writes javascripts test case for low-level local UI testing. However,
we are looking for a test tool suitable for QA to write integration
tests and the tool does not require a test writer to do heavy
programming.
I agree that zucchini does have better verification methodology.
However, I feel that the requirement of writing coffee screen for each
individual screen does not sound fit with our expectation.

Is my understanding about Zucchini test writing correct?




On Feb 7, 3:34 pm, Vasily Mikhaylichenko
<vasily.mikhayliche...@gmail.com> wrote:
> Hi Chenxin,
>
> '... in the "..." screen:' is basically a new screen marker which tells Zucchini to proceed with a new screen class (https://github.com/playup/zucchini/blob/master/lib/uia/base.coffee#L47).
>
> 'Delete a row "..."' is an example of a custom step:https://github.com/rajbeniwal/zucchini-demo/blob/master/features/supp...

Vasily Mikhaylichenko

unread,
Feb 12, 2012, 8:05:10 PM2/12/12
to zucchini...@googlegroups.com
Hi Chenxin,

One of the reasons why we picked CoffeeScript over JS for Zucchini was its readability.

It takes a bit of effort from a QA or a QA + Developer pair to come up with initial screen elements and actions definitions. However, the end result is more maintainable and it's is easy for a QA's to come up with new features based on existing screens. It also gets simpler for him / her to come up with small fixes without being lost in the JS code.

Chenxin Yan

unread,
Feb 13, 2012, 6:11:06 PM2/13/12
to Zucchini Framework
Yes, it is easier for a QA to take on after initial screen elements
and actions are defined. I see this tool's value now.

Thanks,

Yujing

On Feb 12, 5:05 pm, Vasily Mikhaylichenko
<vasily.mikhayliche...@gmail.com> wrote:
> Hi Chenxin,
>
> One of the reasons why we picked CoffeeScript over JS for Zucchini was its readability.
>
> It takes a bit of effort from a QA or a QA + Developer pair to come up with initial screen elements and actions definitions. However, the end result is more maintainable and it's is easy for a QA's to come up with new features based on existing screens. It also gets simpler for him / her to come up with small fixes without being lost in the JS code.
>
> On 08/02/2012, at 1:13 PM, Chenxin Yan wrote:
>
>
>
>
>
>
>
> > This means that writing a test on Zucchini involves two steps
>
> > 1. Write work flow scenario file feature.zucchini. e.g.
> >https://github.com/rajbeniwal/zucchini-demo/blob/master/features/add_...
>
> > 2. write coffee script for each screen, which implements natural
> > language commands for the corresponding screen if natural language
> > commands related to that screen are not implemented in the base class
> > Screen in screen.coffee. For the demo, the workflow involved 4
> > screens. So the four coffee scripts are created for them.
> >https://github.com/rajbeniwal/zucchini-demo/blob/master/features/supp...
> >https://github.com/rajbeniwal/zucchini-demo/blob/master/features/supp...
> >https://github.com/rajbeniwal/zucchini-demo/blob/master/features/supp...
> >https://github.com/rajbeniwal/zucchini-demo/blob/master/features/supp...

Aleksey

unread,
May 17, 2012, 5:01:49 AM5/17/12
to zucchini...@googlegroups.com
Please describe what doing 'Confirm "([^"]*)"$'

четверг, 12 января 2012 г., 9:55:31 UTC+2 пользователь BrainWash написал:
четверг, 12 января 2012 г., 9:55:31 UTC+2 пользователь BrainWash написал:
четверг, 12 января 2012 г., 9:55:31 UTC+2 пользователь BrainWash написал:

Vasily Mikhaylichenko

unread,
May 17, 2012, 8:31:45 PM5/17/12
to zucchini...@googlegroups.com
Hi Aleksey,

"Confirm" in fact is just an alias for "Tap".

Good luck with Zucchini!

Aleksey

unread,
May 18, 2012, 5:04:19 AM5/18/12
to zucchini...@googlegroups.com
Спасибо =)
Could you please help me with getting more logs from zucchini.
Reply all
Reply to author
Forward
0 new messages