SeU Certified Selenium Engineer (CSE) Syllabus

Similar documents
SeU Certified Selenium Engineer (CSE) Syllabus

EXPERT TRAINING PROGRAM [Selenium 2.0 / WebDriver]

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools

Learning Objectives of CP-SAT v 1.3

Selenium. Duration: 50 hrs. Introduction to Automation. o Automating web application. o Automation challenges. o Automation life cycle

Koenig Solutions Pvt. Ltd. Selenium with C#

Learning Objectives of CP-SAT v 1.31

SELENIUM. Courses Offered. Ph: / Course Coverage:- Date:..Timings.. Duration Fees. Testing Tools QTP Load Runner Hadoop

Selenium Testing Course Content

Mind Q Systems Private Limited

Learning Objectives of CP-SAT v 1.31 (C#)

SELENIUM. SELENIUM COMPONENTS Selenium IDE Selenium RC Selenium Web Driver Selenium Grid

Introduction: Manual Testing :

The age of automation is going to be the age of 'do it yourself. - Marshall McLuhan

1. Selenium Integrated Development Environment (IDE) 2. Selenium Remote Control (RC) 3. Web Driver 4. Selenium Grid

Java Programming Basics

Selenium Training. Training Topics

Software Testing

SELENIUM TRAINING COURSE CONTENT

Mind Q Systems Private Limited

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Java SE7 Fundamentals

Selenium Testing Training

IT6503 WEB PROGRAMMING. Unit-I

Web Site Development with HTML/JavaScrip

*** Any Query *** Mail : 1. Introduction to Selenium. What is Selenium? Different automations tools. Selenium Automation Tools

Syllabus Technosoft Academy. Course Syllabus. 1 P a g e

Selenium with Java Syllabus

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

Selenium Course Content

Comprehensive AngularJS Programming (5 Days)

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

[paf Wj] open source. Selenium 1.0 Testing Tools. Beginner's Guide. using the Selenium Framework to ensure the quality

JAVA. 1. Introduction to JAVA

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

ASP.NET- Enterprise Applications

Learn Web Development CodersTrust Polska course outline. Hello CodersTrust! Unit 1. HTML Structuring the Web Prerequisites Learning pathway.

SeleniumJava Training Solution

Course 20480: Programming in HTML5 with JavaScript and CSS3

COURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

Selenium Online Training Brochure

,

Web Design Course Syllabus and Course Outline

Programming in HTML5 with JavaScript and CSS3

MANUAL+ SELENIUM CURRICULUM

JavaScript Specialist v2.0 Exam 1D0-735

FRESHER TRAINING PROGRAM [MANUAL/QTP/ALM/QC/SE/LR/DB/MOBILE]

CENTRALIZED UI AUTOMATION FOR SAAS APPLICATION

CERTIFICATE IN WEB PROGRAMMING

webdriver selenium 08FE064A22BF82F5A04B63153DCF68BB Webdriver Selenium 1 / 6

Front End Nanodegree Syllabus

Introduction to JavaScript p. 1 JavaScript Myths p. 2 Versions of JavaScript p. 2 Client-Side JavaScript p. 3 JavaScript in Other Contexts p.

20480B: Programming in HTML5 with JavaScript and CSS3

QMS ISO 9001:2015 CERTIFIED COMPANY Software Testing TRAINING.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

Website Designing Training

AN ISO 9001:2008 CERTIFIED COMPANY. Software Testing TRAINING.

Etanova Enterprise Solutions

Testing => Good? Automated Testing => Better?

Basics of Web Technologies

JavaScript Programming

Quick XPath Guide. Introduction. What is XPath? Nodes

Machines that test Software like Humans

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

This is one of the common interview questions in any Automation testing job.

All India Council For Research & Training

Curriculum Guide. ThingWorx

DOT NET Syllabus (6 Months)

Single Page Applications using AngularJS

Selenium Webdriver Github

104. Intermediate Java Programming

Introduction to Programming Using Java (98-388)

Microsoft SharePoint End User level 1 course content (3-day)

ArtOfTest Inc. Automation Design Canvas 2.0 Beta Quick-Start Guide

Question 1: What is a code walk-through, and how is it performed?

End-to-end testing with Selenium + Nightwatch.js

Survey Creation Workflow These are the high level steps that are followed to successfully create and deploy a new survey:

Intelligent Performance Software Testing

웹소프트웨어의신뢰성. Instructor: Gregg Rothermel Institution: 한국과학기술원 Dictated: 김윤정, 장보윤, 이유진, 이해솔, 이정연

CIW: JavaScript Specialist v2.0. Course Outline. CIW: JavaScript Specialist v Jun 2018

Testers can write good code too. Corina

Course Outline Advanced Web Design

jquery Tutorial for Beginners: Nothing But the Goods

Aim behind client server architecture Characteristics of client and server Types of architectures

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

Foundations of object orientation

Full Stack Web Developer

Course Details. Skills Gained. Who Can Benefit. Prerequisites. View Online URL:

Full Stack Web Developer

Front-End Web Developer Nanodegree Syllabus

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet.

Telerik Corp. Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide

Software Development & Education Center PHP 5

COURSE SYLLABUS. .NET-Technologies. Industrial Training (4 MONTHS) PH: , Vazhoor Road Changanacherry-01.

Full Stack Developer with Java

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Layered UI and Adaptation Policies for Ubiquitous Web Applications

Transcription:

SeU Certified Selenium Engineer (CSE) Syllabus Released Version 2018 Selenium United Version 2018, released 23.08.2018 Page 1 of 16

Copyright Notice This document may be copied in its entirety, or extracts made, if the source is acknowledged. All Selenium United resources including this document are of Selenium United (hereafter referred to as SeU). The material authors and international contributing experts involved in the creation of the SeU resources hereby transfer the copyright to Selenium United (SeU). The material authors, international contributing experts and SeU have agreed to the following conditions of use: Any individual or training company may use this syllabus as the basis for a training course if SeU is acknowledged as the source and copyright owners of the syllabus only after they have been officially recognized by SeU. More regarding recognition is available via: https://www.seleniumunited.com/recognition Any individual or group of individuals may use this syllabus as the basis for articles, books, or other derivative writings if SeU is acknowledged as the source and copyright owners of the syllabus. Thank you to the main collaborators Rahul Verma, Vipul Kocher, Chandra Mouli Maddala and Jayapradeep Jiothis Revision History Version Date Remarks SeU 2018 August 2018 First official release Version 2018, released 23.08.2018 Page 2 of 16

Table of Contents Purpose of this document... 4 Resources of the SeU... 4 What is Selenium?... 4 About SeU Certified Selenium Engineer (CSE)... 5 Business Outcomes... 5 Learning Objectives/Cognitive Levels of Knowledge... 5 Java Knowledge Prerequisites... 6 Chapter 1 - Web UI Automation... 8 Chapter 2 - Introduction to Selenium... 10 Chapter 3 - Automating the Web UI With Selenium... 11 Chapter 4 - Beyond Simple Selenium Code Constructs... 13 Chapter 5 - Putting Together a Basic Framework... 15 References:... 16 Version 2018, released 23.08.2018 Page 3 of 16

Purpose of this document This syllabus forms the basis of Selenium Untied in regards to its Certified Selenium Engineer (CSE) certification. This document defines what you need to know in order to pass the certification test for Certified Selenium Engineer (CSE), and is copyright of Selenium United. The certification test will only cover concepts and knowledge that are described in this document. Resources of the SeU An overview of SeU resources as well as all relevant information about the SeU certification and other types of SeU certifications is available on www.selenium-united.com the official website of Selenium United. The information on www.selenium-united.org includes: A complete list of recognized SeU training providers and available courses. Note that training is recommended but not required in order to take the SeU CSE certification exam. SeU Syllabus (this document) for download. A complete sample exam set of 40 SeU CSE questions with answers for training purposes. We aim to have the documents available in further languages as soon as possible. For currently available language versions, please check www.selenium-united.com What is Selenium? Selenium is a suite of different tools meant for browser automation, including Selenium WebDriver and Selenium Grid. Although not limited to be used for testing web applications, it has become the most sought-after tool by software testers. With support for all of the widely used browsers, it has also grown beyond just being another software testing library. It is the backbone of countless browser automation tools, APIs and frameworks. The WebDriver interface introduced by Selenium WebDriver is under review for becoming a W3C standard, which would further increase its importance in the space of test automation. Version 2018, released 23.08.2018 Page 4 of 16

About SeU Certified Selenium Engineer (CSE) SeU Certified Selenium Engineer (CSE) is a practitioner level course for testers involved in web test automation. The course covers Selenium as a browser automation library from the ground up. Test automation constructs and design are kept to a minimum to better focus on code constructs that enable usage of Selenium in a properly designed manner. This design-focused course, provides an un-diluted Selenium experience, focusing more on the critical Selenium concepts, which enables better real-life implementation in the participants daily work. Business Outcomes Business Outcomes (BOs) BO 1 Adapt existing testing & test automation experience and knowledge to develop automated tests for web applications using Selenium. BO 2 Use Selenium to create automation tests for Web Applications. BO 3 Debug Selenium-based automated tests for correct functionality. Learning Objectives/Cognitive Levels of Knowledge Learning objectives (LOs) are brief statements that describe what you are expected to know after studying each chapter. The LOs are defined as follows: K1: Remember K2: Understand K3: Apply The main list of LOs for the SeU CSE certification: LO1 LO2 LO3 Understand the importance of browser coverage and distinguish various options for testing UI of web applications. (K2) Understand the relationship of Web UI with the underlying HTML and JavaScript with DOM Inspection. (K2) Recall the History of Selenium and various tools in its suite along with their purpose. (K1) Version 2018, released 23.08.2018 Page 5 of 16

LO4 LO5 LO6 LO7 LO8 LO9 LO10 LO11 Understand the Selenium Architecture in terms of Language Bindings, Communication Protocols and Drivers. (K2) Recognize the purpose and API of Web UI Automation at Browser, Page, Element levels. (K2) Understand and Explain the purpose of JUnit annotations, fixtures, assertions. (K3) Apply different identification strategies for UI elements. (K3) Apply different inquiry and interaction strategies for UI elements. (K3) Apply various deeper Selenium automation constructs, which set the basis for more advanced automation. (K3) Automate end to end user scenarios by using good coding practices and Object-Oriented principles for placing Selenium code across different classes and methods. (K3) Troubleshoot and describe scope of improvement for automation implementation depicted in short code samples. (K3) Java Knowledge Prerequisites The facilitator of the workshop would brief upon the Java concepts as and when they are used in the course. However, such concepts would only be referred to and not explained, unless a day is added to the workshop to account for this additional coverage. Participants who are well-versed with the following concepts would be able to focus on the Selenium concepts in a much better manner, without diluting their attention to understand Java constructs. No direct core Java questions would be included in the exam. Concept of main() method Compiling and running Java code Version 2018, released 23.08.2018 Page 6 of 16

Primitive data types Class counterparts of primitive data types (e.g. Integer for int) Arrays Basic collections: List, Map String formatting and manipulation System.out and System.err Conditional control structures: if/else/else if, switch Looping Control structures: for (the 2 styles), while Exception Handling throw, throws, try-catch-finally, Exception hierarchy Writing a Class with getter, setter and other methods Constructors and Class instantiation Class variables vs object variables Access modifiers public, private, protected Class methods vs object methods Enum Packages Overloading of methods Inheritance Abstract classes and abstract methods Overriding of methods Object Composition Version 2018, released 23.08.2018 Page 7 of 16

Chapter 1 - Web UI Automation LO1 LO2 Understand the importance of browser coverage and distinguish various options for testing UI of web applications. (K2) Understand the relationship of Web UI with the underlying HTML and JavaScript with DOM Inspection. (K2) Summary: Introduction UI Automation with Actual Browsers UI Automation with Actual Browsers with Screen Size Simulation Using Headless Browsers Web UI: User vs Browser point of view Background: Web applications need to be available to a variety of users using a variety of devices. Many of them employ fluid interfaces so that the applications are rendered differently for different browsers. The browsers themselves behave differently in certain situations as they have different canvas sizes and underlying technology. This makes Browser coverage an essential aspect in testing of web application UI whether it is done by a human or piece of code. A Selenium test automation engineer must understand how to use Selenium to automate different browsers along with different options to mimic a browser. For speed and efficiency purpose, using a headless browser in automation is another option the engineer must be aware of. The browsers render UI controls that are represented in HTML to load them into a DOM object and visually depict them in their canvas. A test automation engineer must be able to associate what is seen on the screen to its definition in HTML/DOM by using DOM inspection. This information is used as input to the test automation code for identification and interaction with such elements. Web applications have different types of UI elements which support different types of actions that a user can take e.g. a user can click a button, enter text in a text box, select an option from a drop-down list, etc. A user can also visually Version 2018, released 23.08.2018 Page 8 of 16

verify the state of a particular UI element, for example whether it is enabled, what text it contains, etc. A test automation engineer should be able to make all such inquiries and take all types of actions in an automated test. A Test Automation Engineer must also be aware of CSS styling, and in which parts of HTML it can be specified. This is also true for JavaScript, which is the primary client-side scripting language used by modern web applications. Version 2018, released 23.08.2018 Page 9 of 16

Chapter 2 - Introduction to Selenium LO3 Recall the History of Selenium and various tools in its suite along with their purpose. (K1) Summary: History Power of Selenium Selenium Suite Simplified Selenium Architecture Background: With its beginning at ThoughtWorks and later contributions by various stalwarts from the community, Selenium has come to the forefront of Web UI automation. The Selenium WebDriver API, touted to become a W3C standard, is used by various non-selenium tools like Appium, to provide the interface to their underlying implementation. It is good to know the history of Selenium and to keep up with its development road map so that a test automation engineer knows when and why certain features were introduced and where the future of Selenium and related tooling is headed. Selenium enables multiple language bindings because of architecture that separates the responsibilities among language-specific client bindings and a browser-specific driver component that employs JSON Wire protocol. Understanding this architecture helps a test automation engineer know which components provide which facilities. Version 2018, released 23.08.2018 Page 10 of 16

Chapter 3 - Automating the Web UI With Selenium LO4 LO5 LO6 LO7 LO8 Understand the Selenium Architecture in terms of Language Bindings, Communication Protocols and Drivers. (K2) Recognize the purpose and API of Web UI Automation at Browser, Page, Element levels. (K2) Understand and Explain the purpose of JUnit annotations, fixtures, assertions. (K3) Apply different identification strategies for UI elements. (K3) Apply different inquiry and interaction strategies for UI elements. (K3) Summary: Introduction Browser Level Automation Launching/closing different browsers Navigation Inquire window and URL information Page Level Automation Inquire page level information Element Identification in depth ID Name Class Name Link Text Partial Link Text CSS Selectors coverage of different variants Xpath coverage of different variants Element Level Automation State inquiry Basic Actions Background: For Web UI Automation, you need automation API at 3 levels: Version 2018, released 23.08.2018 Page 11 of 16

1. Browser Level These actions do not depend on a particular web page and are provided by interface in Selenium. 2. Page Level These actions depend on the current page loaded in the browser and are also provided by the WebDriver interface. 3. UI Element level These actions are related to a particular UI element. These are mostly provided by WebElement interface. Dropdown specific actions are provided by Select class, as will be discussed hereafter in the advanced automation constructs chapter. A test automation engineer must know which actions Selenium supports via its API across these levels. The expectation is not that the engineer would remember all the API by heart. However, the engineer must be equipped to refer the Selenium API and recognize the purpose of different API calls and should be able to use them while writing a test automation code. In the process, the engineer should know how to use a test automation engine to utilize different standard features such as test representation, test fixtures, assertions, to use along with the Selenium code in order to write an automated test. For the identification of elements, Selenium supports various locator strategies via its By object: By name By ID By Class Name By Tag Name By Link Text and Partial Link Text By CSS Selector By XPath A test automation engineer must know the purpose of each of these locator strategies. S/he should be able to choose the right locator strategies for a given situation. CSS Selectors and XPath are extremely powerful and provide multiple ways of defining a location strategy. The test automation engineer must understand CSS Selector and XPath in depth, as well as understand the flexibility and performance implications of different strategies. Interactions with UI elements also need pre and post element inquiries to check whether an action can be taken and to verify whether an action has been successfully taken. Version 2018, released 23.08.2018 Page 12 of 16

Chapter 4 - Beyond Simple Selenium Code Constructs LO9 Apply various deeper Selenium automation constructs, which set the basis for more advanced automation. (K3) Summary: Better Waiting Handling Drop-down Lists Matching Multiple Elements Handling Nested Element Uploading a File JavaScript Execution Handling Windows/Tabs Handling Frames Handling Alerts Taking Screenshots Action Chains Keyboard Actions Handling Cookies Headless Browsing with HtmlUnitDriver Background: Because of network latency and other client-side operations, the web UI might not be in a state where a desired action can be taken. For example, one might want to click a button, however, that button has not yet been rendered, or the button is not yet clickable. An automated test, in practice, contains code to wait for such a desired state before taking an action. Such a wait is also necessary before an element can be identified to wait for page loading. Rather than using hard-coded waits, tests should use a polling-based wait mechanism provided by Explicit Wait mechanism in Selenium, using WebDriverWait object. Selenium provides a Select class to enable higher level API for drop-down lists. There are situations in which one would need to identify multiple elements as per a locator strategies and act on them. There are other situations where elements are found not from the root of DOM, rather as child elements within an element. Version 2018, released 23.08.2018 Page 13 of 16

Uploading a file is a pretty common feature in web applications and the automation code should be able to simulate this feature. Selenium also provides a JavaScriptExecutor class to enable executing raw JavaScript in the context of a browser. This is a very handy feature, using which a test automation engineer can inject any kind of custom JavaScript in the browser and execute it. Other facilities needed in automated tests are for handling windows/tabs, Iframes and alerts. When a failure occurs, an automated test can take a screenshot of the contents of the browser so that this information assists in troubleshooting. Selenium supports this via its TakesScreenshot interface. Some actions are chained together to represent a single action. For example, one could hover on a navigation bar, which in turn reveals a child sub-menu and one might click a sub-menu item. These can be simulated in Selenium by using its Actions class. It is also used to simulate complex keyboard actions. Usually, a web application manages its state as well as user preferences using Cookies. Selenium s manager provides access to cookies and related actions can be implemented in automated test. Selenium also provides a built-in headless browser HtmlUnitDriver to run Selenium code. This is a very handy feature that can be used by automation engineers to run a lot of browsers in parallel, with very little resource usage per browser. Version 2018, released 23.08.2018 Page 14 of 16

Chapter 5 - Putting Together a Basic Framework LO10 LO11 Automate end to end user scenarios by using good coding practices and Object-Oriented principles for placing Selenium code across different classes and methods. (K3) Troubleshoot and describe scope of improvement for automation implementation depicted in short code samples. (K3) Summary: Long Exercise: Automating End To End Scenarios Refactoring the code to create and use a WebAutomator class which wraps construction and interactions with WebDriver Next Steps: (High Level Walkthrough and Demo) Implementing Event Listener Page Object Design Pattern Using Page Factories Pages as Loadable Components Selenium Grid Background: Without implementing good programming practices and design patterns, an automated code soon bloats with many duplicate instructions. Coding inconsistencies also creep into the code as different engineers code in their own specific style. There is value in putting all the commonly used facilities in a central framework which is used to write tests. One can use the Object-Oriented principles to put together a basic framework very easily and continue to enhance its feature set as the project progresses. Although it is not the direct subject area of this course, it is still important to understand that there are many measures which a test automation engineer can take to put together a robust framework. So, one must know Page Object Model (POM) and components such as WebDriverEventListener, Page Factories, Loadable Components, Selenium Grid etc. which can further enhance the features and robustness of a framework. Version 2018, released 23.08.2018 Page 15 of 16

References: SeleniumHQ Website: https://www.seleniumhq.org/ Everything has been designed and created utilizing first-hand experiences gathered from the industry by the SME s involved in creating Selenium United. Version 2018, released 23.08.2018 Page 16 of 16