A year ago I was part of a group of people, all QA engineers, trying to teach other people the art of … what else? Software testing.
And let me tell you something. You realise that you really love what you do when you spend your free time talking about that with others.
So, the ingredients:
- take a group of people, with no or with low experience in software testing
- set the goal to teach them the basic stuff they need to know to be able to get a job as a junior software testers.
We have started with what testing is, types of testing, what a defect/bug is, how we log a bug, what a test case is, tips for writing good test cases and all this kind of stuff which are part of a
software tester’s life.
Thinking back to that experience, I got to the conclusion that we missed something important from our presentations. We spoken less or we haven’t spoken at all about the so called technical skills that a tester would be good to master.
I am going to make a summary of these skills without going into very much detail about each of them, because the Internet already offers plenty of good articles (which I am going to link) about these notions.
If you are working on testing a web application, this might be the first tool to put your hands on if you want to expand your manual testing techniques. Browser developer tools come with a bunch of powerful things like:
- logging information on Console panel about the development process;
- Console panel is also valuable for “catching” errors that might help the developers diagnosing the source of your problem;
- Network panel gives you insights about the requests that are being made over the network and can help you identify those requests that are time consuming;
- accessing the Application panel, you can delete the browser’s cookies so that you “force” the application to load the resources from the server and not the ones saved in cookies;
This practice should be a common one in daily testing routine, as log files give you, as a tester, a good insight of what events are being logged on the server during the client-server communication.
I have seen situations during my work experience when the system under test wasn’t offering the expected output and the only way to identify the source of the problem was to check the server’s log files.
What you need to do is to connect to the server’s running machine, navigate to the root folder where the log files are stored and using basic Linux commands like tail you can easily monitor the activity from the log file.
There are situations during the testing activities when we do not have access to the UI, or the application under test has no UI, just back-end services. So, we need to go under the hood and search for the information in the database.
Or, in the case the application that has a UI part, maybe we just want to check that the data that the user sees on the UI matches the information from the database.
It is good for a tester to understand the basic concepts of version control, how the source code is managed and how it changes over time. The most popular tool for versioning is Git.
By mastering the version control concepts such as repositories, feature branches, pulls from branches, you can facilitate as a tester an immediate access to the source code and be able to do a part of the testing activities before the code is merged into the main branch.
It happens sometimes that you need to test your application on several browsers supported by different operating systems. What do you do then? You can’t have so many PCs or laptops (or mobile devices) supporting all the operating systems that you need, right?
Besides of being a lot of time spent in configuring all these environments for testing, it would also be very costly.
You can do this by using virtual machines to mimic the configuration that you need for testing.
That’s it! Use your creativity, imagination, logical thinking and all the weapons I have talked you about and do the #HappyTesting!
Photo by Glenn Carstens-Peters on Unsplash.