By Thao Vo from Ho Chi Minh City Software Testing Club
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.
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
- 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
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.
In conclusion, 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.
If you are an experienced tester, I would ask for advice you would like to suggest to junior testers. Please share it with your comments.