As a developer we all know about that rumor of writing any kind of test is a costly task. In this post I would like to show you a better way for writing UI tests that even makes it fun when it comes to a very large mobile app.

Where Do We Come From?

To get a propper set of tests for an application we normaly have to specify what we want to test, we have to create the test cases, classes and what ever is involved to test our application.

With Xamarin Test Cloud you can fill your test cases with life through a REPL command line tool. With REPL you start navigating through your app by querying each screen for contained UI controls and later operate on them.

A simple test for a login button would look like this:

[TestFixture]
public class TelematicsDroidTest
{
    IApp _app;

    [Test]
    public void LoginAsDemoUser()
    {
        Func<AppQuery,AppQuery> demoLoginButton = e => e.Id("Logon_LoginDemo_Button");
        Func<AppQuery, AppQuery> mainFragmentContainer = e => e.Id("Main_FragmentContainer");

        _app.WaitForElement(demoLoginButton, "Timed out waiting for the Login_LoginDemo_Button to appear.");
        _app.Tap(demoLoginButton);
        _app.WaitForElement(mainFragmentContainer, "Timed out waiting for the Main_FragmentContainer to appear.");

        _app.Screenshot("Screennshot_after_press_Login_Button");
    }
}

What is not visible is the amount of time to get there. Remember, you normaly would test this with REPL first, later copy it into the test case, try it localy again and as the last step upload it to Xamarins Test Cloud. While this is easily understandable for software developers, a tester might not be into that kind of time consuming test creation process.

How Can We Improve This?

With the launch of Xamarin 4, which contains tons of improvements to the Xamarin ecosystem in general, comes my favorite feature called Xamarin Test Recorder.

Xamarin Test Recorder makes UI testing very easy no matter if you are at the beginning of UI testing or just want to have additional tests for your app. Why does it improve the creation of UI tests:

  • Point and click pattern makes it easy to create UI tests for people without programming knowlage
  • Write tests while manualy test the app
  • Good to use for small and big app projects
  • With Test Recorder you don't need to use the REPL tool

You can get Test Recorder from the Xamarin website at xamarin.com/test-cloud/recorder and make sure to watch the introduction video.

comments powered by Disqus