Process testing on webgui / universal / Selenium?

  • 18 February 2021
  • 3 replies
  • 64 views

Userlevel 4
Badge +15

We want to improve our automated tests on the web gui and Universal GUI. Currently there is a feature "Process tests" (https://docs.thinkwisesoftware.com/docs/sf/test_cases.html#docsNav). With this feature you can record steps a user could do in the application. This covers all situations that cannot be covered by unit tests. For example when a task is no longer visible due to a change in the roles & rights. Unfortunately there are some downsides of this feature;

  • It only works for the Windows GUI
  • It doesn't have a 'setup' and 'teardown' (clean database)
  • It cannot be automated with ci/cd tooling

Because we only use the Web GUI and are also targeting the Universal GUI we cannot use this feature. We're investigating the possibilities to solve this. We are looking into Selenium WebDriver (https://www.selenium.dev/). This requires some programming knowledge (or you could use the Selenium IDE), but by using this we could cover all test cases. Because it's developed using i.e. C# we could automate it with ci/cd and apply a setup and teardown mechanism.

It all sounds great, except that the SF also has a built in feature. We're on a bit of a struggle, or we actually don't know what the plans are. Are the process tests going to be improved (support for webgui, universal, setup/teardown, integration with ci/cd), or not? And on what terms are we speaking? We want to put some effort in process testing using Selenium, but if the SF maybe could have a similar feature we're probably doing twice the work.

I'd like to hear,

Br, René


3 replies

Userlevel 6
Badge +17

Hi René,

Sorry for the late reply, we have discussed this internally and that took a while. I will summarize my colleague's answer:

The main disadvantage is that we cannot automate process tests. Preparing data can of course be easily automated with external tooling, and testing with the Windows GUI should give the same results as testing with the Web GUI.

For these reasons, we want to use external tooling, like Selenium or Puppeteer, for the Universal GUI that we can control from the Testcases inside the Softare Factory.

Until that time it is perfectly possible to use Selenium. We recently made some adjustments to our Web GUI to make class id's more predictable.

 

Userlevel 4
Badge +15

A little update; we've currently covered the most common workflow using Selenium. Not all things are working yet (such as sending a ctrl+a to a grid via Selenium), but I think we can cover a lot by doing this. The “auit_” classes do help a lot in there.

The next step is attaching it to the git repositories we have for the end product and the web gui. Each time there is a new deployment package or a new webgui the test cases will be triggered.

We're very interested in how this is going to be in the Universal GUI as we think it's very important. However I don't see any reference in the Universal planning regarding (automatic) testing, which worries me a bit. What are the plans for that? How do you for example ensure the Insights demo is working as expected after each update of a component (application, indicium, universal gui)?

 

Userlevel 6
Badge +4

Hi René,

We are currently in the process of re-evaluating the way the process tests are executed. The Windows GUI both loads these tests, runs the tests and reports back.

It is unlikely that the process tests on Universal will be performed by Universal. This is why it doesn’t show on the Universal planning.

The process tests are stored in a generic manner so they can be transformed to suit various technical solutions. It is likely that we’ll either:

  • Introduce a separate runtime component that loads the process tests from the model and performs the tests on Universal via selenium, puppeteer, cypress or
  • Generate said tests scripts from the Software Factory and load them into said component or
  • Turn the tests into ‘test process flows’ managed by Indicium and have Universal execute them, unaware of the fact that they are tests.

Note that the components (Indicium, Universal) are subject to various automated and manual tests as well before they are made available to users. The process tests should mainly focus on the application.

Reply