Author Archives: Linkesh Kanna Velu

The 2023 State of Testing™ Survey

The 2023 State of Testing™ Survey is now live and collecting the perspectives of thousands of QA professionals worldwide

Attention all QA professionals! The annual State of Testing™ Survey is now live. This survey is an important opportunity for you to share your insights and opinions on a range of topics that are relevant to the software testing industry. Conducting this survey year after year for nearly a decade now provides a unique perspective that no other report can provide. And you can be part of that history!



Beyond the usual demographics Practitest decided to use the crowdsourcing wisdom of the QA community to explore two concepts:

  • The shift to Agile and DevOps and their impact on our productivity and our testing.
  • The consequences of automation adoption in regard to current processes, people, and platforms.

What is the State of Testing™?

The State of Testing™ initiative seeks to identify the existing characteristics, practices, and challenges facing the testing community today in hopes to shed light and provoke a fruitful discussion toward improvement.

The final report is translated into several languages and shared globally, further expanding the reach and impact this report has on all of us in the QA world.

Each year the amount of participants has increased, and the final report becomes even more valuable as a culminated reflection of testing trends, challenges, and characteristics.

View Previous Reports

2022 I 2021 I 2020 I 2019 I 2018 I 2017 I 2016 I 2015 I 2013



The State of Testing Survey 2022

Back and better than ever

PractiTest and TeaTimeWithTesters are now running the 9th annual State of Testing™ survey.
Based on previous feedback we took an extra effort to make the survey shorter and more precise.

What’s new?

It was also time to take a closer look at some potential interesting factors around the effects that Agile and DevOps might have on our productivity and our testing. So this time around the questions are targeted to explore some common trends and conceptions.
Sounds interesting, don’t you think? TAKE THE SURVEY NOW

At the end of the survey, you will have the option of leaving your info, if you’d like us to send you the report with the analyzed answers from all the testing professionals who answered this survey around the world.

What is the State of Testing™?

The State of Testing™  initiative seeks to identify the existing characteristics, practices, and challenges facing the testing community today in hopes to shed light and provoke a fruitful discussion towards improvement.

The final report is translated into several languages and shared globally, further expanding the reach and impact this report has on all of us in the QA world.

Each year the amount of participants has increased, and the final report becomes even more valuable as a culminated reflection of testing trends, challenges, and characteristics.

View previous reports:

Visual Studio Code – Virtual Environment for Python Code Styling Validation

“Code is read much more often than it is written.” We may spend a few minutes writing a piece of code to View/Edit the data in a Page Section. Once it’s completed, we never going to write it again. But we definitely have to read it again. This piece of code might remain part of our project for a very long time. Every time we go back to that script, we’ll have to remember what that code does and why we developed it, so readability matters.

It can be difficult to remember what a piece of code does a few days, or weeks after we wrote it. But If we follow a ‘Styling Guide’, we can be sure that we named our variables well. We’ll know that we’ve added enough white space so it’s easier to follow logical steps in our code. We’ll also have commented on our code well. All this will mean our code is more readable and easier to come back to. Following the rules in a “Styling Guide” make learning Python a much more pleasant task. Writing a clear, readable code shows professionalism.

PEP 8 — the Style Guide for Python Code

“Readability counts.” — The Zen of Python

Why Readability count? Other people, who may have never met us or seen our coding style before, will have to read and understand our code. If we follow a global standard guideline, it will make it easier for others to quickly learn the business logic in our code. This is why we need PEP 8. PEP 8 sometimes spelled PEP8 or PEP-8 or “Python Enhancement Proposal”, is a document that provides coding conventions, guidelines, and best practices on how to write Python code. The primary focus of PEP 8 is to improve the readability and consistency of Python code. PEP 8 has emerged as the style guide that most of the python projects adhere to and it’s learned and followed by the majority of python developers across the globe. So it even helps us to quickly onboard the new hires into our project and to make them feel comfortable with our code base.

Ensure our Code Follows PEP 8:

Linters are programs that analyze code and flag errors. They provide suggestions on how to fix the error. Auto formatters are programs that refactor our code to conform with PEP 8 automatically. Linters just help us to identify the issues, But formatters will auto-resolve most of our styling issues.

  • PyCodeStyle linter to check our Python code against the style conventions in PEP 8.
  • PyDocStyle which is used to check the documentation/docstrings in our code.
  • Black which auto-formats code following most of the rules in PEP 8 we documented above.

Linters, Formatters and Static Analysis tools are more effective and useful when installed as extensions to our IDE, as they flag errors and stylistic problems while we write code.

