Have you ever gotten completely lost when navigating a piece of software? How did it make you feel? It was probably because of limited user design. Good user design in many cases is a deal breaker in order to compete in this digital age. Hence, testing reMARK’s interface against user perceptions has been an essential part of the software development life cycle process. One of the main goals with the redesign of MARK5, was to make the system quicker to adapt and easier to understand by making it more user friendly. The core technology in reMARK may be so good; however, the real value of the system occurs in the moment the user interacts with the system. To ensure users are experiencing this value, user involvement has been of great importance in the way reMARK has been tested. But first, let us dive in to the comprehensive world of software testing.
Functional vs. non-functional software testing
There are many different methodologies and ways of testing software depending on the nature or scope of the project. But, basically software testing consists of several levels within the development lifecycle, each examining the software from a unique point of view within the development process. Overall, software testing methodologies can be divided into functional and non-functional testing methods.
Functional testing is the type of testing that is done against the business requirements of the application which means that the software is tested and evaluated against compliance with its specified requirements and components. Functional testing typically covers the following testing levels:
Unit testing is the foundational level of software testing and in many cases the first round of testing. The aim of this test is to determine whether or not the system works as designed. In this phase a unit can refer to a function, individual program etc.
Integration testing allows for the opportunity to combine all of the units within a piece of software and test them as a group to see if components work together.
System testing is the first level where the complete software is tested as a whole. The goal of this level is to ensure that the system meets requirements and quality standards.
Acceptance testing is the final testing that is completed in order to determine if the system is ready for release and if it is acceptable for delivery.
In contrast non-functional testing is evaluation of a software application’s non-functional requirements. Which means the purpose is to test the readiness of a system. Non-functional requirements are typically those that reflect the quality of the product, especially in the context of the perspective of the end-user. Non-functional testing usually covers:
Performance testing measures how the software application behaves under an increasing load and finding the failure points when the tested load exceeds the limit of what it can support.
Security testing ensures systems and applications are free from vulnerabilities, threats and risk so integrity and confidentiality can be maintained.
Usability testing evaluates the end-user’s usability aspects of the software which means that usability testing examines efficiency, satisfaction, learnability, memorability and user error messages.
Compatibility testing makes sure that the application is compatible with other systems and third-party programs.
So, how did we test reMARK?
Since reMARK is a redesign of MARK5, it is fundamentally the same core technology but with new additions and functionality. Therefore, testing of reMARK has primarily focused around acceptance testing, performance testing and usability testing since one of our primary goals was to make sure that the transition from the old MARK5 design to the new reMARK was frictionless and easy for the existing customers and users. In order to do so, alpha and beta testing methods has been used to carry out acceptance testing before the software was released to all customers. Before reMARK was released for external beta testing, several new designs underwent alpha testing and thereby tested in-house by Nordic IT users. Based on the feedback collected from the alpha testers, bugs and issues were resolved to improve the experience and functionality in reMARK. After the internal tests, reMARK has undergone beta testing where a group of existing customers have used and tested the system in their own environment. Additionally, existing customers have also been performance testing reMARK by stress testing the system to determine reMARK’s reliability under heavy workloads. Through observations, usability testing has been carried out by assigning users with tasks and observing how they complete the task. This was done to get an understanding of how end-users navigate the system and functionality in reMARK.
Obviously, there are countless of testing methodologies out there and ways to test software in order to make sure that the application works with the right outcome when put into operation. However, in today’s age of the customer, building software and designing experiences with end-users in mind is fundamental. Which is why user involvement and feedback from customers has been essential and very helpful in the process of testing reMARK in order to make sure that we were focusing on the end-user’s version of acceptance and not our own.