I’m sure there’s someone out there that loves to wash, dry, iron and fold their clothes. There must be. But for most of us this isn’t the case. And yet, we do it.
Since we don’t like to do them, we try to handle these chores the best way we can, minimizing our direct involvement. We use a washing machine and a dryer, and send our ironing and folding to the local laundry shop.
The same goes for software testing. Our goal, our desire, is to create great software tools and applications. It isn’t to test. Testing is just one of the necessary means to achieve this goal. So the same way we handle of our clothes, we use automation (=washing machine) and outsource some of the testing elsewhere (=laundry shop).
Testing as a necessary unwanted chore
We must always remember that software testing does not stand by itself. There’s no testing per-se. It is always a derivative of the building, the creation of, a software tool, an application or a device. Even though we may refer to our testing as a testing project, we know that it is only part of the software project.
This isn’t just a semantic discussion. Understanding this will help us to better plan and perform our testing. Realizing the real purpose of your work, being a necessary step towards the main goal, can lead to:
- Understanding the time constraint testing has as a part of the overall project, and the implications of not meeting schedules
- Analyzing the requirements of the project, and creating relevant and focused tests, are performed at a higher level. Precise, direct, to-the-point
- Better test writing. When you don’t test for the sake of testing, and you understand why are you testing, your tests improve
- Better test execution. You know what, when and how to test if you are focused on creating the best software – not the best testing
Testing as an important unwanted chore
To create a great software tool, application, website, or any other coding-based projects, we need to take many actions, in many areas, other than coding. A software project is a combination of many parts, each requiring different expertise, different knowledge, different people. Only a combination of all of these will result in a working software, and only doing great in all of them will produce a great result.
This includes testing. There can’t be a great software, without great testing. Testing is a crucial part of the software project, important as any other part of the process. Its importance comes from its contribution to the end result, therefore any aspect of it should be managed in that respect:
- Make sure all of your testers understand that they test in order to help the main goal, the reason for the project (the software itself)
- Get all other teams (devs, designers, managers) to join the effort. If everyone understands that testing is just one part of the overall effort towards quality – of the(ir) product, they will all help
- Apply tools that help you with your testing, but not ones that were built without the main reason for testing in mind. These are tools that take too much focus, take too much time to work with, and become a goal by their own presence in the process
- Get involved in the project as early as possible (design and requirements). Not only will you better understand the expected end results, the targeted users, and the main reasons for developing this specific software – you’ll also be there to make your impact on it – making future testing easier, better and faster
- Make sure all other parties of the project also understand the importance of testing, as part of the journey of getting to that great solution. Down the road, it will help you deal with the problems and challenges that will surely come