7

I am new to mobile testing - my only experience was to just test some apps in two or three real devices manually.

Since mobile development is agile, this needs to use test automation. I have experience in Selenium webdriver/grid and c# scripting and at least could use cross browser testing.

I am not sure about how cross-device/platform work in mobile testing. Do emulators work 100% accurate? Our users would be global and I know there will be language support as well. Any tips on mobile testing and automation in general? Thanks

7

Since mobile development is agile, this needs to use test automation.

Mobile development can be agile. It is not a given. Test automation can be done in any paradigm.

Do emulators work 100% accurate?

I can't say 100% but they are getting more accurate (I haven't had an issue since iOS 6). For Android, make sure to use an AVD with Google Play API services.

I have experience in Selenium webdriver/grid and c# scripting

Then you'll be at home writing Appium/Java tests. To me, C# and Java are basically the same. Especially when using common libraries like Selenium. Alternatively, I use Xamarin to test iOS and Android with great success.

I am not sure about how cross-device/platform work in mobile testing.

I keep my desktop browser and mobile tests separate. They are different products and behave differently. I also keep my iOS and Android test projects separate.

Any tips on mobile testing and automation in general?

Testing on mobile isn't different. As an example: an input is still an input and can be tested the same.

One thing to remember is that automated testing on mobile is like Selenium/browsers in that it just controls the app (or browser) and not the OS. It can be a chore to do things outside the app like disable wifi or handle system alerts.

  • 1
    Here are a couple of guides from my site for creating mobile automation frameworks: C# Xamarin Automation and Java Appium Automation. They both use a Fluent+POM design: App.Page.Element.Action(). – kirbycope Jun 15 '17 at 19:00
  • thanks @kirbycope for the insight, this is very informative for me! I would also read on Xamarin regarding this. – Marj Jun 15 '17 at 19:36
  • 1
    Xamarin is C# only. It uses the Xamarin.UITest library. – kirbycope Jun 15 '17 at 19:39
  • What is the advantage/disadvantage of Xamarin vs Appium? – Marj Jun 19 '17 at 16:00
  • 1
    I find Xamarin a little easier to setup and use. Appium requires running a server (think Grid Hub). Other than that, they are pretty similar. Both use xUnit so tests can be written the same and easily ported from one to the other. Appium's advantage is in the cloud. Many services offer Appium and the price points are competitive. Xamarin Test Cloud is a Microsoft product but not under the MSDN (yet) and can be pricey in comparison. – kirbycope Jun 19 '17 at 16:34
4

Appium

Yes, Appium is the best way forward. The tooling for Appium is klunky and tough to set up, has a steep learning curve and then (think about this) you cannot test at the optimal place to test!

Where is the optimal place to test?...

Unit Testing

Everyone is so pumped to get to automated GUI testing, yet it is the worst time and place to test! Why? You have to wait for delivery, you cannot access anything the GUI won't allow (code wise) and it's just a poor excuse for Unit Testing.

Unit Testing is a better place to test, with code in the same repository as developers code, so just one folder away. Developers say "We don't have time to Unit Test" which is true and an issue for the management that is setting due dates. People say well you can't get true End-to-End tests which may be true, but if every component of an End-to-End test is 100% Unit Tested the only thing left is the inter-component interfaces. Testing just that will be much easier at the GUI layer than trying to effectively do Unit Tests in the UI.

Using Appium Means Native Applications

One last side note... Why anyone chooses native application over web based applications is a head scratcher for sure. Why? Just look at Facebook which uses React or any site built on Angular.. Most native applications on Windows platform have fallen out of favor (majorly) over past 5 years or more. Is Android or Apple's operating systems that much better then what the web browser can do?

  • As a QA who is still learning so much about C# and programming in general, should I also be involved in the Unit Testing process? I have heard this "We don't have time to Unit Test" everytime I initiate them to unit test. Since I am very interested too in development, I would like to do it, but is it necessary for me? – Marj Jun 15 '17 at 20:09
  • 1
    Having the QA Team member embed with Programmers is a relatively new concept. Many programming teams still haven't made this a reality yet. It takes some time to convince them and you have to have some programming chops to pull it off. The good news is that Visual Studio 2017 will automatically create Unit Test Stubs for you (and more). I'd suggest getting access to their code first and add a test project to solution, then follow these steps: docs.microsoft.com/en-us/visualstudio/test/… – John Peters Jun 15 '17 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.