A case for codeless iOS UI Automation tests with FlowUI. OpenSource. Completely free. Forever.
Tags: testing, mobile, ios, swift
Published: 2020-05-26 16:32:44

## Introduction
Appium is one of the most used open-source UI automation tools for iOS/Android. The ability to write automation tests in multiple programming languages is probably the biggest advantage. 

Despite the advantages, in this short, I will first

* present a problem of not just Appium, but all ui automation test-tools that heavily focus on code to write tests.
* and then present the soon-to-be open source project, FlowUI, as a developing solution completely free to the community.

## Laying out the case
Typically, unit-testing is done by developers, and it requires internal knowledge of the app as well as programming experience (White-box). This is expected.

UI tests, in contrast, inspect multiple app functionality working together by tapping screen elements. These tests typically do not require internal knowledge of the app (Black-box). 

The problem is that although UI testing is typically black-box, it still has a programming requirement, because numerous test-tools focus on coded tests. Many companies have large manual QA teams which can benefit greatly from automated testing if that programming knowledge wall were broken. 

The general consensus about the focus on coded UI tests seem to be:
> Testing in code is simpler, and easier to maintain when the app changes. 
> Coded tests also have greater power/flexibility to do things that will otherwise be more complex accomplish with record/playback tests.

But what if we can have a framework with the best of both worlds?
* Remove the programming requirement
* Remain blackbox
* Simple UI design so that managing thousands of tests can will scale just as well as tests written in code. 
* Have tests in an easy storable format for GIT and which can be edited with a simple IDE.
* Is free and open source

## Introducing FlowUI
FlowUI is an all-in-one ui automation test app.  This ambitious project has the following goals. The ✓-checked ones have already been done to some extent:

[x] Open-source - If there is traction for this project, we will begin the process.
[x] Available for iOS and Android. (Android 40% complete)
[x] Available for Windows/Mac. (MacOS complete)
[✓] Easy setup - double-click and run without any additional plugins or setup.
[✓] Simple UI - Tests should be easy to read/write/maintain and scalable so that 1000s of tests can be managed easily.
[✓] Can link into existing CI systems
[✓] Tests should not be flakey
[✓] Parallelization - Running tests on multiple simulators should be as easy as clicking a button.
[✓] built-in app inspection so that QA can see the View in the app's view hierarchy
[✓] The recording test based design should provide the exact same power and flexibility of pure coded tests as much as black-box-idly possible, while still maintaining simplicity.
[✓] Should be able to handle multiple localizations

## Conclusion
Rather than describing how it works, a 4-minute demo of FlowUI can be seen [here](https://www.youtube.com/watch?v=eOp5mlyxudo).
To get started, go to [SimpleUITesting.com](https://www.simpleuitesting.com)

If there is any interest in progressing this interesting project, leave a comment or a message to developers@simpleuitesting.com
It would be nice to hear from you.