CSE 270: Software Testing - Reading Material

7.2 Software Testing Perceptions and Conclusion

At the end of this book, it may have surprised you how much is involved in the discipline of software testing. So many people begin their journey with careers in computers thinking they will be software developers or computer scientists, and overlook the field of software testing. But software testing is a vastly important aspect of software engineering and people can make a very good living doing this.

The perception that software testing is not considered as desirable as software development can be influenced by various factors, and it's essential to recognize that these perceptions may vary among individuals and organizations. Here are some common reasons that contribute to the perception:

It's important to note that these perceptions are not universally applicable, and the software testing field has evolved significantly. More and more, software testing is recognized as a critical aspect of ensuring software quality, and there is a growing understanding of the importance of skilled testers in the development process.

To address these perceptions, organizations and the industry as a whole can take affirmative actions in a variety of ways. For example, a software development companies can:

By addressing these factors, the software development industry can create a more balanced perception of testing as a valuable and rewarding career path. Both software development and testing play crucial roles in delivering reliable and high-quality software solutions.

Conclusion

At the end of this textbook, let’s review again how far we’ve come.

You now understand the importance of software testing and how it fits in with the overall development of software. You understand the “shift-left” mentality and how software testing should appear in every stage of the software development life cycle. You learned about the testing pyramid and how unit testing, integration testing, system testing and acceptance testing work together to ensure the quality of a delivered software product.

We also talked about functional testing and many of the techniques and methods that go along with it. We’ve discussed the importance of regression testing and how to minimize the impact of this resource intensive testing. We also learned about non-functional testing, how we focus not just on what the software does, but how well it does it. We’ve covered topics like usability, compliance, performance, resilience and all within the context of managing risks.

We have dipped our toes in the vast lake of automation engineering and explored some of the tools and techniques used in this field. We’ve explored the benefits of a CI/CD pipeline and come to understand how testing is an integral part of the automated deployment process.

Finally, we have covered how to make a successful career out of software testing and explored the ancillary skills needed to round out your skills. For many students, the study of software testing is part of the journey of learning to become an effective software engineer. For others, this may open your eyes to another possibility that you hadn’t considered before. In any case, I thank you for joining me on this journey to learn all about this important field of software engineering.