Software Testing Omnibus: Sikuli, Selenium, JUnit and Principles of Testing

Three technologies and all of the underlying principles of software testing

What's Inside

This omnibus packs three powerful and versatile testing technologies, as well as a host of underlying theory and fundamental principles

Section One: Sikuli

SikuliX is very unusual - a scripting/automation technology that relies on pattern matching, and is available for use via Python or Java. Developed at the User Interface Design Group at MIT, is a powerful and easy-to-use technology that uses image recognition to automate just about anything that appears on-screen.

Sikuli is rather hard to slot - it offers all of the functionality of an automation or scripting tool, but it also offers some powerful and very novel image-matching functionality for truly novel use-cases that revolve around image search. In addition it has an OCR-mode, in which image matches are performed after converting those image patterns to text. This gives rise to some pretty new applications.

The OCR-functionality is powered by Tesseract, an open-source optical character recognition engine whose development is sponsored by Google.

Section Two: Selenium

Selenium is a specialized, easy-to-use framework for automating interactions with web browsers, whether it’s to test the functionality of web apps that you’ve developed or to automate boring and repetitive tasks or to perform activities like scraping websites.

In this course, we’ll be working with Selenium’s Java API to test browser functionality and automate tasks using nearly 45 solved examples of use cases you might encounter on a regular basis. We’ll look at scenarios like

1) scraping websites for specific elements identified by HTML tags, CSS selectors
2) Testing User interactions of all kinds as click, entering text, drag and drop, selecting from dropdowns
3) Automating Browser Navigation and Handling cookies
4) Switching between your main browser window and pop-up alerts, embedded iframes
5) Interacting with HTML5 based elements like video players
6) and Parallelly running tests across multiple browsers and platforms from your local machine using Selenium Grid
Selenium makes automating all the tasks we’ve mentioned very straightforward but as your tasks get more and more sophisticated you’ll want to use best practices to structure your code. We’ll talk about the Page Object Model design pattern and how you can use it to design testing scripts that are easy to maintain.

Section Three: JUnit

JUnit is one of a family of unit testing frameworks all built with the same philosophy. To abstract the programmer away from the mechanics of running tests. You concentrate on testing the functionality of the application, and the logistics of running, monitoring and displaying results is taken care of by the framework.

In this course, we’ll be writing simple tests using all the different features of JUnit tests. Using 25 solved examples, you'll get a complete overview of the JUnit framework and all the functionality within.

What's covered?

1) Assertions : the fundamental component of any Junit test
2) Matchers : Write complicated tests in a very readable way. Implement your own custom matchers
3) Assumptions : Check for preconditions and external dependencies

4) Fixtures : Setup and Cleanup for your tests

5) Runners : Understand what goes on under the hood in JUnit. Use different runners to run multiple test classes with different conditions and parameters
4) Mockito : Understand the concept of mock objects and use the Mockito framework to run tests on interdependent classes.

Section Four: Principles and Foundations of Testing

1) Systems Development Life Cycle (SDLC) and Testing

2) Static Testing and Dynamic Testing

3) Black-box and White-box testing

4) Coverage metrics

Course Curriculum

Get started now!



Certificate Available
49824+ Students
146 Lectures
16+ Hours of Video
Lifetime Access
24/7 Support
Instructor Rating
Loonycorn

Loonycorn is comprised of a couple of individuals —Janani Ravi and Vitthal Srinivasan—who have honed their tech expertises at Google and Stanford. The team believes it has distilled the instruction of complicated tech concepts into funny, practical, engaging courses, and is excited to be sharing its content with eager students.

Popular Bundles