Automation testing tools at Google

Knowing that Google’s testers are really software engineers building test frameworks and tools, what are these frameworks and tools? Here’s a short list of the well-known testing solutions built or influenced by Google:

  • Selenium. No, Google didn’t build Selenium, but Jason Huggins (the creator of Selenium) worked at Google in 2007 on Selenium RC. Besides, it was the Google Test Automation Conference 2009 where Google and ThoughtWorks agreed to merge Selenium and WebDriver into Selenium 2.0. What followed is now history.
  • Protractor. Originally developed for end-to-end testing of Angular apps, Protractor is one of the most popular automation frameworks. Needless to say, engineers from Google use Protractor for many products and play an important part in the development of this framework.
  • Karma. The spectacular test runner for JavaScript is the brainchild of the AngularJS team at Google. Also, the original name of this test runner was Testacular.
  • Espresso UI is a test framework and a record-playback tool for Android.
  • EarlGrey. In addition to UI testing for web application and Android, Google taps into functional UI testing for iOS with EarlGrey. At Google, this framework is integral to the UI testing of Google apps for iOS, including YouTube, Play Music, Google Calendar, Google Translate, etc.
  • GoogleTest. The products that use this C++ test framework are the Chrome browser, Chrome OC, and the computer vision library OpenCV.
  • Google Test Case Manager is a test management software that Search giant uses internally.
  • OSS-Fuzz is Google’s solution for the fuzz testing of open-source software.
  • Martian proxy is a library for building programmable HTTP proxies for testing purposes. As pointed out on this project’s GitHub page, Martian proxy isn’t not really a Google product. Rather, it’s just code that Google happens to own.

Here is the complete list of testing tools used by Google and are Open source: https://opensource.google/projects/list/testing

Simplest Guide to XPath Axes in Selenium Webdriver by Codoid

Simplest guide to XPath Axes by Codoid. Must Read:

To use XPath effectively in Selenium WebDriver, you should be familiar with XPath Axes and HTML. There are thirteen axes available for XPath. As per the definition in Mozilla Web Docs – “An axis represents a relationship to the context node, and is used to locate nodes relative to that node on the tree.”

As an automation tester, if you are familiar with XPath Axes, you can write robust locators for dynamic WebElements.

Let’s look into all the XPath Axes which are useful for test automation scripting.

Let’s say you want to select a parent node using its child node. You first write XPath to pick the child node and the parent node using XPath parent axis.

Read More at: https://codoid.com/how-to-use-xpath-axes-in-selenium-webdriver/

Read More at: https://codoid.com/how-to-use-xpath-axes-in-selenium-webdriver/

[Free Watch] Masterclass: AI and Machine Learning Skills for the Software Testing World

In this 6 Hrs long masterclass video, Tariq discusses how we can innovate and make our testing better through smarter automation and the use of artificial intelligence.

Tariq King is the senior director and engineering fellow for quality and performance at Ultimate Software. With more than fifteen years’ experience in software testing research and practice, Tariq heads Ultimate Software’s quality program by providing technical and people leadership, strategic direction, staff training, and research and development in software quality and testing practices. His primary research interest is engineering autonomous self-testing systems. He is cofounder with Jason Arbon of the Artificial Intelligence for Software Testing Association.

Here is the Video:

2020 State of Test Automation Report

KEY FINDINGS

  1. Regardless of the past decade’s software advancements, test automation is still a huge pain and obstacle for DevOps.
  2. The average test automation coverage is less than 50%. To mature DevOps, organizations must strive toward 75-80% and beyond.
  3. Organizations lack continuous testing strategy that involves entire DevOps teams.
  4. Continuous testing and shifting left heavily depend on the proper matching of individuals’ skillsets. Unfortunately, this is not properly implemented.
  5. Test automation within the software build cycle and pipeline isn’t effective enough, doesn’t happen in time, and suffers from flakiness.

To download the full report, please click here.

[Free Course] Appium – Selenium for Mobile Automation Testing

Automate mobile testing Appium course, covering from Appium download to interview questions (mobile automation tool)

4.0 (1,490 ratings) 32,044 students enrolled.

What you will learn:

  1. You will know how to write test scripts using Appium
  2. You will know how to identify identify various mobile elements using Appium
  3. Yow will know how to work with Appium Grid
  4. Best practices with Appium
  5. Using Appium with TestNg, Maven, Ant, GitHub, Sauce Labs
  6. Knowledge about various Test Automation Frameworks
  7. Automate Mobile Applications (Native,Web & Hybrid)
  8. How you should proceed automation frameworks using Appium

Click here to Enroll: https://www.udemy.com/course/appium-selenium-for-mobile-automation-testing/

Shifting Left your UI Tests.

We all know Selenium tests are flaky by nature, slow to run, expensive to maintain and finding the root cause of a failure is not always easy. I would like to show you how we shifted our Ul tests left. This drastically limited the number of Selenium tests we needed to write, which made us able to focus our Selenium testing on areas where it actually addsv alue instead of creating a headache.

