<<

G C Reddy Technologies (www.gcreddy.com)

Class 1 – Introduction to Selenium, Software Test Life Cycle.

I) Introduction to Selenium

1) What is Selenium? 2) History of the Selenium Project 3) Selenium Components / Selenium’s Tool Suite 4) Platforms supported by Selenium 5) Selenium License 6) Advantages’ of Selenium 7) Disadvantages of Selenium 8) Testing Frameworks and Other Tools used in Selenium 9) Selenium vs. UFT / QTP 10) Selenium Environment Setup

II) Software Test Life Cycle

Phases of Software Test Process / Software Test Life Cycle

1) Requirements Analysis 2) Test Planning 3) Test Design 4) Test Environment Setup 5) Test Execution 6) Test Closure

Conducting

1) Manual Testing 2) Automated Testing /

Levels of Testing 1) Unit Testing 2) Integration Testing 3) System Testing 4) Types of Testing Functional Testing Non Functional Testing Structural Testing Change Related Testing (Re & Regression Testing)

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

Ways of Testing: Automated Testing / Test Automation Test Level: System Testing Test Type: Functional Testing Test Tool: Selenium

Note: In System Testing Level we conduct Functional Testing using Selenium 1) What is Selenium? ▪ Selenium is used for Functional & Regression Testing ▪ Selenium is Open source software to automate web browsers ▪ Selenium supports various Browsers to write and execute Test Scripts , Mozilla , MS / MS Edge Opera etc…. ▪ Selenium supports various programming languages to write Programs (Test Scripts) , Python, C#.NET, , Ruby, PHP ▪ Selenium supports various operating environment MS Windows, , Macintosh etc… Note: 1) Selenium IDE doesn’t support any Programming 2) Selenium IDE supports Mozilla Firefox and Chrome browsers only 3) Selenium Grid is only for Test Execution 4) Selenium RC is out dated and it was removed from Selenium latest version/s

2) History of the Selenium Project ▪ Selenium was first launched in 2004 ▪ In 2006, Selenium WebDriver was launched at Google ▪ In 2008, the whole Selenium team decided to merge Selenium ▪ WebDriver with Selenium RC in order to form a powerful tool called Selenium 2.0 Selenium 1.0 (Selenium IDE + Selenium RC + Selenium Grid) Selenium 1.0 + Selenium WebDriver = Selenium 2.0

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

Selenium 2.0 (Selenium IDE + Selenium RC + Selenium WebDriver + Selenium Grid) Selenium 3.0 (October 2016) (Selenium IDE + Selenium WebDriver + Selenium Grid) Note: Selenium Team removed Selenium RC from Selenium 3.0

3) Selenium Components / Selenium’s Tool Suite

Selenium IDE Selenium RC Selenium WebDriver Selenium Grid a) Selenium IDE (Integrated Development Environment) Features: ▪ It is a browser plug-in (Firefox and Chrome) and prototype tool ▪ It is used to create and execute Test cases using Firefox or Chrome browsers ▪ User can Record the Test Scripts or type Test scripts ▪ User can edit Test scripts (Add/Update/delete) ▪ User can create Test Suites ▪ User can debug Test Cases and Add Comments Note: Selenium IDE Test Cases can be created using Element Locators and Selenese Commands

Drawbacks of Selenium IDE: ▪ It doesn’t support Programming to enhance test cases, so it is not suitable for complex test design ▪ It doesn’t support Parameterization/Data Driven Testing (Parameterization – passing parameters (variables or arguments) instead of constant (fixed) values) ▪ No centralized maintenance of Objects/Elements ▪ It doesn’t generate detailed Test Reports summary only b) Selenium RC -Out Dated c) Selenium WebDriver ▪ Selenium WebDriver doesn’t have IDE and having Programming Interface only ▪ Selenium IDE has IDE but no Programming interface, Selenium WebDriver: No IDE, only Programming Interface and UFT/QTP: has both IDE as well as Programming Interface ▪ Selenium WebDriver is used to create and execute Test cases/Test scripts ▪ Using Element Locators and WebDriver API Commands we can create Test scripts ▪ Selenium WebDriver supports various Operating environments, Browsers and programming languages ▪ Selenium WebDriver supports Batch Testing, Data Driven Testing, Cross Browser Testing and Database testing Drawbacks of Selenium WebDriver:

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

▪ Selenium WebDriver has no IDE, so it takes more time and efforts to create Test Scripts ▪ No built in Object Repository (*using POM we can create object repositories) ▪ No built-in Result Reporting facility (* using Programming features or using Testing Framework Assert methods) ▪ No other Test Tool integration for Test management ▪ Difficult to configure Test Environment when it compares to other tools like UFT d) Selenium Grid: ▪ Selenium Grid is only for Test Execution and it doesn’t Support Test Design ▪ Selenium Grid supports Parallel Testing (it can execute Test scripts against different browsers and machines (computers)

4) Platforms supported by Selenium Selenium works with various Operating systems, browsers, programming languages and Testing Frameworks a) Operating Systems MS Windows Linux Macintosh etc… b) Application Environment CUI (* It doesn’t support) GUI – Desktop (* It doesn’t support) GUI – Web (It Supports) c) Browsers Google Chrome Mozilla Firefox MS Internet Explorer / MS Edge Opera Safari etc… d) Programming Languages Java Python C#.Net Perl PHP Ruby e) Testing Frameworks

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

