Category

Testing

Building Mobile UI Tests using REPL

By | Android, Testing, UITest, Xamarin | No Comments

This is post 4 of 4 in the series “Xamarin Test Cloud” Building Mobile UI Tests using REPL REPL builds a list of methods to automate a mobile app for use in a UI test. The typical workflow starts with the tree command to list elements in the current view. Next, app methods wait for elements, enter text, tap buttons and so on. Then the copy command saves your REPL activity to the clipboard. Finally, you paste REPL commands into your test method. Once you paste the REPL output, you can clean it up and add assertions.

The screenshot shows the Android emulator on the left, and…

Read More
Xamarin UITest Word Cloud

Mobile Testing in the Xamarin Test Cloud

By | Android, Android, C#, iOS, Testing, UITest, Visual Studio, Xamarin, Xamarin Test Cloud | No Comments

Mobile UI testing requires the same power as web UI testing. Certainly we need the basics: identify on-screen elements, automate, and make assertions. But that’s not going to be enough for teams building mobile apps under rapidly changing conditions; not with hundreds of new, evolving technology combinations. So what are the new rules? Here’s what we need, right-out-of-the-box…

Read More
Ghost

Ghost Inspector

By | Ghost Inspector, Testing, Web | One Comment

Ghost Inspector for Web UI Testing Sometimes you need a knife, not a Swiss-army knife. Too many bells and whistles can actually get in the way. For example, our web portal testing requires a recorder to handle straight-forward scenarios: clicking, entering text, and checking state. We also need a way to augment recordings for more complex scenarios. Most web testing tools can get you this far. But we also need tests to run in the cloud, right out of the box. We want test results sent via email or Slack without jumping through hoops (and certainly without writing custom interfaces). And finally, we want test…

Read More

TestComplete TypeScript?

By | News, SmartBear, TestComplete, Testing, TypeScript | 2 Comments

TestComplete TypeScript? TypeScript lets you write JavaScript that is easier to extend, maintain and is more readable. For example, I’ve always had issues with web browser scripting because there are several TestComplete script objects to simply open, navigate, and close a browser. So, would you rather work with TestComplete script running wild like this example?

…or express your scripting ideas this way:

I vote for example #2. Both examples have the same functionality, but the second example is easier to follow and is much more compact. Note: For an introduction to TypeScript and examples, check out this blog…

Read More

Cross Device Testing

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | One Comment

This is post 31 of 31 in the series “31 Days of Mobile Testing with TestComplete” Cross Device Testing For apps running on multiple devices and operating systems, you can avoid maintenance and extensibility headaches by planning up-front. I usually start by researching the expected work-flow. What are the objects? Are there methods and properties I need for automation? How different is the usability from one version of the app to another? Just a few simple actions can have a surprising number facets to consider. There’s no limit to how complicated things can get, on account of one thing always leading to another….

Read More

Testing Sensors on Mobile Devices with Test Complete

By | Android, iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 30 of 31 in the series “31 Days of Mobile Testing with TestComplete” Sensors Sensors measure device position, movement and environment. TestComplete lets you enumerate and read each sensor. Both iOS and Android Device objects have an indexed Sensor property and a SensorsCount so you can iterate through the list. For example, to log every sensor name on a device:

  The log for my Samsung Galaxy shows the available sensors: To get the same for every connected device, iterate the Mobile object’s children using the ChildCount property and Child(index) method. The Child() method returns an…

Read More

Automated Testing on iOS Controls with Test Complete

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 29 of 31 in the series “31 Days of Mobile Testing with TestComplete” iOS Controls To find out what iOS controls TestComplete supports, go to project properties and look under Object Mapping. There you’ll find the complete list of control categories that TestComplete supports in your environment right now: Each category may support one or more controls. For example, the Table view category shows support for iOS UITableView, UITableViewCell and any derived classes. Researching the Control We can use picker controls as an example. With a picker, you can select from a revolving list of values. The…

Read More

Automating iOS User Actions

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 28 of 31 in the series “31 Days of Mobile Testing with TestComplete” Automating iOS User Actions Once you have your iOS app instrumented, the gates swing wide open and you can use everything that TestComplete offers. Each mobile object and the device object can simulate touch, long touch, keyboard entry and dragging. There isn’t a Gestures collection like Android testing has, but you simulate single-point gestures in code. For the walk-throughs in this blog I’ll use instrumented versions of the “Hello World” apps created by Xcode starter projects: tabs, page based, and a game starter project….

