When a pre-defined working product is customized to meet the client requirements, changes to the existing product, proportional to the extent, may induce errors in the modified product. Testing is essentially planned to identify these functionally weaker areas.
Unlike in sectors such as manufacturing or banking, where the product design is pre-validated with detailed specifications, retirement industry solutions have varying expectations from the end users, based on usability. Low level product specification is not always available. Domain knowledge is very essential in testing such products as it imperative to understand the end user’s point of view.
An incremental and iterative approach of development is followed, which enables enhancement of the product by covering changes in every feature and the data flow between each integrated module. Though testing is done at every iteration built, test analysts put considerable effort into ensuring that quality is not compromised. Every iteration has code changes in the system or application that may have impacted the existing functionalities. This requires thorough testing of the entire system to ensure that no defect has been injected.
Regression testing has become essential after every iteration. Planning and estimation should factor in the regression effort and sufficient buffer for any defect fixes required.
There are also some other challenges in testing the products developed in this manner. While testing the current build, defect fixes for the previous builds are released to test. This will again require testing of the failed condition along with some relevant surrounding scenarios, which would be required to close the defects. This is a repetitive and time-consuming task for testers.
Multiple approaches are followed to improve the overall product quality and to achieve a minimal defect or, essentially, a zero-defect product. Some of the vital attributes are listed below:
• Understanding the end-to-end requirements and arriving at test conditions to verify all possible scenarios in each functionality.
• Defining the test data which can be used, so that all positive, negative, null and boundary conditions are verified.
• Ensuring test environments and prerequisites are set prior to testing, by simulating an environment close to production.
• Checking all the interfaces to the application and testing the inbound/outbound data to these integration points.
• Validation of data security by performing security testing to ensure there are no vulnerabilities in the system. Other security checks including authorization, roles and access levels, log verification of transactions and errors messages, PII data verification via querying.
• Performance and load testing of the application to meet real time load conditions by setting realistic benchmarks, and tuning of codebase to operate as per the standards.
As quality control happens via multiple dimensions it requires adequate time and resources. To minimize these factors, automation is considered as an additional support. Automation of certain identified areas of testing is a proven method to reduce repetitive and time-consuming tasks.