The role of testing in the development process
Quality and Testing
High-quality software consists of many different aspects, both from the end-users' and client's point of view. For example, if we take the example of a car, then in addition to having a good appearance, which is essential for most users :), other important criteria that people have for it are ease of use, ergonomics, reliability, maintenance etc. The same principle applies to software.
The following are a few examples of quality indicators which are tested during the development process:
- design – appearance, cognitive experience and usability
- functionality – meaning, functions that the software is expected to perform
- reliability – the software works without significant errors
- flexibility – the software does not age quickly and works with most browsers and operating systems
- prompt maintenance at a later stage
- best value for money
Trinidad Wiseman has its roots deep in the field of UX (user eXperience). We play an important role in ensuring the accessibility of WCAG (Web Content Accessibility Guidelines) directives, and we have conducted a lot of research on the topics as well as given lectures, written several blog posts and prepared UX audits in Estonia. When creating sizeable public sector information systems and applications (e.g. Haridusportaal, Minukarjäär.ee, the new Estonian Education Information System), it is important that the software we create undergoes agile testing and follows the accessibility requirements based on the best practices for UX and user-friendliness. As a partner in private sector projects, we have always followed best practices, including the use of agile development and testing methods, which provide the customer with flexibility and a better overview of ongoing development cycles, as well how to use Scrum or Kanban practices with JIRA software.
The product owner's contribution to product quality
The role of the product owner (the customer) in the whole quality process (incl. testing) is significant but sometimes underestimated. When creating a quality product, it is the product owner's knowledge of the basics of agile development and testing methods (e.g. Scrum, Kanban), knowledge of software development platforms (e.g. JIRA, Confluence, Asana) and active participation in every stage of the development cycle, be it agile development ticket testing or creating user stories (backlog), that may very well end up being the deciding factor on the final quality of the software. You can also read about agile development in our blog post "Water Agility".
The product owner’s contribution to user-acceptance and beta testing also plays an important role. If the owner wishes to participate in testing, then they can find all the guidelines on the web by using relevant keywords for the search. It is also possible to participate in various training programmes. If you want to participate in the quality process through testing, it is worth going through ISTQB entry-level materials, which provide an excellent overview of the basics of software testing and thus allow the product owner to contribute even more.
A good tester is independent
Let's imagine that a chef writes a review of a soup recipe that he created for his own food blog. In this case, he is missing the most important thing for an adequate assessment – objectivity. In the world of testing, this is called the "degree of independence," meaning that the more independent a tester is from the development team and the product being created, the more objective he or she is. For this reason, it is not a good idea to ask the developer of the software or, for example, the analyst who has written the requirements for it to test the software since, if we paraphrase Goethe, "We only see what we are aware of."
The product owner also does not have the necessary distance from his product and is thus unable to look at it objectively, i.e. from the end-user's perspective (although in some cases, he may be the end-user himself). Besides, the process could also be hampered by the product owner pressuring himself to save costs, which could be at the expense of usability, functionality and product quality in some cases. Quality testing is possible if the tester is independent, does not choose sides between the development team and the product owner and can place himself in the role of the end-user.
Can you do without testing?
Testing is certainly not the most important part in the software development process. The worldwide web contains a large amount of software that has never been tested by a specialized tester and does not have comprehensive documentation.
There are several reasons for why specialized testers are not involved; here are some of the most common ones:
- ignorance of the full life cycle of the software development process. Quality software = high-quality development process.
- understanding that testing is expensive. In reality, it is significantly costlier to correct errors and/or lose customers later.
- developers decide to conduct the testing themselves. The developer makes mistakes because he does not notice them in his code.
- the belief that testing can also be done by the customer's team. Everyone is capable of finding bugs in the software, but the important thing is how many important bugs remain undetected.
- the hope that the end-user will test the software himself and report any errors he finds. Unfortunately, as a rule, he stops using the software instead and leaves.
In general, all of these different phantom causes lead to the same result – a product full of errors and dissatisfied customers (end-users). In today's competitive world, there is a tendency for the most successful entrepreneurs to practice customer-centric strategies, i.e. they put their customer needs first, not the other way around. In other words, if the software, whether it is an online store, an information system or something else, does not meet the customer's expectations or in other words, it is not of high quality, then they leave, are disappointed in the developers and find a solution elsewhere. This means that the expensive software does not fulfil its purpose and the product owner’s money goes down the drain. Thus, testing plays a critical role in the development process by ensuring that the customer gets exactly what he needs – a quality product.