Every QA Tester noticed that QA Interview questions become more arduous and toilsome in the last few years. Who would imagine that QA Engineer should know how to program in order to get ahead? Look at most recent job ads for QA Testers and you would observe that more than eighty percents of the ads requested programming skills. Obviously the tester who is solemn about a career in testing would do well to pick up at least one programming language. Therefore, let's return to QA interview questions for one of today’s most popular programming language - Python. I have already covered a tad of Python interview questions, but it was mainly related to presenting Python skills in QA Tester resume. Now the time has come for the coding interview questions and the most simplest query - swap values of two variables! Quite likely the answer would be something like
temp = foo
foo = bar
bar = temp
and this in not a Python way. In this case you could help the interviewee and suggest to swap the values without using a third variable. Most advanced tester could provide the correct answer below, but it is still not a Python way to solve the problem.
foo = foo + bar
bar = foo - bar
foo = foo - bar
The exact answer I am obviously trying to get is
(foo, bar) = (bar, foo)
and this would be a great confirmation that QA Tester has the basic understanding of Python, but of course the interview is not over yet. More Python interview question coming in the next few weeks.
Git interview questions should help QA Manager to get to know the candidate for QA Tester position and how the tester will fit in with QA team. The most easiest way to weed out candidates is to check the spelling of this distributed revision control and source code management. If QA Engineer resume refers to Git as git or GIT, throw the resume away, there is no place for blatant spelling errors in the tester resume. By the way the same applies to the spelling of Subversion as svn or Svn instead of correct abbreviation - SVN.
The next set of Git interview question are those which have a high frequency of being asked in interviews and shall identify whether QA Tester is capable of grasping the concepts involved in version control.
A little bit of version control theory:
What is Git?
Explain the difference between SVN and Git?
Why Git better than Subversion? Is it really better?
What are the advantages and disadvantages between centralized version control system and distributed version control system?
What is best Git book for newbie?
Do you know what is SHA-1?
A few practical Git interview questions:
Do you prefer to work with Git from the command line or GUI?
What is the best Git GUI client for Linux?
Have you found already the best Git GUI client for Windows?
Do you know the best Git GUI client for Mac OS X?
How would you start tracking an existing project in Git?
What command you would use to get a copy of an existing Git repository?
Write an example of any Git command?
What's the difference between git pull and git fetch commands?
Do you use Git aliases? What is your favourite Git alias?
Are you on Bitbucket, GitHub? If so, what are some examples of repos you follow? Can we see your code?
Please keep in mind that above Git interview questions contain the open ended interview questions where QA Tester can answer the questions however she choose to respond. There are no yes or no or right or wrong answers. In the same time some of questions require exact answers.
Python interview questions should not be a problem for QA Tester, who mentioned a few years of Python experience in the resume. In many companies Python is being used for for creating automated testing frameworks, for writing automated tests, build scripts, system monitoring and logging tools and so on. As result the demand for QA Tester with Python experience increased dramatically, but employees are looking for experienced testers and the hiring process becomes the challenging area.
The first area are to look for is QA Tester resume. I often see Python in summary of skills and qualifications section of the resume, but it is completely not clear how the interviewee was using Python, because there are not references to Python experience or tools anywhere else in resume or in the best case QA Tester mentions Python in education section as Udacity Online Course: Programming in Python (CS101). First things first - update your resume with a real life Python experience. It could something really short like "created and maintained server-side integration tests - Python and Selenium WebDriver running with every build (Git, Jenkins) on AWS (Amazon Web Services)", but it would help you to explain how you were using Python in your testing life. Keep in mind the interviewer will grill you for every word you have put in your SQA Tester Resume, so QA Engineer should not lie in resume about Python experience.
In the next article, I will cover Python coding interview questions for QA Testers. Stay tuned.
Automated software testing has plenty of benefits and a lot of challenges. Despite the availability of a broad array of tools for software automation Silk Test, Selenium, HP QTP, Watir and etc), almost every QA Testing teams struggle with the similar standard architecture issues. In my opinion most of the issues are due to a lack of a preparation and training for building automated software testing framework.
The most common problems with software automation are
QA Training - automation testers have to study a lot before they would able to use software test automation tools
Tests fail under change - usually automated test would break when the application under test changes. It means QA Testers have to spend valuable time to fix existing automated software testing frameworks.
Person dependency - an amazing QA Tester is in charge of the all test automation efforts, but when this person leaves the company no one would support and maintain scripts. In the best case the framework and script would be rewritten by newly hired testers, in the worse case QA Team would abandon test automation and completely switch to manual testing.
Tricky Test manager interview question may sound like : Imagine being a test manager and trying to evaluate the performance of your QA testers. As we all know staff performance reviews is a one of the responsibilities of QA Managers. Software quality assurance engineers do a wide variety of tasks, such as bug hunting, bug reporting, test planning, and test tool development. To fully evaluate the work of the QA tester, Test Manager would evaluate the quality of work on each of the tasks. As I noticed during several interviews, some Test managers prefers to focus on quantitative measures like number of bug reports or number of bug reports returned as duplicates, but in my opinion any performance review that is based on number, can be easily gamed. The successful QA manager would focus on qualitative measures while providing performance evaluation for software QA Testers like quality of test plans, test cases and bug reports. Another measurements could be the ability of SQA Engineers to research and acquire a new testing skills, attitude towards coworkers, ability to manage time effectively, capacity to respond to changing priorities.
It depends - is a correct answer on this no right or wrong Test Manager interview question. In my humble opinion, there exist no testing industry standards that cover the ratio of quality assurance testers to developers. In order to provide meaningful answer on the open ended interview question QA manager needs to know specific context. I would expect that the candidate for Test Manager position would ask these questions back:
How good a developers? Do they prefer to throw badly written code over the wall and blame QA testers for missed bugs and features? In this case QA Manager would need to hire more testers.
How much company is going to pay for mistakes discovered by customers? Probably it would be wise to spend more on hiring proper QA team members and save on the future expense of fixing bugs in the production environment.
How is the company budget? Could the company afford to hire additional QA Tester instead of another developer?