
Learn how to declare variables with var in Swift and define constants with let, use = for assignment, annotate data types, follow naming rules, and note Swift's case sensitivity.
https://github.com/surendrajaganadam/Testing_MobileApp
Explore the XCUITest API, including XTest, XCTestCase, and X application, to learn how to create, manage, and execute tests with setup, teardown, and performance measures.
Create a basic test script using debugging mode to launch the kit catalog app, navigate to the alerts view, and tap on okay, cancel, or simple options.
\
Learn to synchronize iOS UI tests with XCUITest by using the waitForExistence command to wait up to 10 seconds for elements before proceeding, avoiding hard sleeps.
Learn how to capture and attach screenshots in XCUITest for iOS UI automation using Swift, name and keep screenshots, and view them in test run reports.
Learn to enter a text field value character by character using the keys command to tap number keys, a practical workaround when type text input misbehaves in iOS UI tests.
Explore printing all text field values in an iOS UI test with Swift and XCUITest by looping over text fields and printing each value to the console.
XCUITest POM framework automates the login flow by defining page objects and locating the username, password fields, and the login button.
Utilize XCUITest with Swift and Detox to generate and implement a logout flow after login using Cursor AI, accessibility IDs, and a page object model.
func testBluetoothOff(){
let app = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
app.launch()
app.cells["Bluetooth"].tap()
app.switches["Bluetooth"].tap()
app.buttons["Turn Off"].tap()
sleep(3)
app.terminate()
}
func testBluetoothOn(){
let app = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
app.launch()
app.cells["Bluetooth"].tap()
app.switches["Bluetooth"].tap()
sleep(3)
app.terminate()
}
func testVerifyBluetoothOff(){
let app = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
app.launch()
app.cells["Bluetooth"].tap()
app.switches["Bluetooth"].tap()
if(app.buttons["Turn Off"].exists){
app.buttons["Turn Off"].tap()
}
sleep(1)
app.terminate()
}
func testWifiToggleStatus(){
let app = XCUIApplication(bundleIdentifier: "com.apple.Preferences")
app.launch()
app.cells["Wi-Fi"].tap()
app.switches["Wi-Fi"].tap()
sleep(3)
app.terminate()
}
func testPressHomeButton(){
sleep(3)
XCUIDevice.shared.press(XCUIDevice.Button.home)
sleep(1)
}
func testVerifyWidget(){
XCUIDevice.shared.press(XCUIDevice.Button.home)
let springBoardAppInstance = XCUIApplication(bundleIdentifier: "com.apple.springboard")
springBoardAppInstance.swipeRight()
springBoardAppInstance.swipeRight()
springBoardAppInstance.swipeUp()
sleep(1)
springBoardAppInstance.buttons["Edit"].tap()
springBoardAppInstance.buttons["Add Widget"].tap()
springBoardAppInstance.cells["Batteries"].tap()
springBoardAppInstance.buttons[" Add Widget"].tap()
springBoardAppInstance.buttons["Done"].tap()
}
Learn to handle iOS widgets in XCUITest by establishing a Springboard session, swiping to reveal widgets, then editing, adding a widget, and managing deletions on simulator and real devices.
Explore how human-in-the-loop AI enhances software testing and development, with examples from advanced chess, banking form fields, and prompt-driven tools, while acknowledging AI limitations.
Explore retrieval augmented generation (rag) as a knowledge base that augments LLM queries with retrieved embedded vector database data. This enables accurate responses without full retraining.
Explore fine tuning to tailor AI interactions for customers, branch staff, and officials by updating the existing knowledge base. Compare this with retrieval augmented generation and external policies.
Understand how providing context improves the accuracy of language models in LMS, and apply it to iOS UI automation with XCUITest by supplying clear topic information.
Explore prompt engineering and the role of clear input in guiding AI responses. See how explicit context and constraints help avoid hallucinations and yield a tailored, step-by-step plan.
Set a tester context via a context file and rules, then generate test cases from user stories, acceptance criteria, and UI mockup for Excel-ready output.
Create an n8n workflow that connects Gmail and Google Drive, uses an AI agent with GPT 4.1 mini to read a test data sheet, and emails Sam when data matches.
Build an n8n workflow that reads a sheet, validates an email value, and sends an email via an AI-driven prompt.
Execute an n8n workflow to create Jira bugs from a sheet by passing credentials and URL, validating connections, and auto creating defects in zero for new statuses.
Enable a public chat in the n8n workflow, generate a shareable URL, and demonstrate using it to analyze sheet three and create defects in zero while updating statuses.
Create a Chrome extension for record and playback using cursor AI, generate Playwright TypeScript or Selenium scripts from browser actions, and preview, download, and debug recorded actions.
Develop the otp shield mobile app to monitor text messages, phone calls, and WhatsApp messages and calls for otp requests, alert the user, and block suspicious APKs.
Learn to create local agents with agent.md and skills.md to generate manual test cases and automation scripts, drawing data from Azure or Zira for Playwright or Selenium.
Create a free Azure dev apps account, sign up, and set up an organization and project for test automation. Then configure a pipeline to run playwright tests from that project.
Create a manual test case generator agent that fetches an Azure DevOps user story, generates test cases per defined rules, and saves them to an Excel file.
Develop a manual test case generator agent that fetches user story details from Azure, prints the title, description, and acceptance criteria, and stores UI mockups.
Define rules for generating comprehensive manual test cases for end-to-end user journeys, including negative and edge cases, with P1/P2 priorities, action keywords, and draft-saving to a story ID markdown file.
Provide update on AI video series; content is being updated, with 12+ videos created; will complete in a week, featuring basics to advanced AI concepts, test script generation, and frameworks.
Install Node.js and Visual Studio Code on Windows, create a project folder, and configure VS Code to open and trust the workspace.
Install the GitHub Copilot extension for Visual Studio Code and sign in with your GitHub account to enable AI pair programming for writing and debugging code.
Explore constants in Swift, practicing how values defined as constants cannot be changed, using an employee location in Hyderabad as an example and showing the error when reassignment occurs.
Learn how while loop and do while loop control repeated execution with conditions, contrast with for loops, and avoid infinite loops by proper increment and condition checks.
Explore JavaScript objects, including key-value pairs, properties, and methods, and learn to access, update, delete, and invoke functions through an employee details example.
Create objects with constructor functions by using a capitalized name and the new operator, assigning this.name and this.age, and supporting multiple object instances with parameters.
Explore module concepts in automation testing by splitting code into dedicated files, one module for one functionality, using export and import to create reusable, maintainable code.
Install detox globally and per-project, using npm to install the detox CLI; set up node, Xcode, iOS simulators, and Homebrew to enable iOS and Android testing.
Create a new React Native Expo project, install dependencies, and launch Android and iPhone simulators while preparing to configure Detox for local setup.
Configure detox for the React Native project by installing detox, initializing it, and reviewing the generated config.js and starter.js files, then load the project for editing.
Configure Detox for iOS UI automation by verifying the simulator device list and running tests on an iPhone 16 Pro with npm start in the iOS simulator debugger configuration.
Explore how asynchronous concepts like promise, async, and await drive reliable UI automation, showing how to wait for actions, handle launches, visibility checks, and synchronized UI interactions with Detox.
Learn to launch already installed iOS apps on a simulator with detox by configuring the bundle id and binary path in detox, enabling testing of locator strategies.
Learn how to capture all attributes of elements by class name using getAttributes in an iOS UI test, returning a JSON array printed to the console.
Learn to identify iOS UI elements in XCUITest with by.traits([traits]) and and(matcher), focusing on accessibility traits for static text and alerts, and perform taps to verify visibility.
Explore performing a tap on a UI element in an iOS app with XCUITest, using element attributes or coordinates via the tab command.
Learn to use expect with toExist, toHaveText, toHaveLabel, and toHaveId for iOS UI automation in XCUITest, validating element existence, text, label, and id with practical examples.
Use explicit wait with waitFor and withTimeout to ensure a UI text field is visible and has a value within 2000 ms. Practice toHaveValue with a detox input.
Configure a real android device for detox by enabling developer options and usb debugging, connecting with wiser, and setting android home and sdk root for adb verification.
Configure android end-to-end tests by converting to Playwright JavaScript, run in sequential mode, and validate a single counter test on an emulator; use accessibility inspector and Xcode debugging for locators.
Configure detox for android real devices, set up adb device names, forward ports, troubleshoot metro bundler issues, and run tests on real devices using ai copilots.
** Complete mobile path: XCUITest (Swift) + Detox (JavaScript) + AI for QA **
Learn iOS UI automation with XCUITest and Swift, plus Detox mobile automation with JavaScript for React Native — including AI testing concepts for modern QA engineers.
This XCUITest and Detox course is built for manual testers, beginners, and automation engineers who want practical native iOS testing and cross-platform mobile E2E skills in one path.
What you will learn in this course:
- Swift fundamentals required for XCUITest automation
- XCUITest basics: setup, locators, assertions, and test structure
- iOS UI automation: gestures, alerts, waits, and validations
- AI-driven implementation concepts for XCUITest
- JavaScript fundamentals required for Detox
- Detox mobile automation for React Native apps
- Detox actions and Android automation workflows
- Practical skills for real mobile projects and interviews
Keywords covered in this course:
XCUITest, XCUITest Swift, iOS UI automation, iOS automation testing, Detox, Detox JavaScript, Detox React Native, mobile automation testing, Swift UI testing, React Native E2E, AI for QA, Xcode UI testing.
This course combines native iOS automation with XCUITest Swift and Detox JavaScript mobile E2E so you can build strong mobile automation skills for projects and interviews.
If you are searching for XCUITest Swift, iOS UI automation, Detox JavaScript, or XCUITest and Detox training in one course, this course is for you.
Mobile applications are at the heart of modern digital products, and skilled professionals in mobile automation testing are in high demand. This course is a complete, hands-on guide to XCUITest iOS automation, iOS UI automation testing, and Detox mobile automation using JavaScript, designed to take you from beginner to advanced level.
You will start with the fundamentals of iOS test automation from scratch, learning how to automate iOS apps using the XCUITest iOS automation framework and Swift for test automation. You’ll understand how to identify elements, handle gestures, alerts, waits, and validations, and design reliable and maintainable iOS automation frameworks used in real-world projects.
The course then focuses on Detox automation with JavaScript, a powerful solution for end-to-end mobile testing and cross-platform mobile automation. You’ll learn how to write stable tests, manage synchronization, and automate real user workflows for modern mobile applications.
To help you stay future-ready, the course introduces AI in test automation and AI-powered testing concepts. You’ll understand how intelligent test automation, self-healing tests, and test automation with AI can improve test coverage, reliability, and overall automation efficiency in modern QA teams.
This course is ideal for manual testers moving to automation, QA automation engineers, and anyone looking to build job-ready mobile automation skills. It also helps with iOS automation interview preparation and career growth for testers who want to work on advanced mobile automation frameworks.
By the end of this course, you’ll be confident in building scalable, maintainable, and modern mobile automation testing solutions for real-world applications.
XCUITest, iOS Automation, Swift, Detox, Mobile Testing
XCUITest iOS automation
iOS UI automation testing
Mobile automation testing
Swift for test automation
Detox mobile automation
Detox automation with JavaScript
iOS automation framework
End-to-end mobile testing
iOS test automation from scratch
Mobile testing for beginners
Cross-platform mobile automation
Automation testing for mobile apps
iOS automation interview preparation
QA automation engineer
Mobile automation framework design
AI in test automation
AI-powered testing
Intelligent test automation
Self-healing tests
Test automation with AI
Modern QA automation
Manual tester to automation
QA tester career growth
Automation testing for testers
Beginner to advanced mobile automation
Job-ready mobile automation skills
Course updated on 27 December 2025 with below concepts:
Object identification using Layout Inspector
Object identification using App.js
Actions on Android app UI Elements
Handling text fields - tapBackspaceKey, replaceText, clearText, tapReturnKey - android device
Handling long press, scroll , slider, screenshot , datepicker - android device
Handling Android Real Devices
Generate Android code using a copilot prompt
Course updated on 26 December 2025 with below concepts:
Detox Android Configuration
Course updated on 24 December 2025 with below concepts:
Introduction to Javascript
Javascript Configuration on Windows MAC
Overview on Console.log() & Hello World Program
Overview on Variables, Comments, Constants, Datatypes, Operators with examples
Conditional, Looping, break, continue, switch Statements, Functions, Anonymous, Arrow , Objects with examples
Arrays, forEach, class, object, constructor & methods
Course updated on 23 December 2025 with below concepts:
Performing Slider on element using adjustSliderToPosition
Handling DatePicker using setDatePickerDate
Overview on Device object & commands
Expect - toBeVisible(), toExist() , toHaveText(), toHaveLabel(), toHaveId(), toHaveValue(), waitFor(), withTimeout(), toBeFocused() with examples
Course updated on 22 December 2025 with below concepts:
Performing Tap on element
Performing Tap on element using coordinates
How to open app source in xcode and identify locators
Performing MultiTap on element
Performing LongPress on element
Performing Swipe Operation - Left, Right, Up & Down
Performing Pinch Operation
Performing Scroll Operation - top , bottom, left & right
Handling text fields - tapBackspaceKey, replaceText, clearText, tapReturnKey
Capture Screenshot
Course updated on 16 December 2025 with below concepts:
Overview on JEST
Jest describe, beforeAll, afterAll, beforeEach , afterEach with examples
Overview on Promise, async & await
Element identification using Accessibility Inspector
Update reinstallApp configuration in detox configuration file
Launch already installed apps using detox
Identify an element using it label - example on by.label() method
Identify an element using it text - example on by.text() method
capture element information using getAttributes()
capture all elements information using getAttributes()
Identify an element using it index - example on atIndex() method
Identify an element using by.traits([traits]) & and(matcher)
Identify an element using withAncestor(matcher)
Course updated on 15 December 2025 with below concepts:
Introduction to Detox
Detox vs Appium vs XCUITest
Detox- Gray Box Testing
Environment Setup for Detox
Creating a project for Detox
Configuring project with Detox
Course updated on 08 December 2025 with below concepts:
Overview on AI
Overview on LLM
Overview on RAG
Overview on Generative AI
Overview on Memory
Overview on AI Agent
Overview on LangChain & LangGraph
Overview on MCP Server
Overview on Human In the loop , Hallucination & Guardrails
Overview on Fine-Tuning
Overview on Context
Overview on Prompts
ChatGPT vs CoPilot vs CURSOR
Overview on OpenAI
Overview on AI Models
Overview on n8n workflow
Generate API Key in OpenAI
Create workflow in n8n
Create Public Chat in n8n workflow
Overview on OpenAI Tokens
CURSOR - Create a Chrome Extension for Record & Playback
CURSOR - Create an OTP Shield Mobile APP
Generate XCUITest test using VSCode Editor
Course updated on 29 January 2025 with below concepts:
Getting status of a switch and handling switch
Course updated on 1st August 2024 with below concepts:
Turn On/ Turn Off Bluetooth
Turn On/ Turn Off Wifi
Widgets Handling
XCUIDevice --> Press Home
Course updated on 1st Apr 2024 with below concepts:
Enter Character By Character into Text Field using KEYS
Course updated on 31st Mar 2024 with below concepts:
How to Delete a value from Text Field using Keys["Delete"]
Course updated on 28th Mar 2024 with below concepts:
. NSPredicate with Example
Course updated on 24th Jan 2024 with below concepts:
How to capture Coordinates of an Element
How to Perform Drag and Drop Operation
Course updated on 22nd Dec 2023 with below concepts:
Example on Matching - Identifier
How to Handle Cells Objects
Launch IPhoneSetting & Delete Safari History
Convert Integer to String
Generate Dynamic Number
arc4random --> Random Number Generator
Automate SauceDemo login flow on Safari browser
Tap Using Coordinates
Course updated on 14th Dec 2023 with below concepts:
How to identify Multiple Objects / Identify a unique object
We are updating the content based on the students requirements itself, if you feel that some more content needs to be added feel free to share with us so that we will update the content with the requested topics soon.
Course updated on 4th June 2023 with below concepts:
How to delete value from a text field using XCUITest and re-enter a new value
How to capture values from all the text fields and print them to the console.
How to verify a specific value from the list of values and break a loop
How to capture screenshot
Course updated on 20th Apr 2023 with below concepts:
Handling safari browsers using XCUITest
WaitforExistance
Page Factory Framework with example
Build input file not found info.plist issue and the solution which we need to implement
Course updated on 12th Apr 2023 with below concepts:
Overview on Functions in swift with examples