Online Systems QA Testing 2018-07-09T11:21:51+10:00

Online Systems QA Testing


iTech Labs has been conducting Quality Assurance testing for online systems for many years for customers worldwide. Our Quality Assurance testing is aimed at enhancing the software provider’s internal quality assurance testing, software user acceptance testing, customer’s user acceptance testing and/or pre-certification testing.

These cost effective software testing services are provided by our software test labs in Australia, Europe and Asia.

Quality Assurance Testing/Software User Acceptance Testing Scope

This software quality assurance testing is conducted against specifications or against test scripts provided by the software provider or end user. Our software quality assurance testing will normally include the following: ease of use, reliability, performance, disruptions, emulations, simulations, and more as required. The aim of our Quality Assurance Testing/Software User Acceptance Testing is not only meeting the specifications, but also meeting the customer’s business requirements.

Pre-certification Testing Scope

Pre-certification testing is conducted primarily against applicable standards. However, our software testing will also include: specifications, disruptions, emulations, simulations, and more as required. The aim of our Pre-certification testing is to ensure that the software is compliance ready, thus reducing the time and cost involved for subsequent software compliance testing.

Our software testing will include any combination of the following as required:

  • Unit testing
  • Functional testing
  • Regression testing
  • Emulation testing
  • Simulation testing
  • Integration testing
  • Performance testing
  • Mathematics/strategy evaluations
  • Application security evaluation
  • Browser and OS compatibility testing
  • Mobile testing (iOS & Android)
  • Source Code Review
  • Documentation review
  • Test Scripts Generation

For more information on Quality Assurance testing, please visit our QA site:

Unit Testing ensures that we find any existing problems early in the development cycle. The goal of Unit Testing is to isolate each part of the program and show that the individual parts are correct. Catching bugs and software issues early ensures they are not given a chance to progress and embed deeper into your program. This saves you 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 in testing a module in isolation.

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

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

Functional Testing typically involves the following:

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

Functional Testing does not imply testing a function or method – our Functional Testing goes even further in depth, and tests a slice of the functionality of the whole system (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. Integration Testing is conducted after Unit Testing is complete.

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

Performance Testing determines how your system performs in terms of responsiveness and stability, under a particular workload. It can also serve to measure, validate or verify other attributes of the system, such as scalability, reliability and resource usage. We bring years of experience in Performance Testing to ensure 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. A Load Test is usually conducted to understand the behaviour of your system under an expected load. This load could be the expected concurrent number of users of the application, performing a specific number of transactions within the set duration. If the database and application server are also monitored, this test can point towards bottlenecks in the 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, and helps to determine whether your system 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. Browser and OS compatibility is tested 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 encompasses all measures taken throughout the code’s life-cycle, to prevent gaps in the security policy of your software or any underlying system vulnerabilities. These may have come about through flaws in the design, development, deployment, upgrade, or maintenance of the application, and are incredibly easy to overlook through 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 Attacker modifies an existing application’s runtime behaviour to perform unauthorized actions; exploited 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; attacker exploits an application without trace; attacker covers his or her tracks

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

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

Regression testing seeks 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 Regression testing is to ensure that software changes have not introduced any new bugs in related modules of your software.

Regression testing is performed to test a system efficiently, by systematically selecting the appropriate minimum set of tests, instead of re-running previously completed full tests. This 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 an independent test lab. Source Code Review generally involves 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. We provide manual, as well as automated analyses of software.

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