We design and engineer software, and a considerable part of the build process is testing. It is comprehensive, with the following being just 8 of the many testing types and phases. This is by no means an exhaustive list but important to consider when developing software.
1. System Testing Checking whether the end-results match the desired goal is all part of System Testing. This phase covers a host of testing types, including functionality and integration. System Testing is especially necessary for testing whether software is fit for use & fit for purpose. During this level of testing most bugs are encountered whilst the Test Team execute a series of positive & negative low level functional tests. As an example several third-party retailers on Amazon suffered the effects of a software glitch that priced their products at 1p. The retailers were making use of Repricer Express software that experienced a bug, causing an expensive failure for the online outlets. Such bugs may be caught early if appropriate software testing is carried out. 2. Usability Testing This phase is exactly what it says on the tin! Usability Testing can span both System Testing & UAT. Usability focuses on whether the application is easy to use and learn. It is also known as User Experience (UX) Testing as a handful of the target audience explore the application to see if it is user-friendly and seek to Identify problem areas within the product. It’s all well and good building an impressive system, but if the consumer isn’t consulted, it could end up not fit for purpose and buried in the technology graveyard, between the Microsoft Band and Google Nexus Q. 3. Compatibility Testing During this period of testing the application should be tested in different devices (mobile, tablet, games console…), browsers, screen sizes, and OS versions. If it’s a mobile app available on Android and iOS, you would need to ensure it runs smoothly on both. Test across various device vendors too, as one Android device isn’t the same as the another. 4. Services Testing In this phase, you would test the services of the application, both online and offline. Does it behave in these environments as you would expect? Tests involve checking if you can force parts or all of the system to start, pause, resume, or stop, or if any relevant content is accessible offline. For example, when using map mobile apps, you can use a network connection to plan the route, and then continue to follow the route offline. 5. Low-Level Resource Testing Tests in this phase include testing of memory usage and auto-deletion of temporary files. Testers study if the product functions using various web connections, such as 3G, 4G and restricted Wi-Fi. It’s also important to consider the storage of the device and whether low storage space obstructs application usage. 6. Installation Testing This phase focuses on how successfully the application installs and uninstalls. If there are any problems for users during the installation process such as missing required components (i.e. you need .net framework v4.8) then the product may be dismissed entirely. Also, testers need to check that uninstalling the application removes all files/folders. It’s essential not to forget testing deployed upgrades to software too (both partial and full). 7. Security Testing As you can imagine, another vital phase in the testing process is Security Testing. Tests include ethical hacking and security scanning. This stage is imperative to protect the product and consumers. The software can encompass magnitudes of intellectual property and personal user data. Facebook is infamously known for several scandals, including storing passwords as plain text files which left passwords exposed to as many as 20,000 Facebook employees. Security tests assist in flagging the lack of encrypted data and other security issues. 8. User Acceptance Testing Commonly referred to as UAT. UAT focuses on executing positive tests based on the initial requirements set be the customer. In traditional software delivery, this is the final type of testing performed against the application before go live. Testing should ideally be performed by the users of the final application. This unlike System Testing UAT follows routes through the application. The application being tested should be in a like live state both in terms of software & hardware configuration. Failures in systems can cost a lot of time and money. They can also damage relationships if consumers lose trust in a brand. Keep the above 8 essentials in mind to help test software effectively. For more updates and news on technology, explore HoloViews and follow our social media.