GUI automation tool (windows)

Discussion in 'Python' started by Alex Barna, Aug 9, 2010.

  1. Alex Barna

    Alex Barna Guest

    I know that this question has been asked for several times, but it
    surprises that there is no tool under very active development and the
    community activities are very low (mailing list posts).

    All the tools listed in:

    http://pycheesecake.org/wiki/PythonTestingToolsTaxonomy#GUITestingTools

    Comparing with AutoIt (www.autoitscript.com), it has tens to hundreds
    of posts everyday. AutoIt uses a proprietary BASIC -like language, and
    to be honest, I don't like it and I prefer a Pythonic solution.

    pywinauto seems to be the best choice but the community has been very
    low also. The same happens in pyguiunit, pyAA, WATSUP, all development
    seem to be ceased.

    So what happens to this field (Windows GUI automation) ?
    Alex Barna, Aug 9, 2010
    #1
    1. Advertising

  2. Alex Barna

    alex23 Guest

    Alex Barna <> wrote:
    > So what happens to this field (Windows GUI automation) ?


    Either someone cares enough to do something about it, or everyone just
    defaults to using AutoIT-like tools.

    Which Python implementation are you planning on contributing to?
    alex23, Aug 10, 2010
    #2
    1. Advertising

  3. In message
    <>, Alex
    Barna wrote:

    > So what happens to this field (Windows GUI automation) ?


    Can’t understand the point to it. “GUI automation†is a contradiction in
    terms, because a GUI is designed for use by humans to do manual tasks, not
    ones that can be automated.

    Tasks that can be automated are most easily, flexibly, and above all
    reliably, done via command lines and other such scripting interfaces.
    Lawrence D'Oliveiro, Aug 10, 2010
    #3
  4. On Tue, 10 Aug 2010 20:05:12 +1200, Lawrence D'Oliveiro wrote:

    > In message
    > <>, Alex
    > Barna wrote:
    >
    >> So what happens to this field (Windows GUI automation) ?

    >
    > Can’t understand the point to it. “GUI automation†is a contradiction in
    > terms, because a GUI is designed for use by humans to do manual tasks,
    > not ones that can be automated.


    There have been plenty of systems for recording user actions and playing
    them back. They're very useful at times.

    http://en.wikipedia.org/wiki/Macro_recorder
    http://en.wikipedia.org/wiki/Macro_(computer_science)


    You might even have heard of one of them... Emacs. I hear that it's
    moderately popular among Linux users.

    http://www.linuxjournal.com/article/3769



    > Tasks that can be automated are most easily, flexibly, and above all
    > reliably, done via command lines and other such scripting interfaces.


    That's a matter of opinion, and it clearly depends on the nature of the
    GUI and CLI, as well as what task you're trying to automate.



    --
    Steven
    Steven D'Aprano, Aug 10, 2010
    #4
  5. Alex Barna

    Chien Guest

    On Aug 10, 5:56 am, alex23 <> wrote:
    > Alex Barna <> wrote:
    > > So what happens to this field (Windows GUI automation) ?

    >
    > Either someone cares enough to do something about it, or everyone just
    > defaults to using AutoIT-like tools.


    There were a lot of development but then all ceased, except pywinauto
    has a final release in April, but really low community activity. Does
    it mean AutoIt has much more advantages than Python tools (which I
    have not realized) ?

    > Which Python implementation are you planning on contributing to?


    I'd say pywinauto. It's more O-O than the other tools. Excerpt from
    its homepage (http://pywinauto.openqa.org/):

    <quote>
    Most other tools are not object oriented you end up writing stuff
    like:

    window = findwindow(title = "Untitled - Notepad", class =
    "Notepad")
    SendKeys(window, "%OF") # Format -> Font
    fontdialog = findwindow("title = "Font")
    buttonClick(fontdialog, "OK")

    I was hoping to create something more userfriendly (and pythonic):

    win = app.UntitledNotepad
    win.MenuSelect("Format->Font")
    app.Font.OK.Click()
    </quote>

    Alex Barna
    Chien, Aug 10, 2010
    #5
  6. Alex Barna

    Alex Barna Guest

    On Aug 10, 10:05 am, Lawrence D'Oliveiro > Can’t understand the point
    to it. “GUI automation” is a contradiction in
    > terms, because a GUI is designed for use by humans to do manual tasks, not
    > ones that can be automated.


    Automating GUI is for testing.
    Alex Barna, Aug 10, 2010
    #6
  7. Alex Barna

    News123 Guest

    On 08/10/2010 12:25 PM, Alex Barna wrote:
    > On Aug 10, 10:05 am, Lawrence D'Oliveiro > Can’t understand the point
    > to it. “GUI automation” is a contradiction in
    >> terms, because a GUI is designed for use by humans to do manual tasks, not
    >> ones that can be automated.

    >
    > Automating GUI is for testing.

    And sometimesfor working around SW, whch has no cli or other interface
    and should be automated
    News123, Aug 10, 2010
    #7
  8. On 08/10/10 20:13, News123 wrote:
    > On 08/10/2010 12:25 PM, Alex Barna wrote:
    >> On Aug 10, 10:05 am, Lawrence D'Oliveiro> Can’t understand the point
    >> to it. “GUI automation” is a contradiction in
    >>> terms, because a GUI is designed for use by humans to do manual tasks, not
    >>> ones that can be automated.

    >>
    >> Automating GUI is for testing.

    > And sometimesfor working around SW, whch has no cli or other interface
    > and should be automated
    >

    That and when you are forced using a gui and need to 'copy and paste'
    between two programs that have no native bridge except for the one that
    is between the keyboard and chair, then it is nice to know that there is
    a way of automating it.

    --
    mph
    Martin P. Hellwig, Aug 10, 2010
    #8
  9. In message
    <>, Alex
    Barna wrote:

    > On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >
    >> Can’t understand the point to it. “GUI automation†is a contradiction in
    >> terms, because a GUI is designed for use by humans to do manual tasks,
    >> not ones that can be automated.

    >
    > Automating GUI is for testing.


    But the most egregious GUI problems are going to be with humans being unable
    to figure out how to do something, am I right? How are you going to uncover
    those problems, except by testing with real people? Automated testing isn’t
    going to do it.
    Lawrence D'Oliveiro, Aug 11, 2010
    #9
  10. In message <4c61a4f5$0$5804$>, News123 wrote:

    > On 08/10/2010 12:25 PM, Alex Barna wrote:
    >
    >> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>
    >>> Can’t understand the point to it. “GUI automation†is a contradiction in
    >>> terms, because a GUI is designed for use by humans to do manual tasks,
    >>> not ones that can be automated.

    >>
    >> Automating GUI is for testing.

    >
    > And sometimesfor working around SW, whch has no cli or other interface
    > and should be automated


    Who would design software in such a brain-dead way?
    Lawrence D'Oliveiro, Aug 11, 2010
    #10
  11. On 2010-08-11, Lawrence D'Oliveiro <_zealand> wrote:
    > In message
    ><>, Alex
    > Barna wrote:
    >
    >> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>
    >>> Can???t understand the point to it. ???GUI automation??? is a contradiction in
    >>> terms, because a GUI is designed for use by humans to do manual tasks,
    >>> not ones that can be automated.

    >>
    >> Automating GUI is for testing.

    >
    > But the most egregious GUI problems are going to be with humans being
    > unable to figure out how to do something, am I right? How are you
    > going to uncover those problems, except by testing with real people?
    > Automated testing isn???t going to do it.


    Automated GUI testing isn't intended to uncover those sorts of
    problems in GUI design. Automated GUI intended to uncover problems in
    the underlying program functionality, and is used mainly for
    regression testing to insure that changes made to a program didn't
    cause any unintended changes in program behavior.

    Automated GUI testing often isn't even being used to test the program
    whos GUI is being automated. It's often used to test _other_ programs
    with which the GUI-automated-program interacts.

    --
    Grant
    Grant Edwards, Aug 11, 2010
    #11
  12. On 2010-08-11, Lawrence D'Oliveiro <_zealand> wrote:
    > In message <4c61a4f5$0$5804$>, News123 wrote:
    >> On 08/10/2010 12:25 PM, Alex Barna wrote:
    >>> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>>
    >>>> Can???t understand the point to it. ???GUI automation??? is a
    >>>> contradiction in terms, because a GUI is designed for use by humans
    >>>> to do manual tasks, not ones that can be automated.
    >>>
    >>> Automating GUI is for testing.

    >>
    >> And sometimesfor working around SW, whch has no cli or other
    >> interface and should be automated

    >
    > Who would design software in such a brain-dead way?


    In my experience, almost everybody who designes apps for MS Windows.

    --
    Grant
    Grant Edwards, Aug 11, 2010
    #12
  13. Alex Barna

    Robert Kern Guest

    On 2010-08-10 21:57 , Lawrence D'Oliveiro wrote:
    > In message
    > <>, Alex
    > Barna wrote:
    >
    >> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>
    >>> Can’t understand the point to it. “GUI automation†is a contradiction in
    >>> terms, because a GUI is designed for use by humans to do manual tasks,
    >>> not ones that can be automated.

    >>
    >> Automating GUI is for testing.

    >
    > But the most egregious GUI problems are going to be with humans being unable
    > to figure out how to do something, am I right?


    Possibly, but it's not the *only* important problem. Automated GUI testing is
    usually a form of regression testing. You want to make sure that the behavior of
    parts of the GUI did not change when you made what should be unrelated
    modifications to the code.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco
    Robert Kern, Aug 11, 2010
    #13
  14. Alex Barna

    Robert Kern Guest

    On 2010-08-10 21:59 , Lawrence D'Oliveiro wrote:
    > In message<4c61a4f5$0$5804$>, News123 wrote:
    >
    >> On 08/10/2010 12:25 PM, Alex Barna wrote:
    >>
    >>> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>>
    >>>> Can’t understand the point to it. “GUI automation†is a contradiction in
    >>>> terms, because a GUI is designed for use by humans to do manual tasks,
    >>>> not ones that can be automated.
    >>>
    >>> Automating GUI is for testing.

    >>
    >> And sometimesfor working around SW, whch has no cli or other interface
    >> and should be automated

    >
    > Who would design software in such a brain-dead way?


    People who are not being paid for a CLI or other interface.

    --
    Robert Kern

    "I have come to believe that the whole world is an enigma, a harmless enigma
    that is made terrible by our own mad attempt to interpret it as though it had
    an underlying truth."
    -- Umberto Eco
    Robert Kern, Aug 11, 2010
    #14
  15. In message <>, Robert
    Kern wrote:

    > On 2010-08-10 21:57 , Lawrence D'Oliveiro wrote:
    >
    >> In message
    >> <>, Alex
    >> Barna wrote:
    >>
    >>> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>>
    >>>> Can’t understand the point to it. “GUI automation†is a contradiction
    >>>> in terms, because a GUI is designed for use by humans to do manual
    >>>> tasks, not ones that can be automated.
    >>>
    >>> Automating GUI is for testing.

    >>
    >> But the most egregious GUI problems are going to be with humans being
    >> unable to figure out how to do something, am I right?

    >
    > Possibly, but it's not the *only* important problem. Automated GUI testing
    > is usually a form of regression testing. You want to make sure that the
    > behavior of parts of the GUI did not change when you made what should be
    > unrelated modifications to the code.


    Again, that’s something that primarily affects real users, when they find
    some function is no longer in the place where they expect it to be. You have
    to test with real users to find out what they think of this sort of thing.
    Lawrence D'Oliveiro, Aug 11, 2010
    #15
  16. In message <i3t449$7cg$>, Grant Edwards wrote:

    > Automated GUI intended to uncover problems in the underlying program
    > functionality ...


    That “underlying†functionality has nothing to do with the GUI, then. Why
    not test it directly, rather than go through the GUI?

    > Automated GUI testing often isn't even being used to test the program
    > whos GUI is being automated. It's often used to test _other_ programs
    > with which the GUI-automated-program interacts.


    Again, this sounds like it has nothing to do with the GUI per se.
    Lawrence D'Oliveiro, Aug 11, 2010
    #16
  17. On 2010-08-11, Lawrence D'Oliveiro <_zealand> wrote:
    > In message <>, Robert
    > Kern wrote:
    >
    >> On 2010-08-10 21:57 , Lawrence D'Oliveiro wrote:
    >>
    >>> In message
    >>> <>, Alex
    >>> Barna wrote:
    >>>
    >>>> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>>>
    >>>>> Can???t understand the point to it. ???GUI automation??? is a contradiction
    >>>>> in terms, because a GUI is designed for use by humans to do manual
    >>>>> tasks, not ones that can be automated.
    >>>>
    >>>> Automating GUI is for testing.
    >>>
    >>> But the most egregious GUI problems are going to be with humans being
    >>> unable to figure out how to do something, am I right?

    >>
    >> Possibly, but it's not the *only* important problem. Automated GUI testing
    >> is usually a form of regression testing. You want to make sure that the
    >> behavior of parts of the GUI did not change when you made what should be
    >> unrelated modifications to the code.

    >
    > Again, that???s something that primarily affects real users, when they find
    > some function is no longer in the place where they expect it to be.


    Automated testing can detect when some function is no longer where it
    used to be.

    > You have to test with real users to find out what they think of this
    > sort of thing.


    Again, nobody's talking about using automated testing to figure out
    what users think. We're talking about using automated testing to make
    sure that rev 3.5 acts the same what that rev 3.4 did when you push
    button X or select menu option Y.

    --
    Grant
    Grant Edwards, Aug 11, 2010
    #17
  18. On 2010-08-11, Lawrence D'Oliveiro <_zealand> wrote:
    > In message <i3t449$7cg$>, Grant Edwards wrote:
    >
    >> Automated GUI intended to uncover problems in the underlying program
    >> functionality ...

    >
    > That ???underlying??? functionality has nothing to do with the GUI,
    > then. Why not test it directly, rather than go through the GUI?


    Because in many programs _there_is_no_other_way_to_test_it_directly_.

    Yes, that sucks. In the real world most programs suck. You've still
    got to test them.

    >> Automated GUI testing often isn't even being used to test the program
    >> whos GUI is being automated. It's often used to test _other_ programs
    >> with which the GUI-automated-program interacts.

    >
    > Again, this sounds like it has nothing to do with the GUI per se.


    Exactly! That's what we've been trying to explain. Automating a GUI
    isn't done to test how well the GUI works for real users. It's done
    mainly for two purposes:

    1) Regression testing to make sure that the GUI's behavior (good,
    bad, or indifferent) hasn't changed since the previous revision.

    2) To test the functionality underlying the GUI.
    Grant Edwards, Aug 11, 2010
    #18
  19. In message <i3teqh$ckf$>, Grant Edwards wrote:

    > ... nobody's talking about using automated testing to figure out
    > what users think.


    That’s the trouble. What’s the point of a GUI, then?
    Lawrence D'Oliveiro, Aug 11, 2010
    #19
  20. Grant Edwards wrote:
    > On 2010-08-11, Lawrence D'Oliveiro <_zealand> wrote:
    >
    >> In message
    >> <>, Alex
    >> Barna wrote:
    >>
    >>
    >>> On Aug 10, 10:05 am, Lawrence D'Oliveiro
    >>>
    >>>
    >>>> Can???t understand the point to it. ???GUI automation??? is a contradiction in
    >>>> terms, because a GUI is designed for use by humans to do manual tasks,
    >>>> not ones that can be automated.
    >>>>
    >>> Automating GUI is for testing.
    >>>

    >> But the most egregious GUI problems are going to be with humans being
    >> unable to figure out how to do something, am I right? How are you
    >> going to uncover those problems, except by testing with real people?
    >> Automated testing isn???t going to do it.
    >>

    >
    > Automated GUI testing isn't intended to uncover those sorts of
    > problems in GUI design. Automated GUI intended to uncover problems in
    > the underlying program functionality, and is used mainly for
    > regression testing to insure that changes made to a program didn't
    > cause any unintended changes in program behavior.
    >
    > Automated GUI testing often isn't even being used to test the program
    > whos GUI is being automated. It's often used to test _other_ programs
    > with which the GUI-automated-program interacts.
    >
    >

    Yep, as an example, I worked on a cardio medical system (X ray). In
    order to get to the market, such system must prove its robustness, part
    of the proof was about chaining thousands of patients without a crash
    nor X ray failure.
    This is where GUI automation comes in. The tool was simulating the
    interaction between a doctor and the system application GUI and was
    working 24/7.

    JM
    Jean-Michel Pichavant, Aug 11, 2010
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. D. Lane
    Replies:
    0
    Views:
    772
    D. Lane
    Jun 27, 2003
  2. Replies:
    0
    Views:
    416
  3. Replies:
    0
    Views:
    558
  4. apondu
    Replies:
    0
    Views:
    592
    apondu
    Jul 19, 2007
  5. Axel Etzold

    Windows GUI automation question

    Axel Etzold, Aug 19, 2009, in forum: Ruby
    Replies:
    1
    Views:
    130
    Luis Lavena
    Aug 19, 2009
Loading...

Share This Page