“Quality is never an accident; it is always the result of intelligent effort.” – John Ruskin
In 1962, the Mariner 1 rocket with a space probe was headed to Venus. It diverted from its intended projectile shortly after launch. Mission Control had to destroy the rocket 293 seconds after the launch. Resulting in a loss of 18.5 million USD. AT&T saw a 9 hours of complete network shutdown in 1990. This resulted in 75 million phone calls missed and 200 thousand airline reservations lost.
There are many such stories, where the software programming went wrong or a bug created huge losses. That explains us the importance of software testing. At CitrusPay, testing is a crucial step in all software development.
The checkout products undergo multiple rounds of testing and tested with various types of tests.
Unit Testing – This test is run by the developer team. It follows the White Box Testing, where the developer will check the source code like statements, methods, interfaces etc.
Functional Testing – These tests are run by the testing team. This is to check the functionalities of a module or a product. The tests are run aligned to the design documents, requirement specification and use-cases. This is a black box testing type and doesn’t require internal working of the software.
Regression Testing – Functional regression testing is carried out by the testing team and development team performs the Unit regression testing. This test determines if the bug fixes, recent code change or addition of new features affects the existing code’s behaviour. For instance, when we implement a new feature like UPI to our In-Context payment solution. The regression testing will be done to test if overall and old features work fine.
Load Testing – This is done to check the product’s behaviour under normal and peak load conditions. It is tested against huge amount of requests to evaluate system’s behaviour under immense load. This is highly important since there are many instances when the payment gateway can face high load of payment processing. For instance, during a flash sale. The number of requests can be immense and we make sure that the payment gateway doesn’t create any error.
Security Testing – Security testing is done through a separate specialized team of testers. The testing ensures the product/program’s safety against internal and external threats by humans or softwares. The tests check the software’s authorization, authentication mechanism. How well is the data secured and how well is the data integrity maintained. It is also tests the defence mechanism of the product/program when under attack. By default, this is the most important test performed on our payment checkout solutions. Data security is our topmost concern. The private data like card details are saved with the payment gateway i.e. us, since we are authorized under the PCI DSS compliance. Thus, security testing is crucial.
Sanity Testing – These are quick tests performed to get the pulse of the system. It is an evaluation of the software, network, environment, technology, security and overall software environment.
Soak Testing – This testing is run to determine system’s performance over prolonged usage. The tests might run from a few days to a few weeks.
Smoke Testing – Smoke testing is done to identify integration or any major problems, early in the cycle. It is a broad test run on the system to determine if the system is fit to undergo, further in-depth testing.
Compatibility Testing – Compatibility testing checks if the software works on various hardwares, operating system, web servers, application servers, databases, processors, bandwidths, emulators, browsers, browser versions etc. This testing is done by the testing team. As a payment solution provider, we provide solutions across various operating systems and devices. For our checkout solutions to work robustly, each checkout solution should be made compatible with numerous environments.
At CitrusPay, we run both manual and automated tests. There are multiple tools used across various platforms for testing. Some of the testing tools used are – JMeter, JUnit, Selenium, Calabash. We also run our own automated scripts for tests.The product/module testing is carried out in multiple stages. Apart from various testing rounds of each testing type, the overall product testing follows a testing schedule like this.
- Firstly, the API integration is tested. This is the product testing through various testing methods mentioned above. Along with the network activity, time taken and response received on the API/SDK integration.
- Further, the UX is tested to adjust and enhance the user experience. This is done for both the merchant’s dashboard and checkout option UI/UX.
- Finally comes the operations. The operation testing covers likes of merchant transaction settlement and mapping files. This is to test proper functioning of the processes run between the merchant and CitrusPay.
Testing is as important as innovating the payment solutions at CitrusPay. Testing is carried in various rounds and bugs are fixed after each round of testing. With rigorous testing methods and schedules, we make sure that the payment solutions we provide are robust and secure.
Have an unresolved issue in your code? Get is resolved on the CitrusPay Developer Forum.