Advanced Java Concepts and Collections
Offered By: Packt via Coursera
Course Description
Overview
Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
In this course, you'll master Selenium, a powerful tool for automating web applications. Beginning with setting up your first web application, you'll dive into Selenium locators, learning to efficiently locate web elements using strategies like ID, name, and tag name.
You'll explore TestNG for project setup, debugging, and test slowing for better visualization. The course covers handling form elements such as text fields, checkboxes, radio buttons, and select boxes, creating robust automation scripts that mimic real-world user interactions. Advanced topics include window navigation, alert handling, and WebDriver's manage window methods for effective automation.
You'll gain hands-on experience with implicit and explicit waits, crucial for dynamic web applications. The course also covers cross-browser testing and data-driven testing, guiding you through setting up projects for different browsers, running headless tests, and implementing data-driven approaches using CSV and Excel files. By the end, you'll understand the Page Object Model, Selenium Grid, and standalone server, equipping you to scale your automation tests effectively.
Designed for QA professionals and software testers with basic web technology knowledge, the course enhances skills in automated testing using Selenium, with a fundamental knowledge of Java recommended.
Syllabus
- Collections
- In this module, we will embark on a thorough exploration of Java Collections. We begin with an overview of the necessity and significance of collections in Java programming. Next, we dive into the List interface, covering its importance in maintaining order and position, and exploring the differences between ArrayList, LinkedList, and Vector implementations. We will master methods for manipulating lists and selecting optimal iteration techniques. The module also includes comprehensive coverage of sorting collections using built-in methods and custom comparators. Finally, we will delve into the Set, Queue, and Map interfaces, understanding their unique characteristics and practical applications. This module is packed with hands-on exercises and real-world scenarios to solidify your understanding and proficiency in using Java Collections.
- Generics
- In this module, we will delve into the powerful world of Java Generics. We begin by exploring the fundamental reasons for using generics, highlighting their role in creating type-safe and reusable code. Next, we implement generics in a custom list to see their practical benefits firsthand. We then extend these custom lists with generic return methods to further enhance flexibility. Through engaging puzzles, we will uncover the restrictions and capabilities of generics, especially with bounded types. Finally, we will apply wildcards to navigate complex generic scenarios, mastering both upper and lower bounds to achieve robust and adaptable coding solutions.
- Introduction to Exception Handling
- In this module, we will explore the fundamentals of exception handling in Java. We start by understanding the mindset required during exception handling, followed by a deep dive into common exceptions like 'NullPointerException' and how to interpret stack traces. We will then cover the basic try-catch mechanism, the significance of the finally block, and the concept of exception hierarchies. Through hands-on puzzles, we will differentiate between checked and unchecked exceptions and learn to throw custom exceptions. Additionally, we will explore advanced features like try-with-resources introduced in Java 7. This module concludes with a discussion on best practices to ensure your code is resilient and well-structured.
- Java Tips
- In this module, we will explore a series of valuable Java tips to enhance your coding efficiency and effectiveness. We begin by discussing the role of imports and static imports to simplify code. Next, we delve into the proper use of code blocks and the importance of the 'equals' and 'hashcode' methods in custom object comparison. We will also cover various access modifiers for classes and methods, helping you control access and visibility within your codebase. The module includes practical insights into using the final keyword for classes, methods, variables, and arguments, ensuring that you can leverage immutability where necessary. These tips are designed to refine your coding practices and make your Java programs more robust and maintainable.
- Getting Started with Selenium, JUnit, and TestNG
- In this module, we will explore the foundations of automated testing using Selenium, JUnit, and TestNG. Starting with an overview of Selenium, we will guide you through the installation of Selenium IDE and demonstrate how to record and replay test scenarios such as Google Search and Facebook Login. We will also introduce advanced features of Selenium IDE and present Katalon Studio as an alternative, complete with its installation and advanced capabilities. The module includes instructions for setting up a new Maven project, adding dependencies for JUnit and WebDriver, and resolving driver errors with ChromeDriverManager. We will conduct hands-on exercises to run Facebook JUnit tests and understand the background processes of Selenium automation tests. Finally, we will install the TestNG plugin, create a new project, and compare TestNG and JUnit tests to provide a comprehensive course overview.
- TestNG Versus JUnit
- In this module, we will conduct an in-depth comparison between TestNG and JUnit, two popular testing frameworks. We begin by exploring the fundamental differences and similarities between them. Next, we will create unit tests for a SimpleClass using JUnit, adding assertions to validate the test cases. Through practical exercises, we will write additional unit test scenarios to solidify our understanding. We will then demonstrate how to write Selenium JUnit automation tests in multiple parts, highlighting the use of the WebDriver interface. Utilizing JUnit annotations like @Before and @After, we will reduce code duplication in test setups. The module then transitions to TestNG, where we convert our unit tests from JUnit to TestNG and explore its advanced features, including XML suite configuration, detailed test reports, parameterized tests, and parallel test execution. This module aims to provide a comprehensive understanding of both frameworks and their applications in automated testing.
- Getting Started with HTML, CSS, and XPath
- In this module, we will delve into the fundamentals of HTML and CSS, exploring their roles in web development. You will learn how the web functions, set up a development environment, and create your first HTML file. We will also cover basic tags, formatting, W3C standards, and the organization of content using lists and tables.
Taught by
Packt - Course Instructors
Related Courses
Core Java - Advanced FundamentalsLearnKartS via Coursera Object-Oriented Analysis and Design: Foundations & Concepts
University of Colorado Boulder via Coursera Cucumber BDD Made Easy + Automation Framework Design
Packt via Coursera JUnit and Mockito Unit Testing for Java Developers
Packt via Coursera Master Java Unit Testing with Spring Boot and Mockito
Packt via Coursera