Organizing Testers and Testing

imagine postare

Introduction

When it comes to organizing testers and testing, there’s often a lot of debate. Do you stick with an in-house team of testers, or do you hire an independent testing team? How do you structure the testing process to ensure you’re getting the best results? These are the questions that many organizations wrestle with, and in this article, we aim to provide some clarity.

The first half of this article will focus on testing, and the second half will address the role of testers. Understanding both aspects is essential for creating an effective testing environment that ensures the quality of your product.

The Three Types of Testing

Essentially, there are three main approaches to testing in software development:

  1. Inside the project, within the development team.

  2. As an independent team providing services to the project.

  3. A mix of the two.

Each approach has its own benefits, and understanding them can help you decide which type of testing best suits your project. Let’s dive into each one.

Optimizing Testers and Testing: Achieving Comprehensive Benefits

To get the most out of testers and testing, it’s crucial to understand the strengths of each testing approach and how they can be integrated into the development process.

For example, an in-house testing team that’s embedded within the development process from the early stages has the advantage of being familiar with all aspects of the project. They can quickly spot issues and provide immediate feedback.

On the other hand, an independent testing team doesn’t report to the development team, which allows them to offer an unbiased, objective perspective. Their primary focus is identifying bugs and assessing quality, free from any internal pressures or preconceived notions.

What we recommend is a mix of the two. This hybrid approach allows you to integrate an independent test team into your project early on, ensuring that they can handle higher-level testing phases while complementing unit and component testing conducted by the development team.

If you have multiple projects requiring testing simultaneously, it’s also beneficial to assign them to the same independent team. This approach not only improves efficiency but also helps the team develop specialized skills across various projects. For more insights on this, you can refer to the ninth chapter of Rex Black’s Managing the Testing Process.

Structural, Behavioral, and Live Testing

For the most effective bug detection and resolution, a project should incorporate all three types of testing: structural testing, behavioral testing, and live testing.

1. Structural Testing

This type of testing is rooted in programming and other technical skills. It focuses on testing the underlying structure of the software, such as code quality, architecture, and performance. Structural testing is vital for ensuring the integrity of the system’s foundation and is typically conducted by developers.

2. Behavioral Testing

Behavioral testing requires specialized knowledge and application domain skills, like security or performance testing. The average developer might not have the expertise in these areas, which is where skilled testers come in. For example, a client who develops geological modeling software for oil exploration would need testers with domain expertise in geology or geophysics to properly test the system’s functionality.

3. Live Testing

Live testing involves real-world testing scenarios where the system is subjected to actual user behavior, network conditions, and live data. This type of testing provides critical insights into how the software behaves under pressure and in real-world conditions.

By using a combination of structural, behavioral, and live testing, you can ensure that your product is not only functional but also secure, user-friendly, and performant under various conditions.

Code Swapping

Another effective strategy for improving testing is code swapping, a practice that involves developers testing each other’s code. It’s a simple concept, but it can be incredibly powerful for finding bugs and improving code quality.

In this process, developers conduct unit testing on their own code and then swap code with a colleague to perform component testing. This gives testers and testing a collaborative edge and allows for a fresh set of eyes to catch issues that might have been missed initially.

Code swapping helps build a culture of collaboration and mutual accountability within the team, making it easier to find and fix bugs early on.

Good Management: A Key to Success in Testers and Testing

Effective management is crucial when it comes to testers and testing. A competent and experienced test team manager serves as both a technical leader and a people manager, ensuring that the team is working efficiently and staying on track.

A good test manager:

  • Identifies dependencies and manages changes in the project.

  • Brings people management skills, especially in hiring, training, and growing the test team.

  • Advocates for the team, ensuring that their contributions are recognized and that the results of their testing are communicated clearly.

Independent testers benefit from a manager who can advocate for them, helping to ensure that their findings, whether positive or negative, are presented in an unbiased, professional manner.

Testers or Test Team?

Some people advocate for no test team whatsoever, just testers working alongside programmers within development teams. They think that it will lead to better integration and results (a.k.a finding more bugs).

We also agree that integrating an independent test team in the early stages of development is crucial.  However, we don’t believe that testers who report to development managers will outperform testers reporting to independent test managers when measured on test effectiveness and efficiency. That is not the case.

Test positions within development and maintenance teams are often considered junior roles.

Testing provides value mainly through delivering information. Consequently, testing adds value only when people listen to test professionals. You’re more likely to listen to people with more credibility.

It also has at least two negative implications for the testing process:

1. Competence – people assigned testing roles are likely to have good technical skills but poor (if any) skills in the application domain and testing itself.

2. Career paths – temporary testers will focus on increasing skills in technology and application, but few will develop their skills in testing.

If you need further convincing on that, read the first chapter of Rex Black’s Critical Testing Processes: Plan, Prepare, Perform, Perfect.

Stay Updated with the Latest in QA

The world of software testing and quality assurance is ever-evolving. To stay abreast of the latest methodologies, tools, and best practices, bookmark our blog. We’re committed to providing in-depth insights, expert opinions, and trend analysis that can help you refine your software quality processes.

Visit our Blog

Delve deeper into a range of specialized services we offer, tailored to meet the diverse needs of modern businesses. As well, hear what our clients have to say about us on Clutch!

Share the Post:

More GoodReads