Online Systems QA Testing2018-06-26T12:37:21+10:00

Online Systems QA Testing

Our hard-working team of experienced testers will ensure your software is of the highest quality, and is ready for market as soon as possible.

Unit Testing ensures that we find any existing problems early in the development cycle of your software. The goal of Unit Testing, therefore, is to isolate each part of your program and show that each individual part is correct. Catching any bugs and software issues early ensures they are not given a chance to progress and embed deeper into your program. This consequently saves you from higher testing and developmental investments in the future, of both time and money. In Unit Testing, each software module, together with the associated control data, usage procedures and operating procedures, are tested to determine whether they are fit for use. We also use substitutes, such as method stubs, mock objects, and test harnesses to assist testing a module in isolation.

Unit Testing is then followed by Regression Testing after any bugs have been fixed. Followed by Integration Testing, after the successful completion of Unit Testing.

Functional Testing is based on specifications and/or applicable government regulations. This stage of testing exercises the software logic, to produce the expected outcomes for various inputs. Therefore, put simply, it ensures your software does what it’s supposed to do.

Functional Testing typically involves the following:

  • Identification of any applicable government regulations your software is expected to comply with.
  • Identification of all functions your software is expected to perform.
  • Creation of input data and determination of output.
  • The execution of test cases.
  • Comparison of your actual and expected outputs.
  • Checks on whether your application works as expected.

Functional Testing does not imply testing a function or method – it actually goes even further in depth, and tests a slice of the functionality of the whole system (which is also known as end to end testing).

Integration Testing is performed in order to expose any defects in the interfaces of your software, as well as any defects in the interactions between modules in the system. This stage of testing is conducted after Unit Testing is complete.

During Integration Testing, all modules and their interfaces are exercised. This allows the success and error cases to be simulated via appropriate parameters and data inputs. The simulated usage of shared data areas and inter-process communication is tested. Then the individual sub-systems are exercised through their input interfaces.

Performance Testing determines the responsiveness and stability of your system under a particular workload. It can also serve to measure, validate or verify other attributes of your system, such as scalability, reliability and resource usage. We bring years of experience in Performance Testing, ensuring your software is delivered to your customers at the highest level of quality possible.

Load Testing
Load Testing is the simplest form of Performance Testing. It is usually conducted to understand the behavior of your system under an expected load. This load could be the expected concurrent number of application users, performing a specific number of transactions within the set duration. If the database or application server are also monitored, this test can also point towards bottlenecks in your application software.

Stress testing
Stress Testing is normally used to understand the upper limits of capacity within your system. This test is conducted in order to determine your system’s robustness under an extreme load. Therefore, it helps to determine whether it will perform adequately if the current load goes well above the expected maximum.

Browser and OS Compatibility Tests are conducted on PC’s and mobile devices as required, to ensure that your software functions smoothly and professionally on all relevant devices. This testing is carried out on all required OS and browsers combinations. Only front end related tests are conducted during this stage.

We have many years of experience in testing on various OS and browser configurations on PCs and mobile devices, and have all necessary equipment to test on most devices, to the highest level of accuracy. Our Browser and OS Compatibility Testing can also be tailored to meet your individual requirements.

Security Testing covers all measures taken throughout your code’s life-cycle. It therefore prevents gaps in the security policy of your software, or any underlying vulnerabilities in your system. These may have come about through flaws in the design, development, deployment, upgrade, or maintenance of your application. Security gaps like these are incredibly easy to overlook through either internal or inexperienced eyes.

Common application security threats are given below:

Category Threats/Attacks
Input Validation Buffer overflow, cross-site scripting, SQL injection, canonicalization.
Software Tampering An attacker modifies an existing application’s run-time behavior to perform unauthorized actions, or exploits via binary patching, code substitution, or code extension.
Authentication Network eavesdropping, brute force attack, dictionary attacks, cookie replay, credential theft.
Authorization Elevation of privilege, disclosure of confidential data, data tampering, luring attacks.
Configuration Management Unauthorized access to administration interfaces, unauthorized access to configuration stores, retrieval of clear text configuration data, lack of individual accountability, over-privileged process and service accounts.
Sensitive Information Access sensitive code or data in storage, network eavesdropping, code/data tampering.
Session Management Session hijacking, session replay, man in the middle.
Cryptography Poor key generation or key management, weak or custom encryption.
Parameter Manipulation Query string manipulation, form field manipulation, cookie manipulation, HTTP header manipulation.
Exception Management Information disclosure, denial of service.
Auditing and Logging User denies performing an operation, an attacker exploits an application without trace, an attacker covers his or her tracks.

Security testing techniques check for vulnerabilities or security holes in your applications. These vulnerabilities can leave your applications open to exploitation.

Automated tools associated with security detection are: vulnerability scanners, penetration testing tools and code analysis tools.

Through Regression Testing, we seek to uncover any software bugs in the existing modules of your system, after changes such as enhancements, patches or configuration changes have been made in a related module. The purpose of this being to ensure that the changes you’ve made to your software have not introduced any new bugs in any related modules of your software.

To test a system efficiently, Regression Testing is performed by systematically selecting the appropriate minimum set of tests, instead of re-running previously completed full tests. This consequently saves you both time and money.

Regression Tests can be done either manually or using automated tools.

In many critical applications with regulatory oversight, critical code must be independently reviewed and then compiled under supervision of the independent test lab. Source Code Review generally involves the usage of input values, logic/parameters that determine output values, and looking for Trojan horses and malicious code. As with most aspects of our service, Source Code Reviews can be tailored to meet your individual requirements. Because of this, we provide manual, as well as automated analyses of your software.

Our consultants have enormous experience in reviewing critical code and conducting remote, supervised builds.