Today, I like to discuss another career for senior SDET which is becoming professional tester. In many company, we call testers as QA (Quality Assurance ), QA exists long before Microsoft have the SDET role. You may wonder what is the differentiate between QA and SDET? Are our SDET quality assurances?
Let me use the definition of QA at here to start our discussion:
QA stands for Quality Assurance and is the framework that ensures development and manufacture of products such as pharmaceuticals, agrochemicals and medical devices are performed in compliance with regulatory requirements.
It's a career that requires the individual to grow, implement and continually improve quality systems and, no, it's not just a.n.other job. In fact, this is a job like no other.
A career as a QA professional means you get a real opportunity to influence working practices and improve standards of quality. It's a position that offers a multitude of options for personal and professional development with a variety of roles available through different projects, processes and locations. It is a genuinely responsible position that requires individuals of real caliber.
As you can see from the above definition, QA is a professional, such as dentist, teacher and it need it’s own skill. During my whole career as tester, I follow many QA professional's blogs. They are James Bach, James Whittaker, Elisabeth Hendrickson, Cem Kaner, Harry Robinson, and many Test Architects inside Microsoft. They teach me what is software testing, why we need testing, and how we do testing. So what is the common between them? They are both the best QA in the world. They all have very deep testing knowledge, such as model based testing, Exploratory testing, testing in production, scenario based testing. They invented and socialized these ideas, and share to our testers. It was amazing to see how many great testing techniques we have now and how the techniques changes from time to time.
As you can see, coding skill is not a significant factor when it comes to the QA professional, and testing does. On the other hand, SDET is one kind of software engineer which specialized to test automation. SDEs writes code to make production, SDETs write code to automated tests. Coding skill is one of the most important skill our SDET should have (I would expect that you will not be hired as SDET if your code skill is not strong enough).
However being SDET does not prevent you becoming a QA professional, but you have lot of chances to be succeed. During our daily work, we have a lot of opportunity to learn new testing methodologies and use in our project and master it. Having a deep understand testing methodologies, and being able to use them in your testing strategy is very important for testing a project successfully.
So How can we qualify as a professional QA? You must
1) know and use general testing methodologies, such as model based testing, exploratory testing, UI testing,
2) have deep testing knowledge on some areas: such as performance testing, web, mobile application testing, security testing (or a security expert),
3) are familiar with some testing tools, such as NUnit, MsTest, Selenium or commercial QA tools, such as HP Load Running, or VSTS Load testing,
Let me explain that why we need the second and third skills to becoming a professional QA. When A company want to hire a QA, they usually have a clear defined expectation of what kind of QA they want to hire. Because the testing methodology for different area/field might be significantly different, so QA tends to be specialized, some QA know deep about security testing, some QA have experience on web design. Company wants people have experiences in the certain area and be able to address their immediate need. For example, when working on a web site, we might want people who know performance testing, and web infrastructure to help to testing the scalability of the web site. If the people knew popular web testing tools, that will be a big plus. For example, if you know we Selenium, one of the most popular Web UI testing tool, it will give you a big advantage on the job market. Working on big company like Microsoft, giving you both advantage and disadvantage. In term of the advantage, you will have chance to do different kind of testing, and grow your skill. On the other hand, you might use in-house testing tools (not public available tools). You also might only work on testing a small part of the system (i.e., you are too deep on functional testing on the small component), but less chance to testing the whole system. Having said that, if you have very deep knowledge on some area, such as security, or performance, you will have better career in the future.
Another important skill to becoming a QA professional is not about having testing skill, but other skills. Imaging that you want to pursue a career in a smaller company or a start up, having only testing skill might not ensure you have a job. But if you can do other works, such as automatized build, setup web server, create deployment script, etc, you will have better chance to be hired (because you might not do testing all the time, so if you can do many things at the same time, you are a great candidate).
Why we should be professional QA, why not just being SDET forever? Being a good SDET requires both coding skill and testing skill. However, we need to choose an area to be focused on, either coding or testing in the future. It really depends on whether you are passion about software testing ,and whether you want pursue it as a career. If you enjoy testing itself, becoming a professional QA is a good career. Also, having both coding skill and testing skill is one of the strong point when you apply QA position in other company. On the other hand, I do see many SDETs are not happy with today's job, and I think the root reason is that they have the engineering root, and not like testing. If you are really like coding, switching to dev or do more test automation, test library development might be your focus. In the past, we used to have a separated two separated role: SDET, STE, and many Companies, such as Amazon, Google have similar roles as well. I believe this might help us in the long term as well.
One thing we might be noticed is from the above definition, we know Quality Assurance is a career for many industries, not only for software field. For example, in car industry, QA in charge of examining whether the car we made meet the quality bar. Unfortunately, QA in software industry is still not mature enough. Today, very little college have QA as a major or have a software QA degree. Many of us choose SDET as our career because we are hired as SDET, but not we like testing. We saw lot of blog posts and articles about tester (SDET)’s career inside and outside of the company, and we will continuous to see this happens in the near future. It is just because testing as a professional is not mature enough, and I can predict that there will be lot of changes soon (such as Combined engineering in Bing team, Testing in production shift tester’s role into more service monitoring/operation area).