Read More

Instrumenting iOS Apps, What could go wrong?

By | iOS, Mobile, News, SmartBear, TestExecute, Testing | 2 Comments

This is post 27 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps, What could go wrong? We all know the answer to that – plenty. Here are a couple of bricks I stubbed my toe on. If you’ve run into other issues while instrumenting iOS, please share a comment. No Code Signing Identities Found This message appears if you’re trying to archive the app and you’re missing the Developers certificate and provisioning files. The error message shows up on the left in the Issue Manager The Xcode Preferences under the Account tab > View…

Read More

Instrumenting iOS Apps III

By | iOS, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 26 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps III – Getting the Files To prepare for this blog, I scrubbed the certificates from the Apple Developer site and from the Mac, then rebuilt them. I’ve done this multiple times, but the process has too many variations to go down every path. I’ll try to show you my path and what it looked like along the way. To begin, I created a directory named “Certs” that I could access from both TestComplete and the Mac. The Certs directory ends up…

Read More

Instrumenting iOS Apps II

By | iOS, Mobile, News, SmartBear, TestComplete, Testing | One Comment

This is post 25 of 31 in the series “31 Days of Mobile Testing with TestComplete” Instrumenting iOS Apps II – Preparation When we left off, we were using the TestComplete UI to instrument iOS apps. But first we need a certified app archive *.ipa file. To get that *.ipa file built, we need a little preparation. What You Need First Make sure you have these items ready before continuing: A Mac with the latest OS, iTunes and Xcode installed. A PC with TestComplete installed and Mobile extensions enabled. Install iTunes on the PC. You can download it from here. Get an…

Read More

Android Layout Background Color

By | Android, Mobile, SmartBear, TestComplete, Testing | One Comment

Android Layout Background Color – Bonus Post This isn’t part of the 31 days of TestComplete Mobile blog series, but is an answer to an interesting question that came up in the TestComplete forums: “Can I get the layout background color of an Android app? Layouts may not always have a solid background color, but when they do, here are two ways to get at it. If you have an instrumented app, you can use the native Android layout getBackground().getColor() methods. getColor() returns an integer that includes the alpha (amount of transparency) and the red/green/blue components of the color. I created…

Read More

Android Gestures

By | Android, Mobile, SmartBear, TestComplete, Testing | One Comment

This is post 24 of 31 in the series “31 Days of Mobile Testing with TestComplete” Android Gestures A big part of an app’s usability is in the user interaction: pinching gestures, rotation, two finger swipes and so on. Not to mention the ad-hoc gestures the app may experience in everyday handling of the device. Mobile applications can be crashed in new and innovative ways – just ask your average three-year-old to test your app, you might be surprised. TestComplete’s Gesture Collections let you record single and multiple simultaneous touch gestures. You can play them back at different speeds interactively,…

Read More

Responding to Android Toasts and Snackbars

By | Android, Mobile, SmartBear, TestComplete, Testing | 2 Comments

This is post 23 of 31 in the series “31 Days of Mobile Testing with TestComplete” Responding to Android Toasts and Snackbars Toasts and snackbars show status without getting in the way. Before Google introduced material design, toasts were the way to go. Toasts don’t receive focus, they don’t interrupt typing, but they aren’t easy to find with TestComplete. Toast behavior is by design. This works well for the end user, but can make testing a bear. You can wait for a toast with particular text, but TestComplete doesn’t give you a reference to the object (as of this writing). The screenshot…

Read More

Android Controls II

By | Android, Mobile, SmartBear, TestComplete, Testing | One Comment

This is post 22 of 31 in the series “31 Days of Mobile Testing with TestComplete” Android Controls II – ListView Scrolling, Finding Items Questions about Android ListView scrolling come up in the forums. The Extended properties have methods for touching and selecting items, but there’s nothing built-in for scrolling. For that you need native Java methods. The Android ListView smoothScrollToPosition() method moves to the top or bottom of the list:

Using the Orders sample that installs with TestComplete, there’s only seven items in the list — not enough to scroll with. Trying to scroll might constitute an error…

Read More