By: Arjan Blok

Complete Java for beginners (in depth and adv java) – 100% Free Udemy Course

Complete Java for beginners (in depth and adv java) – 100% Free Udemy Course

Limited Period Offer (expires in 1 day i.e. on 9/23). 7800+ students enrolled so far.

Go to https://www.udemy.com/course/smt-java-advjava/ and apply coupon JAVASMT210920 .

This course includes:

  • 13.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of completion

Go to https://www.udemy.com/course/smt-java-advjava/ and apply coupon JAVASMT210920 .

Understanding Parallel Testing in Test Automation (Part 1)

Parallel testing is an automated testing process that developers and testers can launch multiple tests against different real device combinations and browser configurations simultaneously. The goal of parallel testing is to resolve the constraints of time by distributing tests across available resources.

For example, if 20 test cases take a total of 100 minutes to complete, then 10 parallel execution could run 2 test cases each and bring the total testing time down to 10 minutes. Ideally, if you have sufficient resources, say 20 real mobile devices and real browsers for simultaneous execution of 20 test cases, then you’ll be able to significantly shrink the runtime to 5 minutes.


Benefits of Parallel Testing:

Speed: Sequential testing is time-consuming, while parallel testing will allow you to divide invested time by the number of environments. In order to test your application against ten devices, all you need to do is write only ONE script and run it against all your target devices, cutting your testing time by ten times.

Cost-Efficiency: The building, maintaining and keeping your own test environment up-to-date can burn a hole in your pocket. When it comes to parallel testing, maintenance isn’t a headache anymore — in fact, you lease the needed testing environment, always updated. Plus, cloud-based testing grids allow you to run tests at high concurrency, making the cost per test significantly lower.

Better Coverage: It’s always a good idea to run your application through as many platform-device-browser combinations as possible so that no bug sneaks in. Parallel testing will take your test coverage to the next level, giving you a significant ROI boost.

Optimization of Your CI/CD Processes: Parallel testing is the best friend of continuous integration and delivery. By testing in parallel, you can run tests as soon as developers submit new code updates throughout the entire SDLC. Timely reporting and quick feedback in parallel testing will also facilitate better communication between various departments.

Improvement of Testing Practices: Parallel testing improves the QA routine in your company. The reason is crystal clear: by testing at high speed, you can test more. This gives your QA team a chance to improve their testing practices and pinpoint bugs faster.

Read Part 2: Tips for Successful Parallel Testing

Source

Tips for Successful Parallel Testing (Part 2)

Read Part 1: What is Parallel Testing in Automation?

Here are some of the tips for Successfull Parallel Testing:

Tip 1: Test in the Cloud-Based Environment

Implementing a parallel testing strategy using in-house resources is one of the most typical mistakes. Building and maintaining your own infrastructure is not efficient. It is not just time- and cost-consuming – you won’t be able to make the most of parallel testing where the ability to test at high concurrency is a major advantage. Also, keeping your testing environment up-to-date requires a lot of resources. To this end, it’s a good idea to turn to cloud-based services that allow you to access the necessary devices at any time.

Tip 2: Avoid Dependencies Between Tests

Dependencies between different test cases are a primary reason why transitioning to parallel testing is so challenging for many teams. Simply put, when test cases are dependent on each other, you should run them in a particular order, which can destroy any parallel testing strategy. So, it is critical to creating your test cases to be atomic, independent from each other. Only then, you will be able to run them at any time and in any order, making your testing processes free of constraints.

Tip 3: Avoid Hard-Coding

Hard-coding is embedding data directly into the source code instead of generating it at runtime. This notion is an enemy of efficient parallelization since it creates dependencies between test cases, mentioned above. It is strongly recommended to avoid hard-coding values when scripting your test cases to ensure that each of your tests is self-sufficient and can be run whenever necessary. Use the data-driven approach to configure your test cases when they are running in parallel.

Tip 4: Manage Test Data Efficiently

Efficient test data management is the key to successful parallel test execution. But first, you need a strategy. There are two components you might want to add to it: a creational strategy (which creates test data needs) and a cleanup strategy (which cleans it up). Still, the only thing that matters is that your strategy is adapted to your particular case. The following ones are quite basic, and perhaps that’s what makes these data management strategies so effective:

  • elementary approach, which has no creational and cleanup strategies
  • refresh-your-data approach, which resets your source code in between test executions but has no creational strategy
  • selfish data generation approach, which has a creational strategy but no clean up one.

These are the most basic strategies. You can mix and match them to serve your own case or explore alternatives, such as generating other data or refreshing specific data.

Tip 5: Build Tests to be Run in Parallel

You don’t want to end up with a bunch of tests that can’t be run in parallel right before the release date. Planning correctly from the get-go will save you from nasty surprises when time’s up or when a deadline is due. Create your test cases with parallelization in mind should be your way to go. And believe us, it sounds harder than it actually is: test cases created for running in parallel are simpler, shorter and faster to build.

Source