Early in your career, you – as a novice tester – probably concerns considerably about what you should do to become a great tester. As a newbie, you certainly want to learn what a great software-testing professional is doing in real life. And you can grow yourself from those lessons. In this article, I would share some practical tips, which I hope they can help you to advance your career, as well as to prevent you from getting lost on the journey to become a great tester.
1. Understand the Myths
Many people think, “software testing is an easy job and everyone can do this career successfully.” You should get this attitude out of your mind. A few developers often asked me whether they should change their career to testers, based on the belief that a programmer job is more challenging than testing. They wanted to take an easy job while still receiving handsome salaries and good benefits. Although there may not be anything wrong in having such an expectation, their thinking was based on a misconception. In reality, however, testing requires a lot of knowledge and a variety of skills such as software development life cycle, out-of-the-box thinking, testing techniques, technical skills, personal and leadership skills, and others. Obviously, developers with some technical knowledge and programming language skills probably have advantages to take a testing job. Yet, the thought that “testing is an easy-to-do job” is completely incorrect.In connection with quality assurance, no matter how many tests you execute, you cannot ensure that your software is bug-free. Your main responsibility is to explore the system under test (SUT) and find out as many defects as you can, try to identify risks and provide your assessment and suggestions, instead of acting as a gatekeeper of the SUT.Another misconception is that you can achieve 100% Test Coverage. The truth is that this is impossible. Although you can use various testing techniques, define a good testing approach and spend effort of testing to reach 100% test coverage, millions of inputs and combinations of conditions are not simply possible to be covered. Having a better understanding of this will not only help prevent you from being exhausted and frustrated once testing, but also motivate you to find effective testing approaches, in order to reduce a gap between test coverage and product quality.
2. Think as an End-user
When testing any applications, you must think and act like an end-user. Think how end-users will use your application. You should not play a role reflecting the technical perspective. Before testing, as a must, you should understand clearly the requirements. Without a thoroughly understanding of the requirements, you will not be able to identify whether a SUT is functioning as expected or not. However, as you’re new to testing, it is not easy for you to think in the same way that end-users are going to use the application. To overcome this, first, you should acquire thorough awareness of the domain on which you are working by asking relevant questions. For instance, if you are testing a banking system, you will tend to raise some questions such as what mandatory functionalities related to security would be expected from the end-users, why these functions are important to them, how procedures meet their expectations. Second, you must be proactive in learning the domain knowledge via hands-on experiences and observations. Understanding the needs of end-users and business values offered by the software product will help you to come up with effective approaches to find defects. In addition, having a good knowledge of the business domain of the software product will support you in planning and performing tests more effectively.
3. Non-stop Learning new Technologies, Testing Techniques and Tools
There is no doubt that testing always requires different knowledge and skills. If you have various technical competencies such as database, networking, software architectures, you will certainly have more chances to find critical issues. Moreover, in Agile contexts, looking at the above picture – Agile Testing Quadrant defined by Lisa Crispin and Janet Gregory, manual testing is not enough. You need to have a good grasp into test automation and a variety of testing types. Without technical skills and knowledge of testing tools, it is difficult for you to deal with these testing challenges nowadays and contribute to the success of testing activities. As a matter of fact, testing is an iterative process of learning. Definitely, the more in-depth knowledge and skills you gain, the better chance you would be able to find “great” defects.
To support you in catching up with testing knowledge, here are popular resources you can refer to.:
– Community sites:
- Agile Testing – Crispin & Gregory
- Lessons Learned in Software Testing – Cem Kaner, James Bach, Brett Petticord
- How to Break Software – James A. Whittaker
- Software Test Automaton – Mark Fewster and Dorothy Graham
- Software Testing Techniques – Boris Beizer
- Testing Computer Software – Cem Kaner, Jack Falk, Hung Q. Nguyen
- Performance Testing Guidance for Web Applications – J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, Dennis Rea
– Testing Tools:
Selenium, Cucumber, Watir, Appium, MonkeyTalk, LoadUI, SoapUI, JMeter, Sikuli, TestComplete, Telerik, HP Unified Functional Testing (QTP), SilkTest, WebLoad, NeoLoad, qTest, Jira, Bugzilla, etc.
4. Don’t Concentrate too much on Concepts, Terms and Certificates
When learning software testing, you will encounter a forest of different definitions for testing terms. You likely try to find a correct definition. This effort does not seem to be meaningful. You will face a vast number of various definitions from Wiki pages, and well-known communities to famous experts’ blogs. They all seem reasonable. This somewhat causes you a great deal of confusion to know what is the correct one. After all, there are still controversies about testing terminologies. In testing reality, how you find a good testing approach for the SUT is more crucial than investing your time on these terms. In some cases, by spending significant efforts on learning syllabus, concepts and testing expressions, you may try to get several certificates such as ISTQB and CSTE. I do not refute the value of these certificates. It would be no problem if you consider these certificates nothing more than paper reports, recognizing or certifying your basic testing knowledge. However, it turns into a drawback when you take these certificates for granted that holding them would be powerful and would show that you have a solid testing knowledge. And you have a chance to promote your profile in job interviews with these certificates. Still, there is no guarantee to be eligible for a job, by acquiring these certificates. Instead of intensive digging into terms and certificates, you should spend your effort on learning practical and useful knowledge and skills such as bug detection, testing approaches, technical skills, domain knowledge, automation and performance testing, writing and communication skills, etc. Such knowledge and skills will help you to advance substantially in your testing career.
5. Build a Good Relationship with Your Teams
In the past, at the start of my testing career, when I found a defect in a feature, I tended to criticize the developer who implemented the feature. This was truly my bad attitude as I later realized. Actually, you should nurture a positive thinking attitude. Nobody is perfect and you should understand that developers always try their best to build high quality software products. As a tester, you help them to detect bugs and identify risks in the software. They share the same ultimate goal with you, and that is to produce a best possible software product. Therefore, you must have good teamwork and effective collaborations with other team members, especially developers. Building a strong relationship with team will considerably support your daily tasks rather than criticizing and making sarcasm or blaming one another. If there is a disagreement, you should discuss it with all team members to reach a consensus. You should be open-minded and don’t take it personally.
6. Find Several Ways to Motivate Yourself
It’s hard for us, as testers, to motivate ourselves. Unlike other careers, testing is sometimes a boring and repetitive task. How to keep high motivation is a big challenge. To cope with this, I just want to share my experience in motivating myself.
First, I always suppose that I am a new staff and have little understanding about testing. Therefore, I have to learn more and more and try my best in everything. Second, to enrich my knowledge, I usually try to participate in testing communities and conferences whenever I can. In addition, reading new testing articles, books or learning new testing tools helps keep myself up-to-date with testing knowledge and trends. Third, when taking a job, I have a tendency to look for the one with a lot of challenges. By doing so, I will need to come up with new initiatives and suggestions. In my point of view, the more challenges I take, the more knowledge and experience I will gain. This tremendously motivates myself. And finally, I often look around to help and support team members. When assisting others in doing their jobs more effectively, I feel better about myself, become more confident and have a better sense of usefulness. I strongly believe that these will help me bring the excitement back and recharge myself when I get bored with daily testing tasks. These are just based on my real experience. Depending on your job and circumstances, you should discover your strengths and interests to find suitable ways to keep yourself motivated.
The Guide To Software Testing is…
In attempts to become a top-notch tester, you should set on building your testing skill sets from scratch. Testing is a process of non-stop learning, ranging from domain knowledge, end-users’ view to technical and personal skills. Nurture positive thinking and be aware of testing traps. By means of these, your testing career will be much more shining with great opportunities in the future. Thanks for reading, and I hope it will help you to enjoy your testing career journey.
About The Author
Thao Vo is a member of the Ho Chi Minh City Software Testing Club. He currently works as a Testing Engineer at LogiGear Corporation.