Systems Sciences Institute at IBM reports that the cost to fix a bug found during implementation is around six times higher than the one identified during design, and 15 times more costly than when found during testing stage. Can you imagine how much money can be saved with a proper testing process in place right from the initial development stages?
And it’s not just about finding bugs or code that does not work as intended by the developer. Testing is crucial to ensure systems’ performance and effectiveness, right from its functionalities and end-user usability up to how it meets final business requirements and goals. Whether it is an in-house project or a solution delivered by a partner, every software needs to be properly tested just like any new product is tried before being launched into the market.
As a project manager, you need a detailed plan. You need to establish a clear timeline for all the stakeholders, define priority areas to be checked and have accurate testing guidelines. You also need to know who is going to do the tests, which roles they will be assigned to and when they need to be freed up for this task.
As a tester, your role is just as important if not more. Being a good tester is a role on its own and whether you are doing this as a business owner, content editor, or any other role, you need to know exactly when and how you will need to test it, and which areas should you be focused on. As a dedicated tester, you need to have a clear view on the solutions requirements, both functional and non-functional. You need to understand the needs of different platform users and instill their mindset within your testing process.
Wouldn’t it be nice if this testing checklist is delivered along with the message that something has been delivered? Ideally, it should.
For any reasonable sized project you would expect the following test roles:
It may seem redundant to have a functional tester testing everything after the technical lead has approved a specific feature or functionality, especially knowing that the developers have written unit tests and done a peer review for that particular feature or functionality. However, it is important to keep in mind that developers have a different goal while testing and reviewing. When reviewing, they will make sure the code is good (and we could have a single blog post just about how we can define good code) and does what it was meant to do. But this doesn’t always mean it does what was functionally required, that it is intuitive or works in the whole of the solution. Moreover, tests are done by humans, and humans can make mistakes. This is why it’s so important to make further quality assessments throughout the testing phases.
The same goes for the product owner who also needs to do a lot of testing at the end of the line. The functional analyst could have overlooked an issue, a requirement could have been missing or after taking a look at it a change might be required.
The chain of testing is long, but very important and should not be saved on. When not properly conducted, by not detecting issues timely and hence slowing down the development, the whole solution might be jeopardized.