Tag «Q7»

Q7 1.3.10 most noticeable improvements

New and Noteworthy, Q7, 15.01.2014 by Ivan Inozemtsev View Comments

Congrtulations on past holidays! On December 23rd we have released Q7 1.3.10 (the full list of resolved issues is available here), and in this post I’d like to describe a three improvements and bugfixes which I personally like the most.

Read more…

Q7 1.3.7 released

New and Noteworthy, Q7, 9.09.2013 by Ivan Inozemtsev View Comments

In Q7 1.3.6, released a week ago we released two big new features – verifications and procedures. But we were too excited and hurrying to reveal these features, that made a few annoying bugs. Today’s version contains important bugfixes and small, but useful improvements. Full list of resolved issues is available here, and below just a few interesting improvements:

Read more…

Introducing verifications

New and Noteworthy, Q7, 6.09.2013 by Ivan Inozemtsev View Comments

In my opinion, a good functional test can be represented like this:


Therefore, a test case takes an system under test in some well-defined state, performs some actions, which transfer a system into another state, and then verifies that the final state is correct.

Thus, in a test case we need to specify the following:

  • Initial state
  • Actions to perform
  • Expected final state

Read more…

Procedures and variables

New and Noteworthy, Q7, 3.09.2013 by Ivan Inozemtsev View Comments

While automated recording in Q7 works well, a lot of advanced users prefer to write ECL scripts manually, as it allows to create more flexible and maintainable test cases. In new version of Q7 we have significantly improved the expressive power of ECL by introducing user-defined variables (via let blocks) and user-defined procedures (via proc commands). Before going into details, here’s a simple example – suppose we are testing Java editor and would like to hover a ruler on a currently selected line. Here’s how it can be done without using variables in a plain old ECL:

  get-editor "Program.java" | get-left-ruler |
      get-ruler-column AnnotationColumn | hover-ruler 
        [get-editor "Program.java" | get-text-viewer | 
         get-property "caretPosition.line" -raw]

This is not so much easy to write, and, what is more impotant, not so easy to understand. Now take a look how the same actions can be expressed using variables:

  with [get-editor "Program.java"] {
    let [val currentLine 
           [get-text-viewer | get-property "caretPosition.line" -raw]]
        [val rulerColumn 
            [get-left-ruler | get-ruler-column AnnotationColumn]] {
        $rulerColumn | hover-ruler $currentLine

And if we need to do this operation multiple times in different scripts, we can rewrite it to a procedure:

Read more…


Q7, 11.06.2013 by Ivan Inozemtsev View Comments


A test case in Q7 consists of two parts:

  • list of contexts, defining an application state
  • ECL script describing UI actions and validating that application behavior in given state is correct.

In some cases it might be required to execute same actions with just a few variances in initial state or arguments of script commands. Common examples are:

  • Test case verifies that a project can be built. An executed action is just a verification that Problems view is empty, but this should be done for several different projects. We can say that we have the same behavior for different states of workspace.
  • Test case verifies some form (like a validation of new Java Class dialog). We execute basically the same actions (type values in fields and check error message), but with different command arguments.

Read more…

Functional and UI Testing for Eclipse-based Applications

Test automation solution, handcrafted for Eclipse. Modern and easy to learn IDE.

Product Health Analytics and Support Automation Platform

End-user and product analytics solution that gives you rich insights into your application health & performance.

Eclipse-based IDE for the Fantom Programming Language

Full-featured Integrated Development Environment for emerging Fantom programming language.