Big Changes in Selenium 4

Selenium 4Selenium 4 Alpha Download Available

If you are looking for Selenium 4 Alpha version, you can find it here.  While it is not recommended to use an Alpha version for full implementation, it will let you see what new changes are there and it will help you figure out what changes you will need to make moving forward and understand the benefits,

Selenium 4 Official Release Date

As of now, there hasn’t been an announcement on when Selenium 4 will officially be released.  Once we know that, we will provide the updated date.

Selenium 4 Changes

Here are some of the major changes that will happen in Selenium 4

  1. W3C Selenium WebDriver standardization-The goal is to have Selenium WebDriver completely standardized.  There are other tools and products that use WebDriver so this is a must have.  Specifically mobile testing tools like Appium and iOS Driver heavily rely on it.  With the change coming in Selenium 4, the test will now be able to directly communicate without using API encoding/decoding using the W3C protocol.
  2. Selenium IDE Support for Chrome-There will be much more advanced capabilities with the new update.  There will be a completely new way using a new plug-in to Selenium 4.  There will also be a new CLI Runner that will leverage NodeJS and have the following capabilities:
    • WebDriver playback
    • Parallel execution
  3. Improved Selenium Grid-While Selenium Grid is very powerful in that it allows tests to run in parallel, it is very difficult to initially setup and configure.  In Selenium Grid, the hub acts like a server and it controls which tests are run.  The node are the test machines where the Selenium test scripts are run.  With Selenium 4, there will be improved changes related to the hub.
  4. Improved Selenium Grid UI-Selenium 4 will have an improved user experince with a much richer UI.
  5. Improved Debugging/Logging capability-It is important for the automated engineers to have as much detail as possible when it comes to logging and debugging of issues.  Selenium 4 promises to provide that in order to accelerate resolution of script issues.
  6. Selenium 4 Documentation– The documentation hasn’t been updated since Selenium 2.0.  Documentation is critical and it is important that it is updated so that automated test engineers will not have to wonder how to use Selenium 4.

I hope this information has been helpful.  I will be thrilled to see the new Selenium 4 version when it is officially released.  For now, you can download Selenium 4 Alpha version from the link provided above.  Once the official version is released, you will be able to download it from the SeleniumHQ website.

 

 

 

Learn How to Install Java and Selenium WebDriver

Install Java and Selenium WebDriverSteps to install Selenium WebDriver

Here are the steps needed to install the various components needed for Selenium WebDriver.

 

 

Step 1: Install Java

Download and install the Java Software Development Kit (JDK) here

install Java jdk

Select and download the correct JDK version for your operating systeminstall selenium webdriver

 

O

Once this installation has been downloaded and installed, open your command prompt and type java -version to confirm the correct Java version has been installed.

confirm java version

Step 2-Install Eclipse

Download the latest version of Eclipse here.

download eclipse ide

Once the file has been downloaded, double click on the file to install Eclipse.  Select Eclipse IDE for Java Developers.

install eclipse IDE

Click on the Install button.

install selenium webdriver

Accept Terms and Conditions

accept terms

The installation will begin.

When the install is complete, click on the Launch button.

launch eclipse

Step 3-Download Selenium Java Client WebDriver

Download the Selenium Java Client WebDriver here.

selenium java client

The download file will come as a .zip file.  You can create a folder on your computer called: C:\Selenium and extract the contents of the download there.  This will contain all the needed files that will be used to configure Selenium.  Once you extract the files it will look like this:

selenium webdriver install

Step 4-Configure Eclipse with Selenium WebDriver

Go to the location where you extracted the zip file.  It will contain an executable called eclipse.exe.  You might also see a shortcut on your desktop that looks like:

eclipse shortcut

Double click on the Eclipse shortcut and it will launch Eclipse. You can use the location listed, and click on Launch.

launch eclipse

Once the screen is launched, click on Create a New Java Project

create java project

