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 | info@trinitysoftwarecenter.com
Source: www.iipgh.org