testing UIs and improving a11y all at once!

Aleix Pol aleixpol at kde.org
Sat Aug 13 01:43:03 BST 2022


On Wed, Aug 10, 2022 at 12:29 PM Harald Sitter <sitter at kde.org> wrote:
>
> Servus,
>
> A while ago I prototyped a "new" approach to UI testing and I'm
> wondering if there's general interest in doing more Plasma testing
> using it. I'm able to invest time in polishing the experience for us.
>
> Very rough prototype: https://invent.kde.org/sitter/selenium-webdriver-at-spi
>
> The testing is run through the accessibility API we have on Linux
> https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/ as well as the
> testing API selenium https://www.selenium.dev/ respectively the more
> specific appium https://appium.io/
>
> Architecturally appium is an extension to selenium and selenium is a
> client-server system where the client is the test and the server is a
> so called webdriver. Webdriver is a standardized well-defined API of
> various UI interactions https://www.w3.org/TR/webdriver/ and we'd
> implement one based on the a11y APIs (the feature sets match fairly
> well).
>
> Since selenium has wide spread use across the industry we get to use
> excellent tooling on the client without any extra work from us. And
> because it is so wide spread the stuff is generally very well
> maintained. All we need to maintain is the webdriver that interacts
> with the a11y API.
>
> The way this type of testing works is by UI interaction and state
> validation. There is a kcalc test available in the prototype repo [1]
> - the test operates the various UI elements to perform a calculation
> and then checks that the output UI element contains the expected
> value.
>
> A simple plasma test might open kickoff, and launch one of the
> favorites, then validate that indeed a new window has opened.
>
> Since all this is driven by the a11y API there is the additional
> advantage of making us notice a11y problems and deal with them,
> resulting in bettery a11y support in the long run. Two birds, one
> stone!
>
> What do you reckon?
>
> [1] https://invent.kde.org/sitter/selenium-webdriver-at-spi/-/blob/91486b50995ade23c6b03a54f77347c263c2f03a/calculatortest.py
>
> HS

It looks super interesting, always refreshing to see a plan to kill
such two very important birds. :)

Best,
Aleix


More information about the Plasma-devel mailing list