The following window will appear.  For the project name you can call it myfirstproject.  You can use the other defaults listed and click the Finish button.

learn selenium

The following window will appear.  Click on the Create button.

The following screen appears:

how to install selenium

Right click on myfirstproject and select New and then Package.

setup selenium

The following window will appear.  Name the new package mypackage and click on the Finish button.

selenium automation

Right click on myfirstpackage and select New then Class

selenium automation jar

The following window will appear.  Under name enter myfirstjavaclass and click the Finish button.

install selenium webdriver

For the next step, right click on myfirstproject and select Properties

selenium java webdriver

On the properties window, select Java Build Path then Libraries tab then Add External JARS…

java selenium learn here

The JAR Selection window will appear.  Go to the location where you installed the Selenium files on your computer.  Mine is installed at: C:\Selenium.

how to configure selenium webdriver

Double click on the libs folder

selenium configuration settings

Select all the files and click the open button.

selenium files

You will see all the files you selected displayed.  Click on Add External JARS.. button again

how to configure selenium webdriver

The JAR Selection window will appear.  Select all files there and click on Open.

setup selenium webdriver

On the Properties window, click on the Apply and Close button.

selenium web automation

You will now see the Referenced Libraries displayed.

selenium webdriver files

 

The Selenium WebDriver configuration is finished.  I hope this information has been helpful.  Don’t forget when you create a new project, you will need to import these files again.  In order to run your scripts you will need to determine which browsers you plan on using.

You can click here to learn how to setup the different browsers.

Selenium: Learn More

What is Selenium

What is Selenium?

If you are in the software testing profession, one of the most often asked questions is What is Selenium?  Simply put Selenium is an open sourced software testing code.  It is becoming more and more popular everyday, and it is fairly easy to learn.  It was created by Jason Huggins in 2004.  He had a need to perform testing on a web application, so he decided to create a JavaScript based tool that could simulate manual testing activities.  The original name was JavaScriptTestRunner.  I am going to walk you through the process learning more about the code and the pros and cons of leveraging this capability.

Benefits

  • Open sourced software testing code allows anyone to use this tool with no software licensing costs
  • Is used to test web based applications
  • It has a very strong community because many software testers use it
  • It can be used with popular software programming languages such as Java and Python
  • Runs on many different browsers across different operating systems
  • Can easily be integrated and leveraged with other tools

Disadvantages

  • Only used for web based applications, so it will not support automation of mainframe or AS400 applications
  • Is supported by the community, so there is no central company that owns the code or provides updates

Components

  • Selenium WebDriver: is a collection of language bindings to drive actions within the web browser.  If you need to create a series of web based test automation scripts you will need to use Web Driver. If you want to learn how to install Java and Selenium WebDriver click here.
  • Selenium IDE: is an integrated development environment.  It is the simplest component of Selenium that allows you to perform record and playback of test scripts. The Selenium IDE is a Firefox add-in that is easy to install and setup.  This helps to uncover defects quickly when you want to use repetitive processes to ensure that nothing breaks when software is changed.  This tool should only be used to quickly record and prototype things to make sure it is going to work.  It will be helpful to know some simple concepts of HTML, JavaScript and DOM(Document Object Model) in order to have a solid foundation on how the tool works. If you need more complex scripting, then you will need to use Selenium Web Driver.
  • Selenium Grid: Is a tool that enables parallel test execution across multiple machines and browsers at the same time.  This saves a lot of time and helps you get through large regression suites.

Click here for additional information on Selenium.

There are also some Big Changes in Selenium 4.

For the official website you can visit Selenium HQ.

 

Creating a Bunch of Test Automation Scripts Is a Waste of Money

It is extremely important to develop a strategic plan when creating test automation scripts.  With the push towards Agile and DevOps the mindset has become to automate as much testing as possible.  While that idea makes sense, it is important to determine how much test automation is needed.  Part of the problem is that those who are managing Agile or DevOps teams have a really different mindset, and they really don’t understand basic testing principles.  Instead of taking the time to understand, they force their understanding and push test engineering in the wrong direction.

