What is Xamarin Test Cloud for? - visual-studio

I am working on developing a Xamarin hybrid (html+js+css) application for Android using Visual Studio for iOS.
My client wants to upload builds (of the app) to the Xamarin Test Cloud. I am new to Xamarin, so I have no idea about Xamarin Test Cloud. I have done some research and found that we can write test cases in our application and send them to Xamarin Test Cloud.
So far I understand it, Xamarin Test Cloud is only for app testing purposes, not for sharing buildAs with multiple users or clients. Am I right or not?
Please let me know more about Xamarin Test Cloud, i.e what are the uses of it.

You are partly correct.
Xamarin Test Cloud is an automated testing solution. You are able to run UI-tests on every platform. This will allow you to see how the application performs on the many android devices and versions, as well as the different versions of iOS. Xamarin Test Cloud however is limited to UI testing (and crash reporting based on your testing scenario). Unit Tests and Integration tests (mostly technical tests) cannot be performed by Xamarin Test Cloud.
In order to distribute the app to test-users you should use HockeyApp. HockeyApp has recently be acquired by microsoft (source) and allows you to distribute your app to a closed group of people for feedback (usually used for User Acceptance Tests (UAT)). Note: HockeyApp will soon be integrated with Microsofts' Application Insights service where it offers more features (insights in performance of your app, time used, time looked at Activity X etc) - see how to set this up
So in short:
Xamarin Test Cloud - Automated UI Testing on hundreds of devices
HockeyApp - User Acceptance Tests with distribution
Xamarin Insights (or Microsoft Application Insights) - insight in the usage of your app on different levels.

Correct. TestCloud is used to run your app on thousands of devices at once to figure out how your app behaves and how it looks on many different device quickly and without having to actually buy thousands of devices. It is not for sharing your app with specific users. If you want to share your app with specific users, you can either use HockeyApp for iOS and Android or you can use TestFlight for iOS and the Google Play Store's Beta program for Android.

In short Xamarin.Test.Cloud is a cloud service for automated UI tests.Those UI tests can be written in Calabash and/or C# NUnit project in form of unit tests. Most of the developers use C# version form od the framework. This Xamarin product is called Xamarin.UITest which is created locally with Xamarin tools and uploaded to Xamarin.Test.Cloud.
More in depth...
Xamarin.UITest which most of developers use is basically NUnit C# project in Viusal Studio or Xamarin.Studio. It loads user's apk (Andriod) or ipa/app (iOS) file and prepares everything for testing.
Testing might include:
exploring UI (detecting content, widgets/views/controls names and content)
interacting with UI (tapping, scrolling)
recording interactions from 2. so they can be used in automated tests
https://developer.xamarin.com/guides/testcloud/uitest/
API is not complex, but needs some [short] time for learning. Maybe more for tricks like working with pickers (especially in Xamarin.Forms), backdoors, gestures etc. My daughter is 15 and she's doing talks on Xamarin.UITest, because it is that simple and nice for kids to learn coding and feel "productive".
Sample interaction:
app.Tap( c => c.Marked("Login") );
Another useful command is: tree - to see Visual Tree (DOM) of the Ui presented.
NOTE:
Xamarin.UITest is not limited to apps written in Xamarin!
It can be used with Android app written in Java, iOS app written in objective-c/swift!
Xamarin.UITest differs for hybrid apps, because the DOM is actually HTML DOM. Hence - try exploring DOM with tree command.
With Xamarin.UITest and nunit runner you can test locally on your devices and/or emulators/simulators. 15 minutes limit is removed if I can recall correctly.
Xamarin.Test.Recorder is useful tool for exploring and recording Xamarin.UITests. On Mac this should be standalone app and on Windows you'll need Visual Studio Enterprise (restriction).
https://developer.xamarin.com/guides/testcloud/testrecorder/
Xamarin.Inspector from package called Xamarin.Interactive is another standalone tool for analysing and inspecting UI of the app.
https://developer.xamarin.com/guides/cross-platform/inspector/
When UI test is written - the project output (dlls) are uploaded to the Xamarin.Test.Cloud. To get project output you'll need Xamarin.Studio or Visual Studio with Xamarin tools installed.
Before upload there are several steps user needs to do like: selecting devices (number depends on pricing), getting APIKey for particular tests. Uploading is done through commandline...
https://developer.xamarin.com/guides/testcloud/uitest/working-with/submitting-tests-to-xamarin-test-cloud/
Then user goes to XTC (Xamarin.Test.Cloud) portal and checks results (reports, screenshots etc).
This is how it looks like behind the scenes (this is what I like to show during my talks):
https://youtu.be/PQMBCoVIABI?t=3432
Handsome Danish guys (which cannot play handball) on stage and 2000+ devices on the shelves (it was 1900+ devices in 2015-09) in the datacenter...
For sharing - use HockeyApp
For monitoring - use Xamarin.Insights
NOTE: HockeyApp and Xamarin.Insight are being merged to single product for beta-testing and monitoring (TestFlight like).

