Testing your Outsystems apps

Testing your Outsystems apps

Does Outsystems recommend any testing tools to use with the apps we build? If so, what are they?

Has anyone used any of the testing tools/frameworks on the Forge? If so, to what end? What are your experiences with them?

I tried using a unit testing framework on the forge and even tried to create one myself (called "Marshmallow").  After devloping for over a year with Outsystems, I consider all the unit testing frameworks on the forge, including my own, to be obsolete.  I have found that my highest quality work has resulted from what I shall call the "Rule of Two" (not the Star Wars kind):

  1. If it is simple or moderately complex, test it manually
  2. If it is extremely complex, create a unit test espace by hand and allow for its unit tests to be database-driven
On the browser end, it might speed things up to use something like Selenium, but so far I have preferred manual testing.  IMHO, I think Test Driven Development (TDD) is mostly obsolete once you have switched over to a visual programming language, and the development team needs to be more focused on Acceptance Test Driven Development (ATDD).
Hi Gerry,

Which type of testing are you interested in? Unit, regression, performance?...

For unit testing (testing your APIs), you can use UTF (Unit Testing Framework). It's easy to setup, using web services for discovering all your available unit tests (see the documentation).

For regression testing (testing your UI, end-to-end scenarios), you can use Test Automator. It's based on Selenium, meaning that you have to record your tests scripts using Selenium's recorder and then import them into TA. Scripts can be reused and parameterized (for example, you can reuse in multiple tests a Login script, receiving a username / password). A full test may include several scripts, executed in sequence. Some remarks on TA:
  • Be sure to read the documentation available from the component's download page, as working with Selenium scripts and the platform is not trivial - pay special attention to the section Picking Element Locators.
  • You need access to the server, in order to install server-side components (currently not an option for Personal Environments).
  • TA can also do unit testing, in a similar way to UTF.
In some scenarios you may want to have a dedicated regression testing environment. Using Download & Deploy you can automatically deploy your latest application version (from Dev or QA) in your regression environment, thus allowing TA to automatically test it later on (during the night, for instance - you would have the results in the morning).
is there a way to see the code coverage (flow coverage) using UTF ?
@Thirupathi: No, it doesn't do code coverage.
Ok thanks Paulo, is there any other tool to do that or if i want to write one is it possible? could you give some suggestions on how to write that?

We are using java platform by the way
Not that I'm aware of... unit testing and regression testing are the available options as of now.