We started HeadSpin University with the mission to help people of all levels of expertise become test automation experts through high-quality, in-depth training for the software automation industry. Last year, we took our first steps toward that mission by welcoming users to the learning platform and its first two introductory courses for Appium. Since then, we’ve added an Automation Happy Hour series and hosted webinars on a variety of topics, from the future of learning to AI and ML for the QA Industry.
Introducing Appium & Selenium Fundamentals
As part of our ongoing effort to equip learners with real-world and career-relevant testing and test automation skills, we’re excited to offer HeadSpin University’s flagship course: Appium & Selenium Fundamentals. Led directly by me, this course provides an end-to-end learning experience for these two most significant UI automation tools for web and mobile ecosystems, and it’s a great starting point for testers who are interested in learning the basics of Appium and Selenium and how to install and set them up on their own machines.
Learners will benefit from an engaging program that combines theoretical training with practical, hands-on code challenges and training, such as the fundamental concepts of software testing and programming and how to set up Appium and Selenium and use them in the context of a robust and maintainable test suite. You can complete these hands-on challenges to get access to training devices on the HeadSpin platform and gain certifications. You’ll also be invited to participate in a members-only chat group with fellow learners and course alumni, where you can ask questions and get help from your instructors and peers — and who knows, maybe make some friends along the way!
With over 20 hours of video instruction guiding students through a host of topics, Appium & Selenium Fundamentals is comparable to an actual college semester course with several hours of instruction a week and evaluations every now and then (but of course, you can go at your own pace).
Despite covering several advanced topics, this course requires practically no prerequisite knowledge and is designed as a beginner to advanced course. There are examples that make the content easy to understand regardless of your professional background. Here’s what some beta testers have said about their experience taking the course:
- “I was initially scared of the Python programming language; I’d heard a lot about it but never tried until I learnt these easy and simple fundamentals, which helped me to practice automation.”
- “I really appreciated how the connection between Appium, Selenium, and how they both implement the WebDriver framework is spelled out.”
- “Something like this would have saved me lots of grief as a newbie. Now that I’ve put together lots of test suites, I can say that I still learned from Jonathan’s experience and lessons.”
Appium and Selenium Fundamentals is separated into 12 extensive modules that I’ll summarize here, but if videos are more of your thing, you can watch a course overview down below.
Course Intro and Overview
We start off by covering what you will learn, what you already need to know, and how the course itself will work.
Introduction to Automated Testing
Before we dive into testing tools and techniques, it’s important to understand testing from a high level. In this module we define testing and look at various test types and methods.
Python for Testing
The programming language I recommend for writing and running automated UI tests is called Python. In this module we go through a crash course on Python, learn about all the most important parts of the language, and finally write a simple unit test to put it all together.
Overview of Web and Mobile Testing
You’ll get a look at the various tools that are available for you to use in the service of web and mobile test automation and a deeper look at the tools that are the focus of this course, in the context of the bigger picture: Selenium and Appium.
The WebDriver Automation Architecture
Selenium and Appium both share a common architecture, known as the WebDriver Architecture. We cover the special servers called “drivers” that make up this architecture which enable automation for a certain platform or browser, and “clients” which allow your test scripts to easily connect with the drivers.
Installation and Setup
You don’t need to run Appium and Selenium locally for the purpose of taking this course, but it’s a good idea to get set up locally anyway, because test development is best done on your own computer. This module takes you through the requirements and setup steps for Selenium, Appium, and the project we’ll be building in this course.
Web Browser Automation Using Selenium
Learn the ins and outs of using Selenium for web browser automation via the specific drivers and driver classes available from the Python Selenium client. Topics include finding elements reliably, element interaction, and interaction with other browser objects like windows and alerts.
Mobile App Automation Using Appium
We take a deep dive into the basics of Appium, porting over our learnings from Selenium which include strategies for finding elements and interacting with them. We learn more about what’s unique to Appium, including some idiosyncrasies of iOS and Android. Finally we explore some more advanced topics like touch-based gesture actions.
Additional Appium Modes and Features
Learn about some of the more advanced modes and features that Appium has to offer. Here we discuss techniques such as working with devices and apps outside of the app-under-test, and automating non-native apps (web and hybrid apps).
Test Suite Design
Now that we have a solid understanding of automation, we’ll apply it to testing. We discuss all the aspects of a test suite and build one up from scratch using good practices.
Appium and Selenium at Scale
Constructing a solid test suite is only step 1. Beyond this, it’s essential to think about how that test suite can be scaled into a robust and reliable CI/CD system, so we discuss all the topics related to this goal, including test flakiness and a summary of all the best practices that will assist you on your way.
Once you reach the end, we discuss some additional topics to explore and advice for getting started with your own app.
Start learning today
Stay tuned for more learning opportunities, including our upcoming Intro to XCUITest course, by following us at our LinkedIn.
Q: Can Selenium test native mobile apps?
Selenium is a popular tool for web-app testing. Teams can use it for cross-browser testing across devices and platforms. However, native app testing can be complex with Selenium, and QA teams should instead use Appium.
Q: What is continuous testing in an agile development framework?
Continuous testing is a part of the agile framework. Teams run automated tests as part of the software delivery pipeline to quickly get feedback on new features or releases. It improves test automation to keep up with the increasing complexity and speed of modern application development and delivery.
Q: What is test flakiness?
A flaky test is an automated test that passes and fails other times without any code changes. Flaky tests can arise due to
- Improper Clean-up: Keeping a test in the script that is no longer requires
- Testing framework: Not providing enough resources to the testing framework or improper test scheduling.
- System assumptions: Incorrect assumptions about the test data or system requirements.