Lessons Learned as a Tester: Insights and Strategies for Successful Testing
Lessons Learned as a Tester: Insights and Strategies for Successful Testing
What is the role of the tester for a project?
It may seem to be obvious and trivial at a first glance, but it’s not. The missions performed by testers depend on the industry, the organization, the skills of the people on the team, and the project and product context. The way in which the tester’s role is carried out varies depending on the risks related to the product and the project, and the software development lifecycle model selected. Probably you will be affected by the choices made by the manager and other clients. If they are not clear about their plans or they design a product that’s hard to test, your test project could be crippled.
I think that it is important to clearly define the role of the tester. When you are clear about your role you have a foundation for setting expectations in any situation that may arise. Even though it is hard to have a clear and appropriate role.
I want to let you know what you need in order to do your job perfectly. I have read a book[1] as its author mentioned we don’t expect anyone else to read it. That’s why I try to provide all information about the role of a tester in that book here and highlights the key lessons so that as a tester you can gain a better understanding of your responsibilities and how to effectively perform your job.
Here are the lesson learned to define your role as a tester:
Lesson 1: You are the headlights of the project
A project is similar to taking a journey. Some are straightforward and easy, like taking a trip to the store in broad daylight. However, many projects are challenging and complex, like driving a vehicle off-road, in the mountains, at night. These projects require guidance and direction. As the tester, you are like headlights on a vehicle – you illuminate the path ahead and provide critical information that helps the project team make important decisions. Behind those details, though, is a common factor. Testing is done to find information. Critical decisions about the project or the product are made on the basis of that information.
Lesson 2: Your mission drives everything you do
The mission of a tester can vary depending on the industry, company, project, and team. Test plans can also differ in format and content based on the organization’s approach to testing. As a tester, you should have a clear understanding of your mission and align it with the expectations of your manager and other clients. Do you know,
- What is expected of you?
- What should you do when you don’t know what to do?
It is important to negotiate and clarify your mission with your manager and address any disagreements promptly. You should also review your mission regularly to ensure that you are addressing all aspects of the testing problem and not focusing too much on one specific area.
Lesson 3: You serve many clients
Testing is a service role and as a tester you have multiple clients with different needs and priorities. You serve your clients by providing accurate and timely information and ensuring that the product meets their needs. Some of the clients that you may serve include project managers, developers, technical writers, technical support, marketing, top management and stockholders, and ultimately the end users.
It is important for you to understand the pecking order of their clients and prioritize their efforts accordingly. You should also strive to build good relationships with your clients and act as advocates for the end users.
Lesson 4: You discover things that will "bug" someone whose opinion matters
The tester’s mission includes identifying and reporting any issues or concerns that may negatively impact the value of the product as perceived by the clients. It is the tester’s duty to inform the clients of these issues, even if they may be uncomfortable or unpopular, and it is the client’s prerogative to decide how to respond to the report. The main point is that as a tester you should be thorough in your testing and report any potential issues that may impact the clients’ perception of the product’s value.
Lesson 5: Find important bugs fast
One of the main goals of testing is to find important bugs as quickly as possible. To achieve this goal, prioritize testing efforts in certain areas, such as:
- Testing things that are changed before things that are the same.
- Testing core functions before contributing functions.
- Testing capability before reliability.
- Testing common situations before esoteric situations.
- Testing common threats before exotic threats.
- Testing high-impact problems before low-impact problems.
- Testing the most wanted areas before areas not requested.
In order to find important bugs fast, as a tester you should have a good understanding of the product, the software and hardware it interacts with, and the people who will use it.
Lesson 6: Run with the developers
A key part of the tester’s mission is to support the developers by providing timely and efficient feedback on the code they are building. This includes testing the code as soon as it is delivered and retesting it after changes are made. The goal is to have a quick feedback loop where the testers are able to identify bugs quickly and the developers are able to fix them in a timely manner. The ideal situation for a tester is when the developers are so busy fixing the bugs found by you that they become the bottleneck for the project.
Lesson 7: Question everything, but not necessarily out loud
Questioning is a fundamental aspect of effective testing, but asking questions out loud can be provocative and put people on the defensive. Instead, questions can be asked in a more subtle way, such as through internal reflection, and if as a tester you find yourself testing without having any questions, you should take a break and reflect on your approach. The main point is that testing should involve questioning everything in order to gain valuable insights and improve the quality of the product.
Lesson 8: You focus on failure, so your clients can focus on success
Testing is the only role on a project that does not focus on success. Instead, testing is focused on finding failures or defects in a product. This can be a negative and difficult task, but it is necessary in order to improve the product and make it more successful in the marketplace. It would be a mistake to redefine the testing mission as one of verifying that a program works, as it is impossible to prove that a product works without running every possible test. Instead, the focus should be on finding key problems in the product and helping the project team to improve and make the product more successful.
Lesson 9: You will not find all the bugs
It is the tester’s job to find and report significant bugs in a product, but they will not be able to find all of them. This is because it would be impossible to look everywhere a bug could be, in every different situation that could arise, and have a foolproof way of recognizing every different kind of bug. As a tester, you have to make choices about how to spend your time and accept that you can’t do everything.
Lesson 10: Beware of testing completely
It is important to be aware of the concept of “completeness” when it comes to testing. Saying that a certain part of the product will be tested in a certain amount of time can be interpreted to mean that every bug will be found in that time, which is not always the case. The definition of “complete” can change throughout the project and it’s important to clarify what is meant by the term. As a tester, you should share details of the test process with clients, and explain what testing is being done and why, as well as what testing is not being done and why. This helps to prevent miscommunication and to defend yourself if blame is placed.
Lesson 11: You don't assure the quality by testing
As a tester, you play an important role in the quality assurance of a project, but it’s important to remember that quality assurance is a team effort and not solely the responsibility of the testing group. Your job is to provide information and feedback that helps the entire team produce a high-quality product, but it’s important to understand that you don’t create or take away quality on your own. It’s important to work collaboratively with the team and not give the impression that you are the only one who cares about the quality of the product.
Lesson 12: Never be the gatekeeper!
As a tester, you should not have veto control over the release of a product. Giving you this power can lead to a lack of responsibility from the rest of the team and you being blamed for any bugs that slip through. It is better to use a consensus approach where the decision to release is made by the entire team and not just you.
Lesson 13: Beware of the not-my-job theory of testing
Another temptation to say “not my job” comes when you’re placed in a difficult testing situation. Where some testers adopt a narrow view of the testing mission and think that their role is only to find variances between the product and the specifications. However, it is important to take a more expansive view of testing and inform the team about any issues that could adversely impact the value of the product. This includes usability issues, requirements issues, data quality, and supportability concerns. Additionally, it’s important to remember that testing is complex and interconnected with other project activities, thus an excellent test team should be diverse, and understand the whole equation of the product, including how it will be designed, manufactured, marketed, sold, used, serviced and upgraded. As a tester, you should also make a reasonable effort to adapt and improvise in difficult testing situations, rather than refusing to test under those circumstances.
Lesson 14: Beware of becoming a process improvement group
As a tester, you should be careful about becoming a process improvement group. While it may seem logical to focus on preventing problems rather than finding them, it’s important to keep in mind that process improvement can be emotionally charged and may not always be received well by the rest of the team. It’s important that any process improvement effort is a whole team effort and that you resist the temptation to “elevate” the test team into a process-critical society. This could lead to negative consequences and make you look incompetent.
Lesson 15: Don't expect anyone to understand testing, or what you need to do it well
Testing is a complex process that requires specific resources and conditions to be done effectively. It is important for the testers to communicate their needs to the management and development team to ensure that they are able to perform their job effectively. However, do not expect others to understand or have knowledge about testing. It is the responsibility of the testers to educate and explain the testing process to clients and team members. It is important to be proactive in communicating needs and potential impacts of decisions made by management and developer on the testing process, as they may not be aware of how their actions affect testing.
Key Takeaways
In conclusion, the role of a tester is not as simple as it may seem, and it varies depending on the industry, the organization, and the project context. The key to successful testing is to clearly define your role, negotiate and clarify your mission with your manager and other clients; prioritize your efforts according to the needs of multiple clients and based on the risks related to the product and the project; work closely with developers; strive to build good relationships with many clients; and report any issues that may negatively impact the value of the product. To find important bugs fast, a tester should have a good understanding of the product, software and hardware, and people who will use it. Finally, questioning is a fundamental aspect of effective testing, but it should be done in a subtle way to avoid provocation. By applying these insights and strategies, a tester can perform their job effectively and contribute to the success of the project.
Reading Time: 8 minutes
Don’t miss out the latestCommencis Thoughts and News.
Çiğdem Aldan / Senior QA Engineer
[1] Kaner, C., Bach, J. and Pettichord, B. (2002) Lessons Learned in Software Testing, John Wiley & Sons: New York NY