Related

Is it ok to hide a "Developer mode" in my app?

I have an mobile app. While in debug, I need to test several different stuff, so I created a button that shows a list of these tests.
Even in Release, some things are different (Apple Push Notification). So I need to test in release too.
Is it ok to leave these shortcuts hidden when releasing the app?
Doing so would leave a massive security hole in your application, which should be avoided at all costs. In fact, if you're creating an iOS app, I doubt such a hole would get by Apple's independent release testing.
Ideally, you should be using separate coding environments for development, testing and production. When you're developing, you should be using one of the various simulators to test as you work. There's an in-built one in XCode that can simulate a variety of Apple devices, and if you're using something like Ionic, you can hook it to a live preview in a web browser.
Once you're happy that things are working on your computer, you then should be deploying a development .ipa / .apk file. This file should only be released 'in-house', manually. If that's all good, you move on to testing. For testing, create a secondary file, and this can be distributed for external testing through something like Apple TestFlight.
For production, you'd remove any 'backdoors', as in theory, your app would be ready for the public. At this stage it's a simple matter of releasing it through either the Google Play Store or Apple Store.

Xamarin Live Player - Deploy was cancelled

I have trying to debug my android app through Xamarin Live Player , it gets builds but give the error Deploy was cancelled.
Has anyone faced this and got this working .
Xamarin Live player Limitations
Some system classes cannot be overridden (for example, you cannot implement a subclass).
Some platform features that require provisioning can't work in the Xamarin Live Player app (however it has been configured for common operations like camera access).
Custom targets and build steps are ignored. For example, tools like Fody cannot be incorporated.
xamarin live player still not stable and there are issues that everyone complain. until it release high stable update best thing to deploy over usb connection
also see this -
https://developer.xamarin.com/guides/cross-platform/live/troubleshooting/
https://forums.xamarin.com/discussions/tagged/xamarin-live-player

Appcelerator automated Functional Testing

Is there an alternative to Soasta with the enterprise license for automated functional testing? I'm looking for a solution where we can record clicks, gestures and input etc and play it back.
Thanks in advance
Xamarin UI Test. Titanium renders native components, so in your application you can write end-to-end test with it. There is a test recorder (only for Visual Studio) and a REPL which you can use to write your actions one by one and to have a look at the components tree. It's everything based on the compiled file so there aren't integration problems. After you can also automate those tests on Xamarin Test in Cloud.
https://developer.xamarin.com/guides/testcloud/uitest/
https://www.xamarin.com/test-cloud/recorder
https://www.xamarin.com/test-cloud

Need Help in Xamarin UI Test Automation

I am currently working on Mobile App automation .Have come across Xamarin UI Test Automation.But I could find less documentation on that.
I have downloaded xamarin studio on Mac as well as on Windows.
But I need help on scripting from scratch.How can I use the tool to script and run on Android as well IOS phones.
I faced same issue. This two links: bdd, ui test helped me. First link is about BDD testing but include what you need.
Also you should check Xamarin UI tests recorder that can simplify your task but it's not a free.

Continuous Integration with React Native

I am new to iOS, Can someone please tell me how can I set up CI for react native? I currently use codeship but I don't think they offer anything for iOS. Any suggestion on any hosted CI tool which supports bitbucket? Thanks
I'm using buddybuild for my React Native apps. It's going awesome so far. I felt bitrise a little bit complicated and I got some problems during my builds, Buddybuild is totally transparent. It helps me not only with Continuous integration, but also with:
Checking for Xcode compatibilities: with each new version and beta of Xcode, buddybuild will take the most recent successful build of your app, run it against the newest version of Xcode and email you the results of any potential breaking changes.
First Class Test Support: Run tests UI and Unit tests on simulator, emulator and physical devices.
Static Code Analysis
Code Coverage: know exactly how much of your code base is being exercised during testing.
Instant Deployments: Organize your testers into groups to configure which builds they get, and how often they should receive new versions of your app.
Publish to the Play Store and App Store: Automatically deploy your app to the Play Store or App Store!
And also the Continuous Integration will build both the Android and iOS versions of your app. Simply onboard the app twice and select iOS then Android to have both versions built.
I have a React Native Starter App for both Android & iOS that uses Bitrise.io and they support BitBucket. The tests are run with Jest and have over 86% coverage. There's a video series detailing the CI process. Swapping out Github for Bitbucket is trivial, during the registration process you'll be prompted for a vendor (Github/Bitbucket). After that everything should be the same. Note: I am the developer.
You can use circleci which has good integration with other tools like Fastlane, Here how you set up another And greate Talk by talk by Joe Stanton # React Meetup London one more greate article by Ramesh Nair

Resources