Test Automation Planning

Test automation is certainly critical for Agile and DevOps.  There are things that can and should be automated but before that is done, a few questions must be asked:

  • How many times are these test automation scripts going to be executed?
  • Is the code stable or is it going to change a lot over the next several sprints?
  • Has the test been executed manually and has it passed successfully?
  • How much time will it take to maintain the test scripts?
  • Do you have the right resources to build and update the test scripts?
  • What type of tools are you going to use?
  • What type of framework are you going to build?
  • How much does the test automation software cost?

These questions will help lay the foundation of your test automation planning.  The next step will be to identify the number of test cases that need to be automated.

Testing That Should Not Be Automated

Here is a list of test cases that should not be automated:

  • Test cases that will only be executed a few times
  • Test cases that require human touch, for example review of a customer bill
  • Test cases that require a third party billing system such as a payment gateway that doesn’t have a test environment
  • Test cases were the code is unstable and is constantly changing

Test Case Quality

Test automation scripts help with providing test coverage across applications.  This allows faster deployments because it doesn’t require manual testing.  However, if you create hundreds of test cases and those never identify any defects, is it really worth maintaining and running those over and over again?  Probably not.  The test cases that are automated should be able to capture defects.  Therefore, it is important that you have some really sharp manual testers who can think through the testing scenarios and identify problem areas that need attention.  Without that system knowledge, you will not capture defects and it will not be a good use of your resources.

Return on Investment

It is really important to understand how much cost is involved in creating automated tests.  If you create thousands of them, how much is it going to take to make changes on those when the GUI or back end systems change?  If it is your department or team, as a manager or employee, you really need to be able to answer this challenging question.  At every organization, I make sure that I calculate the ROI.  There are a few ways to do this.  First, you roughly need to know what is the cost of a member of your team or the average rate per contractor or employee.  Most organizations will have that already.  Second, you will need to determine how many scripts are going to be automated and how many times are they going to be executed.  Third, you need to know how much time does it take to execute those test cases manually.  Fourth, once the test cases are automated, you need to know how much time does each one take to execute.  These items will at least give you a basic ROI.  Most ROI numbers are somewhere between 6-12 months.  Anything over a year, probably isn’t worth it.  There are other variations that are more complex, but this will at least get you started.  Knowing this information is certainly powerful, and it will help justify the expense for having automation engineers.

I cannot stress the importance of doing these basic steps.  With Agile and DevOps, everything tends to be rushed.  Perform this basic analysis first and spend a little time up front to yield large returns in the long run.

Manual Testing Isn’t Dead!

If you are a manual software tester, you have probably read or been informed by your boss that manual testing is slowly dying and that you need to upgrade your skills and become an automation engineer.  I don’t think this can be further from the truth.  While it is true that there is value in upgrading your skills and learning test automation, manual testing will always be a valuable skillset.

Why Manual Testing Isn’t Dead

  • Manual testing can uncover some significant defects through exploratory or adhoc testing
  • Test cases are typically built by the manual tester which requires analysis and a deep understanding of the application being tested
  • If test cases are automated, they will typically first be created by the manual tester and then automated
  • There are some test cases can’t be automated.  Test cases that require analysis of bills for example shouldn’t be automated
  • Some test cases shouldn’t be automated because it doesn’t provide a good return on investment
  • A manual tester sees trends and typically knows where the defects are found
  • When schedules are compressed, the manual tester brings value in prioritizing what is tested

Recently with things such as machine learning and AI tends to surface the question again.  While machine learning and AI can be valuable additions, I don’t see the value of the manual tester decreasing anytime soon.  Learn why manual testing isn’t dead.  Many software testing organizations have some manual testing rockstars and they wouldn’t trade those valuable resources for anything.