We all know the manyfold benefits of software testing but as the project grows on every release, which is typically once in a week or bi-weekly, we can’t follow up with testing the way we started because verifying every basic to advanced functionality on every browser and with each and every supported Operating system becomes a monotonous task. 

Thing to be taken into consideration with this is that whenever our system gets any bug however advanced technology/team/resources we were using they holds no value. 

History is full of examples like this where companies have to pay a lot in lieu of some bug in their software, to name a few  

  1. In 2015 fighter plane F-35 fell victim to a software bug, making it unable to detect targets correctly. 
  2. China Airlines Airbus A300 crashed due to a software bug on April 26, 1994, killing 264 innocents live 
  3. In 1985, Canada's Therac-25 radiation therapy machine malfunctioned due to software bug and delivered lethal radiation doses to patients, leaving 3 people dead and critically injuring 3 others. 
  4. In April of 1999, a software bug caused the failure of a $1.2 billion military satellite launch, the costliest accident in history 
  5. In May of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars. 

Solution of these flaws come in form of automation where bot mimics user actions and asserts expected result against the result our software is giving and it does all this functional flawlessly without being tired on all the possible Operating system and Browser combinations, Not only this our bot can also log into databases to verify any CURD operation performed by user action on website. 

Automation types 
Basically on a major level automation can be broken down into following different subsections 

  1. UI Automation 
  2. Backend Automation 
  3. Performance analysing bots 

To perform all the types of automation mentioned above we have loads of tools/Methods, If we talk of UI Automation some of the tools can be as follows 

  1. Selenium 
  2. QTP 
  3. Cypress.io 
  4. TestProject 
  5. Katalon Studio 
  6. TestIM 
  7. Squish  

And many more 

Selenium

 

Selenium stands as a DeFacto standard for UI Automation in current times due to it’s these following advantages 

  1. Open Source and highly configurable nature 
  2. Support for more than 10 programming languages including Java, C#, Python, Ruby, etc. 
  3. Integration with almost all the 3rd party tools like Jira, Jenkins, TestNG, etc. 
  4. Can be integrated with almost all the sql and nosql databases to perform operations. 
  5. Libraries to support all the basic operations like Reading/Writing to Excel, Reading/Writing to Properties file, etc. 
  6. High acceptability in the market. 

With these many advantages there are many other disadvantages of selenium as well 

  1. Test Engineer needs to be aware of programming language as it requires us to code 
  2. Selenium is very well in automating browser-based application but lacks in automating desktop-based applications. 

Sample code in selenium(With Java) to open chrome browser and search “Hello” on google. 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
 
public class First_Sample { 
 
  public static void main(String...s) 

System.setProperty("webdriver.chrome.driver",System.getProperty("user.dir")+"/src/test/resources/mac/chromedriver"); 
  WebDriver driver = new ChromeDriver(); 
  driver.get("https://www.google.com"); 
  driver.manage().window().maximize(); 
  driver.findElement(By.name("q")).sendKeys("Hello"); 
  driver.quit(); 
 
  } 

 

Technologies

Leave a Reply