Let me tell you, I've been finding all of this out the hard way! I started casually examining the state of the software testing industry six months ago. This casual research became a mad scramble when I found myself on the wrong side of a layoff at the company I had been at for over four years. With the countless numbers of phone screenings and two or three face-to-face interviews a week I have had since early December, it is like I have enrolled in a crash course about the state of the software industry.
I have observed that there are three things that have converged in the past few years to completely change software testing as we know it:
Sources of Change in the Software Testing Industry:
1) Agile has officially become the new standard
The good news is that with the Agile Software Methodology the Software Quality Assurance team is now fully integrated into the entire software development process. [Read more about it here]
The bad news is that the DEV and QA team only has two weeks at a time to build, unit test, do code reviews, and create and execute test scripts.
The worse news is that because of the short time frame, all the regression testing you need to do just before the release of the software product to make sure that the old functionality still works while you were building in new features into the software product ... well, the time also has been rapidly condensed. The only way to keep up with the pace is to automate all the regression tests. Which means that as a QA Engineer, you are now expected to code. Fluently.
2) Automated testing tools are now cheap or free
Companies in the past that wished to introduce automated testing into their quality assurance department had to purchase expensive software packages such as Rational Rose, the Mercury Toolset or Segue Software's Silk Test. This would involve enrolling the entire QA team in expensive courses and training to get them up to speed. Now, with the introduction of free tools such as Selenium, companies can focus on either getting their old QA team up to speed or hiring a new QA team with the desired skillsets.
Selenium went from the Selenium IDE, a cute little Firefox plugin offered for free in 2006, to Selenium WebDriver, a heavy duty code library backed by Google in 2011. Selenium WebDriver can work with Java, Python, Ruby, or C# to interact directly with any web application through the Firefox, Chrome, or Internet Explorer browser and it is all offered for free. With libraries such as the Appium or Selendroid libraries, you can even write Selenium automated tests on the iPhone, iPad, or Android mobile devices.
3) Companies match Google's standards
Continuous integration is the process of automatically merging the developer's working copies of code into the main body of code several times a day.
Changes to the Hiring Process of a QA Engineer
With QA departments now looking to add programming knowledge to its ranks, there are new methods of screening potential candidates, new job requirements, and new interview techniques.
New Methods of Screening Candidates
Here are a few coding assignments I have been given:
- "Write an efficient, well documented program in the language of your choice that will return the first n prime numbers" [My solution, in both Java and Python]
- "Write a program where a user can choose an input file that contains a table, the program reads the table, sorts it by the column name the user chooses, and places the new sorted table in an output file". [My solution, in Python]
New Job Requirements
- Do you have experience in automated testing? Do you know Selenium?
- How much programming experience do you have? How much recent on-the-job experience do you have? Do you know both a programming language like Java and a scripting language like Python?
- If you know Selenium WebDriver with either Java or Python
- If you have tested using any APIs, and if you are familiar with XML feeds and JSON notation.
- If you have any experience in Javascript, Angular.js, and Node.js. If you say that you know Javascript, remember, they will quiz you on it.
- If you know about Continuous Integration with tools such as Jenkins.
New interview techniques
If you do not have experience coding, or your coding skills are quite rusty, like mine have been, you are going to have a lot of work to do. I may have earned a Masters of Software Engineering, but it has been six years since I coded on a regular basis...
... Which is why exactly I started this blog! :)
Hopefully, we can all catch up to the new standard together.
Here's to the new standards in software testing!
-T.J. Maher
Sr. QA Engineer
Quincy, MA
No comments:
Post a Comment