It’s a common perception that quality assurance in software is mostly testing, and that a lot of the testing is manual testing. However, this is only a fraction of what QA specialists deal with. Let me explain how various technical skills can boost your performance as a quality assurance expert.
It’s a common perception that quality assurance is mostly testing, and that a lot of the testing is manual testing. However, this is only a fraction of what QA specialists deal with.
Q stands for quality, which means that a QA specialist has to be up-to-date with software trends, revelations, nuisances and of course with the newest equipment available. They need a strong reference point regarding quality. On the other hand, A stands for assurance, and one cannot assure anything without knowledge.
What is automation and how can one automate their checklists/scenarios?
Automation means programming a user’s interaction within a particular application. For each application, the QA specialist makes a checklist for themselves to regularly check the application’s functionalities. Oh wait, does this sound like a long and boring process? Yes, it becomes an extremely lengthy task. Fortunately, there are tools to help us with this task. Among them are programming frameworks such as Capybara and Cucumber.
Here's a Capybara code sample:
But why do we do this? Can’t the QA folk just click around the application over and over and over again? Well, the more the human QA clicks, the greater the probability that they will omit or forget about something. It’s like vacuum cleaning an apartment - there’s always a chance that you’ll miss a spot or two! Scripts or programmed tests do not make such mistakes, for they are programmed not to. I do not want to sound too dehumanized, it is just a way to make one’s job easier!
Other methods of Automation
Moreover, there are methods other than Capybara/Cucumber. There is Selenium IDE (integrated development environment). There are several ways you can work with this tool. The first is very simple: you click record, then you perform the desired scenario manually on an application being tested and then you click stop. Sounds easy as pie, right?
The second requires a little more experience - you can program your steps using simple Selenium commands. The syntax is not complex. For example, if you wanted to check if a desired comment is displayed on the page you open, you simply use the command
verifyElementPresent and enter the desired element’s ID. What are the prerequisites for learning Selenium scripting? Just an intermediate command of English, for the syntax consists of simple and intuitive commands in this language.
Here's an example Selenium IDE piece:
Insights into UX design
Have you ever experienced using an application that was awfully designed? One which was not very intuitive and one that requires too much learning before you can use it? If so, it likely means that proper UX practices were not adhered to during the development process. At Netguru, QA team is more than welcome to present their UX/UI suggestions. Why? The reason is simple - we have a lot of experience in the field because we play with (and destroy) many, many applications. It does not mean that we make designs, but rather we can tell from the perspective of a future user what is good and bad about a particular design, and why. And the ‘whys’ matter the most - for well-explained changes are the easiest to apply.
How QA teams can benefit from basic programming skills
No no no, you do not have to know how to code in order to be a good (or even a great) QA specialist, but you might need it in order to be one of the best out there.
Why? Writing tests is basically programming. Wait a minute - the above scenario looked so simple! That was one of the easiest to code - as you progress with automation tests, you will need to understand basic programming (in our case: Ruby) and HTML/CSS. What for? It’s a huge help when writing tests, and as you make progress, you can develop more and more complex scenarios.
Why such emphasis on automation? I’m not a pro myself (not yet, anyway!), but I can tell you that it is the most useful skill for making a QA job easier. For example, when a new version of an application I am testing comes out, I know that all the test cases are covered by my previous tests, so I don’t have to test them manually as I would if I did not write tests. Moreover, it improves communication between the QA team and developers. The more technical knowledge the QA worker has, the more they understand about the product they’re working with.
Here are a few links worth reading for (future) automation testers:
- Introduction to Selenium IDE
- Using Capybara with RSpec
- Capybara cheat sheet
- Software Test Automation Tools
Would you agree that technical knowledge and skills facilitate quality assurance? Tell us your thoughts in a comment and share this article to your QA folks and give them some food for thought!