In this 3rd article in a series about software quality, we are focusing on the need for software testing and how to go about it. While we see a steady improvement in the state of software quality and continuity in Ghana, the need for various types of software testing is still unknown territory for a lot of businesses. But it is a risk to “go live” with any ICT system that has no guaranteed quality. The question is if all functionalities are working properly with no errors. But security in the sense of business continuity and unwanted penetrations are equally important.
Quality in Software: the case for software testing
Sometimes, an organization acquires a standard software that must be set up for its business processes, sometimes a tailor-made application is being developed for you by a software company. Whether this is a complex web application, an app, or a simple website, it is always key to have the software thoroughly and systematically tested.
In West Africa, more and more organizations rely on IT systems for their operations, and therefore software errors can cause accidents or serious losses. Often there is a big pressure to release an application and testing can be tedious and therefore expensive. Management will be tempted to skip this phase and go live with a new application quickly. Quality engineers inside your organization should therefore be actively involved and assess the inherent risks as compared to the time and money involved in more testing.
Two examples to illustrate this “value for money” approach.
A simple gaming app can go live on Google Playstore as a “Beta version” after limited testing. After that, customers will give feedback about eventual problems and the developer's team can make improvements. This will harm no one. However, when Boeing launched a new airplane with very complex pilot software, a lot of pressure was carried out to go live and a fatal software error remained unfound, leading to various fatal accidents.
As a business owner or director, you do not need to know all the technicalities of software testing. However, some basic notions are important to safeguard the go-live of a new application. After all, your business continuity may be at stake!
Very clear requirements as a point of reference: it is not possible to properly test software without any terms of reference to what the application is supposed to do. Normally, requirements are defined: if concrete user stories and features can be described, including designs of the user interface screens, it will be straightforward to verify if the new software is meeting these requirements. These can be functional requirements (“as a user, I can order a ticket for a soccer match online”) as well as so-called non-functional requirements (“if 250.000 fans of AC Milan try to order a ticket, as the system is still functioning”).
While developers are building an application, the first round of quality checks must be made. With a Code review: the first step in quality assurance in software development is a simple code review process. When a programmer has built a piece of code, one of his colleagues or seniors will review that work to check if it works, and if the conventions and documentation have been observed. After that, automated testing with the help of testing software can take place to see if the features work.
In addition, professional software testers are invited to thoroughly test the application in various ways. This can include tests on the performance of the app, penetration testing to check the vulnerability of the software for hostile attacks. It can also include integration testing. A new feature may unknowingly affect other applications or mess up a certain database. You want to be sure that the new software does not bring down your system on the Monday morning after its weekend go-live! Professional software testing can test such a large change in a test environment, a separate duplicate of your IT systems. Until that works well, the software is not allowed to be moved to a “production environment” as IT professionals call it.
User acceptance testing deserves special attention. The employees in your organization are usually experts in their own jobs and should be able to work with a new software after proper instruction. They are the best people to judge if the new product does what it is supposed to do. A certified test manager can organize and lead a project where such end-users are invited into sessions to systematically test the new software with the help of scripts set up by the test manager.
Each test round will yield long lists of bugs and wishes for improvement that should be addressed before the software can finally be released. Here too, common sense is key. There are always “nice to have” and small bugs left. With clear acceptance criteria being defined at the start of the project, these issues should not prevent the software to go live.
Indeed, software testing can look complex, but it is very necessary to assure quality while you implement new IT systems in your organization. If you do it well, introducing a new application can be safe and smooth.
Authors: Diana van der Stelt (Member, Institute of ICT Professionals Ghana) and Anthony Yeboah Asare, Trinity Software Center in Kumasi, sales director, and quality engineer
www.trinitysoftwarecenter.com | [email protected]