Java – JUnit or TestNG C#.Net – NUnit PHP: + mink Python: unittest, pyunit, py.test Ruby: RSpecc, Test::Unit

5) Selenium License ▪ Selenium is an Open Source Software, anybody can download and with free of cost ▪ Selenium Projects were released under Apache 2.0 license a) Anybody can download and use Selenium with free of cost b) Anybody can modify the source code and use, and distribute to others c) Selling modified code is not allowed

6) Advantages of Selenium a) It is an Open Source Software b) It supports various Operating systems c) It supports various Programming languages d) It supports various browser environments e) It supports parallel testing f) It uses less hardware resources Etc…

7) Disadvantages of Selenium a) It supports only web based applications b) No reliable technical support from anybody c) No other tool integration for Test Management d) No built-in Object Repository e) No built-in Result Report facility f) Difficult to configure Test Environment g) Less support for Image based Testing h) It takes time and efforts to create Test cases etc….

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

8) Testing Frameworks and Other Tools used in Selenium a) Eclipse IDE – Editor for writing and executing programs b) Java – To write Test Scripts and enhance Test Scripts c) Selenium WebDriver Java language binding – to write Test Steps d) Testing Framework (TestNG)- prioritizing Test Cases, Grouping Test Cases, Executing Test batches, Parallel Testing and generate Test Reports e) Maven – Easily setup Test Environment and easy Maintenance of the Environment f) Jenkins – Continuous Integration (integrating Testing process with development process) etc….

9) Selenium vs. UFT / QTP

10) Selenium Environment Setup Choose Selenium Tools and Others for Test Automation, (Eclipse IDE, Java, Selenium WebDriver, TestNG Testing Framework, Maven, Jenkins etc…) Steps: a) Download Eclipse IDE and extract b) Download and Install Java (JDK) Software c) Set Java Environment variable path d) Download Selenium WebDriver java language binding from www.seleniumhq.org and add WebDriver jar files to Java Project in Eclipse IDE e) Download and Install TestNG from Eclipse IDE f) Download Browser driver/s (Instantiate browser driver/s in Test Scripts

II) Software Test Life Cycle Phases of Software Test Process / Software Test Life Cycle 1) Requirements Analysis 2) Test Planning 3) Test Design 4) Test Environment Setup 5) Test Execution 6) Test Closure

Software Testing and Othe Job Roles: 1) Test Manager / Test Lead: (Requirement Analysis, Risk Analysis, Create RTM Doc, Team formation, Test Plan Documentation, Configuration Management, Define Test Environment, Test Monitoring, Guidance and Test Control)

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

2) Tester/s: (Understanding Requirements, Derive Test Scenarios, Test Case Documentation, Collect Test Data, Update RTM, Test Execution, Defect Reporting & Tracking, Confirmation Testing and Closing defects…) 3) Business Analyst: (Clarifications on Requirements, Communicates with Client/s, developers and Testers) 4) Developers: (Tracking Defects, Fixing Defects etc…) 5) Technical Support People: (Test environment Setup and maintenance etc…) 6) SME: (Provides Domain knowledge) 7) Project Management: (Coordinate all project teams) Etc…

1) Requirements Analysis: ▪ ▪ Risk Analysis ▪ Segregate Test Requirements ▪ Create RTM Document 2) Test Planning: ▪ Test Strategy Implementation ▪ Test Estimations (Scope, resources, time, budget) ▪ Team Formation ▪ Test Plan Documentation ▪ Configuration Management planning ▪ Define Test Environment Setup ▪ Etc…. 3) Test Design ▪ Understanding Test Requirements ▪ Derive Test scenarios ▪ Document Test Cases ▪ Collect Test data etc… 4) Test Environment Setup ▪ Prepare Test Environment Checklist and Test Data ▪ Test Environment Setup ▪ Verify Test Environment ▪ Conduct Smoke Tests 5) Test Execution: ▪ Comprehensive Testing ▪ Reporting Defects ▪ Tracking Defects ▪ Select Test cases for Re & Regression Testing cycle 1

G C Reddy Technologies (www.gcreddy.com) G C Reddy Technologies (www.gcreddy.com)

▪ Sanity Testing ▪ Execute Re & Regression Test cases ▪ Reporting defects ▪ Tracking defects ▪ Select Test cases for Re & Regression Testing cycle 2 ▪ Sanity Testing ▪ Execute Re & Regression Test cases ▪ Reporting defects ▪ Tracking defects ▪ . ▪ . ▪ Final Regression 6) Test Cycle Closure: ▪ Evaluate the exit Criteria ▪ Collect all artifacts ▪ Prepare Test Summary Report ▪ Send Test deliverables to customer ▪ Improvement suggestion for Future Projects

Performance Testing Load Testing, Stress Testing, Spike Testing and Endurance Testing all are subsets of performance Testing Functional Testing vs. Database Testing Database Testing is a subset of Functional Testing, but not only part Functional Testing.

G C Reddy Technologies (www.gcreddy.com)