Lets see how to setup a python virtual environment to automate styling validation in VS Code.

Download and install Python 3.8.3. When installing, select all the ‘Optional Features’ also

Download and install Visual Studio Code

Add the Python Path in System Environment Variables and User Environment Variables.

Check the installation by typing python –version

Install the following extensions [optional] for the Visual Studio Code.

  • Python
  • Github
  • Git History

Open the Project folder in VS Code.

Run the following command in the VS Code terminal to create a virtual development environment.

python -m venv venv-django
cd .\venv-django\Scripts\ 
python -m ensurepip
python -m pip install --upgrade pip
pip install -r .\requirements.txt

When we install the requirements.txt, all the styling linter, formatted, and code analysis tools will also be installed.


Use this settings.json under .vscode folder which will serve as a VS Code settings file specific to our python project.

    "workbench.settings.editor": "json",
    "breadcrumbs.enabled": true,
    "editor.minimap.enabled": true,
    "editor.renderWhitespace": "none",
    "editor.tabSize": 4,
    "editor.insertSpaces": true,
    "editor.formatOnSave": true,
    "editor.trimAutoWhitespace": true,
    "editor.renderControlCharacters": false,
    "github.statusbar.color": false,
    "git.autofetch": true,
    "git.rebaseWhenSync": true,
    "git.confirmSync": false,
    "git.enableSmartCommit": true,
    "python.pythonPath": "venv-django\\Scripts\\python.exe",
    "python.formatting.provider": "black",
    "python.formatting.blackArgs": [
    "python.linting.enabled": true,
    "python.linting.pycodestyleEnabled": true,
    "python.linting.lintOnSave": true,
    "python.linting.pylintEnabled": false,
    "python.linting.maxNumberOfProblems": 10000,
    "python.linting.pydocstyleEnabled": true,
    "python.linting.pycodestyleArgs": [

So now you’ll be able to see all the styling related issues in the ‘Problems’ tab which are mentioned in PEP-8.

Press Ctrl + S or Save, most of the issues identified by the Linter will be resolved by ‘Black’.

Along with auto-formatting when Save, I also frequently use, ‘Format Document’, ‘Convert Indentation to Tabs’, ‘Indent using Tabs’, ‘Trim Trailing Whitespace’ option in VS Code Command Palette to maintain consistent styling across all my source files.


Its been a long time and I am back after a very tight work schedule.

Earlier I have written an article about dealing with scenarios which involve both UI as well as API testing using Selenium and SoapUI.

Since that time, Rest Assured has been evolved as a most commonly used API Test Automation Framework and also it goes well with Java.

Last week I came across a Selenium Conference talk where I got to know about an interesting library called Selenium to Rest Assured Adapter.

This will simplify some of our automation tests, which needs automation at both UI and API levels.

In my previous posts, Selenium Webdriver – Get SessionID from a Web Application and SoapUI Get SessionID we have explored how to extract a session information from Selenium and passing it into our API Automated tests using SoapUI.

Now we are gonna explore the same using Rest Assured using the Selenium-To-RestAssured library.

For this, we need to download the latest jar file from Download Selenium-To-RestAssured Jar file and you have to add it to your classpath in your IDE – Eclipse or IntelliJ Idea.

If you are using Maven to manage the dependencies in your project, you can add the following to your pom.xml


In selenium, to get a cookie from AUT, we use,

driver.manage().getCookieNamed("COOKIE NAME");

To use the cookie in rest assured tests, simply we have to create an instance for the CookieAdapter class and using the convertToRestAssured method like below. Then we can use the cookie in our RestAssured API Tests.

org.openqa.selenium.Cookie cookieToConvert = driver.manage().getCookieNamed("COOKIE NAME");
CookieAdapter cookieAdapter = new CookieAdapter();
io.restassured.http.Cookie adaptedCookie = cookieAdapter.convertToRestAssured(seleniumCookie);


The above snippet is extremely useful if we are automating API testing with an application that has a complex login process. We can log into the application via the browser using selenium, grab the necessary logged in Cookies from the browser, close the browser down, and then use the Cookies in our API Tests.

This Selenium-To-RestAssured is a dual way adapter and it converts cookie from RestAssured into a selenium cookie as well.

This can be used when you made an HTTP login request and you have to extract the response Cookie and store them in the browser.

Once we have the converted cookie we can add them to our browser like below.

io.restassured.http.Cookie cookieToConvert = response.getDetailedCookie("COOKIE NAME")
CookieAdapter cookieAdapter = new CookieAdapter();
org.openqa.selenium.Cookie convertedCookie = cookieAdapter.convertToSelenium(cookieToConvert);
driver.navigate().refresh(); // We refresh the page so it reads the newly added cookies

This library is an open source and you can dig deeper into the source code here – Selenium-To-RestAssured-Github

Thanks to Mark Winteringham for this innovative creation.

State of Testing – 2018

For the 5th time, Practitest and TeaTime with Testers launch the State of testing survey. The State of Testing 2018 seeks to identify the existing characteristics, practices, and challenges facing the testing community in hopes to shed light and provoke a fruitful discussion towards improvement.

Each year the amount of participants has increased, and the final reports become even more valuable as a culminated reflection of testing trends, challenges, and characteristics.

The final report is translated into several languages and shared globally, further expanding the reach and impact this report has on all of us in the QA world.

You can help the test community by sharing your thoughts and view on the testing profession. Fill in the survey. Of course you’ll get the report for free, so you can learn how others look at the world.

The state for testing report of last year is available: State of Testing 2017.

Headless CHROME With Selenium Web Driver

Till Google Chrome 59, headless execution has been achieved using third party tools like PhantomJS or HTMLUnitDriver.

Earlier if you want to achieve headless test execution in Chrome, you had to use Xvfb (short for X virtual framebuffer). This is an in-memory display server for Linux which enables you to run graphical applications without a display.

But Google has released updates to chrome to achieve an inbuilt Headless test execution without using Xvfb or any other third party tools using a real browser – Chrome. This is available on Mac and Linux Os from Chrome 59. If you are using Windows, you need up update your Chrome version to 60 or above to achieve headless execution.

How to do Headless Test Execution: Its simple. All you have to do is add a chrome options argument before initializing your driver.

ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);

Check for broken links on your website using Postman

If you are using Postman for your API Testing, then you can also you the same to automatically crawl all the pages on our website and check every link for a healthy HTTP status code.

This can be achieved using 2 simple API requests in Postman.

First lets create a new Collection and an Environment in Postman, where you can specify

  • root_url
  • start_url

Specify the values for the root_url and start_url.

root_url as

start_url as

Create a simple request with Get method and enter url as {{start_url}} and in the Tests tab enter the following code.

// set environment variables to default values
postman.setEnvironmentVariable('links', '[]');
postman.setEnvironmentVariable('url', postman.getEnvironmentVariable('start_url'));
postman.setEnvironmentVariable('index', -1);



Create a second request – Get method and enter URL as {{url}} and in the Tests tab enter the following code.

// Tests and custom scripts can be written in JavaScript.

// get environment variables
var start_url = postman.getEnvironmentVariable('start_url');
var root_url = postman.getEnvironmentVariable('root_url');
var links = JSON.parse(postman.getEnvironmentVariable('links'));
var url = postman.getEnvironmentVariable('url');
var index = parseInt(postman.getEnvironmentVariable('index'));

// increment index counter to access links in array to check
index = index + 1;

// test if link works
if (responseCode.code &gt; 400) {
 console.log("This link is broken: ", url);
 tests["Link works"] = false;
} else {
 tests["Link works"] = true;

// if the current url includes the start_url, then this is an internal link and we should crawl it for more links
if (url.includes(start_url)) {

 // load the response body as HTML using cheerio, get the &lt;a&gt; tags
 var $ = cheerio.load(responseBody);

 $('a').each(function (index) {

 var link = $(this).attr('href');

 // add links to the links array if not already in there
 // if you have additional links you would like to exclude, for example, ads, you can add this criteria as well
 if (!links.includes(link)) {

// if we've gone through all the links, return early
if (links.length - 1 === index) {
 console.log('no more links to check');

// if link is a relative one, prepend with root_url
url = links[index]
if (! /^https?:\/\//.test(url)) {
 url = root_url + url;

// update environment variable values
postman.setEnvironmentVariable("links", JSON.stringify(links));
postman.setEnvironmentVariable("url", url);
postman.setEnvironmentVariable("index", index);

// continue calling the same request until all links are checked
postman.setNextRequest('Check URL');

Now Open “Runner” Select the Collection, Select the Environment and Click on Start Run Button.


You can see Postman in action crawling all the links until there are no more links to check.

You can also simply download the Postman Collection and import it into your Postman.

Online Test Conf

SPRING ONLINE TEST CONF: The 100% online conference all about testing is happening on June 13-14, 2017.

This is an initiative to bring all the advantages of attending professional QA related conferences: personal learning, networking etc. without the shortcomings of scheduling, expenses and travel.

Attendance at OnlineTestConf is free and meant for anyone who sees themselves involved in testing and the testing community.

Why an Online Conference?

Not everyone can take time off their work, or pay the costs of physical conferences, and as much as we would like to our employers don’t always want to send us to learn new things and to improve our skills based on the knowledge of our peers.

Today we have the means (technologically and logistically) of organizing an event of this sort and share it with the community.  Something we could not really do even a couple of years ago.

The first conference was held in November 2016, was an amazing success. The feedback from that conference that drove them to make this a recurring event.

This upcoming OnlineTestConference will tackle hot topics such us: Agile team success, IoT, Mobile Testing, Testing AI and more, with a great line up of speakers such as: Alan Page, Paul Grizzaffi, Matt Heusser and Eran Kinsbruner to name a few.

Sign Up for this Conference and Save your seat

State of Testing 2017


Recently I have posted the State of Testing Survey 2017 survey conducted by PractiTest and now the survey results are out.

State of Testing survey 2017 has been biggest ever, with the participation from over 1600 professionals from 60 countries! We have 600+ more participants for this survey compared to the last year. This tells us a lot about the value this project is providing to the worldwide QA Community.

Following are some of the key takeaways from this report.

Respondents Demographics:
Indian Software Professionals contributed a lot for this survey. 23% of the participants are from India, and QA Professionals from Europe and Russia contributed to 34%. Most of them have the word “TEST” attached to their professional titles.

Where to Start?
If you or someone you know is starting his/her testing career, it is better to look for work in a smaller company or a startup firm, instead of looking for work in a bigger corporate organization.

Testing salaries around the world:
There is a jump in salaries compared to last year in a number of areas around the world, with the USA, Canada enjoying the largest gains in reported salary. On the other hand India, as a geographical area, showed similar salaries to previous years.

Testers report to a number of departments in the organization:
Again like last year, Its interesting to see that percentage of people from the Testing Function is reporting more to the Project Management and Development Manager than to the VP or Director of Quality.

Testers Approach towards Testing:
Almost all the testers prefers Exploratory / Session based testing than any other testing approaches. People also started trying out Mob Testing as one of the test approach. Mob testing is a group testing activity utilizing one computer and voices out the tacit knowledge in the group of individuals on shared tasks.

Additional Task for Testers:
Mostly we do documentation, managing test environments and requirement gathering. So when looking for tasks that will help you to boost your testing career, try focusing on helping the documentation gets created correctly and also on more technical tasks such as managing environments and taking part of the deployment and integration operations.

Source of Knowledge for Testers to learn:
Mostly QA People prefers Testing Books, Peer Mentoring and Online Communities and forums to keep themselves up-to date.

Skills – More importance to things like Automation, Scripting and Web Technologies and Security Testing. The most important skill is Communication Skill, which is even higher this year than ever before!

To Keep up to date – More people attending more interesting conferences than last year.

Adoption of New Tools: More than half of the testers introduce new tools into their practices.

Overall the percentages of respondents using automation remains the same than as last year with 85% of the respondents.

What do Managers look for when hiring a tester?

  1. Problem Solving/Curiosity/Creativity
  2. Ability to think outside the box
  1. Technical knowledge
  1. Understanding of Agile
  1. Communication and listening Skills.
  2. Ability to adopt changes quickly.


Job Stability – The stabilization trend we started to see last year is only increasing, and so
people are less concerned in general about their job stability.

Predictions to the Future:
We see that most people want to stay in the testing arena within the next 5 years, although an important number of respondents want to work as Test Managers or Test Consultants.

The report also contains Plenty of good testing gatherings and open answers to Our ideal testing world in the future

To Read the full Report : Download State of Testing 2017 Report

Take part of the 2017 State of Testing Survey

The Largest Worldwide Testing Survey is back!

Following in tradition of the past three years on this QA Intelligence Blog and in collaboration with Tea Time with Testers, we are happy to announce the launch of the 2017 State of Testing Survey!

The survey is open throughout January, 2017 and you can take it right now – 
It only takes 10 min. or less to fill out  (we timed it) but will make a [testing] world of difference.

The State of Testing seeks to identify the existing characteristics, practices and challenges facing the testing community in hopes to shed light and provoke a fruitful discussion towards  improvement.

Last year was very successful with thousands of participants worldwide and the final report was translated into several languages and shared globally.
See the results from last year’s State of Testing Survey 2016.

With your help this year’s survey will be even bigger by reaching as many testers as possible around the world!


Other than taking the survey yourself, you are also invited to Share, Tweet, Post, Blog and brag about it with your professional network: