Looking for a job tester? Get ready to demonstrate developer skills

Hello again. Ahead of the start of the Java QA Engineer course, we prepared a little material that will be useful to those who are just going to build a career in this direction.

Tester – who is it?

A software quality control (QA) engineer advocates for the end user. He is developing a software testing process that guarantees quality – so that the product does not just satisfy, but also exceeds customer expectations.

The following types of testing are distinguished:

  1. Manual It involves familiarization with the product using the tools that the consumer will use: keyboard, mouse, fingers on the touchscreen.
  2. Regression. After adding new functions, the tester must check whether the application has retained its operational properties from the point of view of the end user.
  3. Automated. Provides code writing to verify that the expected and actual behavior of the application matches.

Automated testing is not a new concept for the software industry. The free provision of automated testing tools to create better software is also not a new concept. New is that thanks to Selenium WebDriver, developed by ThoughtWorks and supported by Google, open source solutions have become acceptable even for companies that are accustomed to working only with standard certified software.

Selenium WebDriver in combination with CI / CD created such a surge in demand for encoders that the phrase “manual testing” for the most part disappeared from the list of requirements for applicants. What took her place? Development of automation tools.

The tester writes, in fact, these tests and creates an automated environment to support the execution of tests and their analysis. In doing so, he tries to answer the following questions:

  • What types of tests do we conduct? Will we focus on automating the browser regression test suite through Selenium WebDriver? Or will we automate new functionality as well?
  • If we use Selenium WebDriver to automate browser tests, will we bind it to Java, Python, C #, JavaScript, or Ruby, for example?
  • Can we move one level further along the pyramid of testing Mike Cohen and test those web services that provide the browser application with basic functionality?
  • What testing solutions best fit with the application programming language?

How are tester job interviews conducted today?

When I came to the first interview after a two-year break, everything went well … until the moment when I was asked to come to the board.

“Using your favorite programming language, write a method for checking whether a given word is a palindrome.”

If they had given me this homework, I would have been able to figure it out. But when I found myself in front of the board, and two developers with stone faces evaluated me, my mind turned into a blank canvas.

Having completed half of the assignment, I began to joke:

  • If only I had a laptop with IntelliJ!
  • If I wrote code for an automated test, I would have done much better.

The answer was: "All employees are expected to have programming at a certain minimum level – even for quality control posts."

After that I had to prepare for an interview for another job …

Code Writing Interview: Not Just For Software Engineers

When I was interviewed three years ago, I only once encountered writing code. And this time it included 5 of 7 suitable for me vacancies. Why are candidates for the position of tester subjected to the same verification as the developers themselves? The answer seemed strange to me:

Because testers today are developers.

In recent years, the automation function has moved from testers who can write code to developers who can test.

The developers do not find the questions asked by the testers at the interview difficult. They do not ask candidates to solve the Tower of Hanoi or solve mathematical equations of the second year level of a good technical university.

Most of the code examples that they are asked to write are related to loops, basic math, string and symbolic manipulations.

Why are code writing interviews so complicated?

Activity topics may be outside your area of ​​expertise.

  • I usually work with the Java programming language. I only occasionally have to use a more complex data structure than a hash table.
  • The code I'm writing revolves around Selenium WebDriver. I open the browser, go to the page, enter the data in the text fields, select the radio buttons and it works!
  • I constantly compare strings and check if the warning text on the screen matches the expected one. However, in my day-to-day work, I only slightly use auxiliary methods for the string object method.

No IntelliSense for an interview

  • If I need to use helper methods in a string, character or integer object, I just have to put a dot after the word, and the methods will be displayed.

Such tests do not allow using external sources of information.

  • You cannot use a specialized forum or Stackoververflow.com.

During interviews, a feeling of isolation may occur.

  • When I start writing a test for a functional that I am not familiar with, I usually exchange ideas with colleagues. But during the interview I cannot exchange ideas with the interviewers. Or can I still? It seemed to me that I could not – sometimes they are not very friendly.

How can one prepare for such tasks?

Refresh your knowledge

A good option is to take some free online programming courses.


Take advantage of Oracle's Java learning materials: “The Java Guide is a practical guide for programmers who want to use Java to build applications. The manual includes dozens of lessons and hundreds of examples.

Check out the API documentation

To work with a programming language, you must understand the basic terms listed in the API documentation.

If your main programming language is Java, take a look at https://docs.oracle.com/javase/8/docs/api/java, focusing on the topics Integer, String and Character, especially:

String functions

Need to find the first character in a string? Use charAt (0). Find out if a character or word is in a string? Use contains. Need a suffix? Try endsWith. Check if the two lines match, using equals and equalsIgnoreCase.

Character functions

Boolean functions help familiarize yourself with the nature of characters. isLetter, isLetterOrDigit, isLowerCase, isUpperCase, isLowerCase, isWhitespace. For example: Character.isLetter ('A') will be true. When entering new characters, enclose them in single quotes, for example: char newCharacter = 'a'.

Integer functions

Want to convert an integer? Enter an integer in Integer.toBinaryString (int i), Integer.toHexString (int i) or Integer.toOctalString (int i)to convert it to the desired format.

Practice on paper

For example, ask yourself how to use the loop loop to reveal:

  • all integers from 1 to 100;
  • all even numbers (i% 2 == 0) in the range from 1 to 100 {1 … 100}
  • all numbers divisible by 3 (i% 3 == 0).

Or here are the string exercises:

  • write a method that takes string s and returns the length as an integer s.length;
  • write a method that takes string s and returns the first character s.charAt (0).


  • Try to write everything in legible handwriting.
  • Do not forget to open and close the brackets correctly.
  • Come up with validation tests for your code. Will it work if the string consists of only one character? And if out of 100? And if 0?

Watch for the error of the unaccounted unit in cycles:

  • When counting characters in a string or the first index in an array, the number n is considered in the range from 0 to n-1. That is, the first character is (0), and the last is (length – 1).
  • Cycle for (for i = 0; i <5; i ++) will end with the number 5. If you display this on the screen, then 0, 1, 2, 3, 4 will be displayed there. To display 5 more, you must enter i <= 5.

The second part of the article will talk about why code writing interviews are so complicated. And that's all for today. More interesting information can be obtained at the free webinar, which will be held on December 19.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *