In the last post on DRY XCUITest with Base classes, we have abstracted our code in the base classes in order to avoid the duplication of the code. We have achieved this using the object-oriented inheritance approach. However, Swift is a protocol-oriented language, and we will see how we can use Swift protocols and extension to make our XCUITests more human readable. We will apply Behaviour-Driven Development a.k.a BDD in the methodology for our XCUITest.
In our previous post on setting up XCUITest framework, we got up and running with a sample XCUITest with Xcode 10. Apple’s XCUITest framework gives us an ability to record the basic user journeys to get started with XCUITest, but the recorded tests are not scalable and reusable. We have to take efforts to make the XCUITest more readable, scalable, maintainable and reusable.
The mobile application development has rapidly grown in recent years. The practices like Mobile DevOps and CI/CD set up the infrastructure to speed up app development. However, mobile app testing doesn’t evolve much to keep up with the speed of app development. It’s true that there are multiple automated testing tools out there that allow us to keep up with the pace of development, but we need something more to do all the things without any scripts and with minimum cost. This is where Artificial Intelligence and Machine learning (AI/ML) comes into the picture. In this post, we will explore how we can use AI/ML tools in our mobile application development workflow.
Apple announced the Xcode UI Testing framework in WWDC 2015 that allows us to write user interface tests for iOS apps using Swift or Objective-C. The only option remained to automate iOS apps is the XCUITest framework. Since iOS 10, there is a growing trend of iOS teams adopting XCUITest and deprecating old toolbox. In this short post, we will explore steps to get started with XCUITest to automate iOS app testing with the latest Xcode 10.
Apple released iOS 12 just in time after announcing three new iPhones. The new iOS version has a rich set of features in terms of performance and user experience and comes with huge enhancements in performance, security and privacy. Whilst considering these new features for users, we also need to consider what this release means to every iOS developer and QA engineer. In this post, we will explore some major development and testing considerations for Apple’s new operating system.