Software Testing and Quality Assurance

The importance of Quality Assurance has grown significantly given the large scale software systems of today. The technical landscape is constantly changing and requires new methods and techniques and overall changes in approach, methodology and delivery of testing capabilities. Our focus is on full life-cycle testing which includes:

  • User Acceptance Testing (UAT) – Regular testing with the user community to verify the system meets the business owner’s requirements.
  • Regression Testing – We iteratively test existing software modules as new ones are released to ensure core functionality is always working. This will be performed by our testers and also automatically with the target CI environment.
  • Performance Testing - Conducted to evaluate the compliance of a system or software component with specified performance requirements, such as response times, transaction rates and resource utilization.
  • Security / Penetration Testing - A security / penetration test is a proactive and authorized attempt to evaluate the security of an IT infrastructure by safely attempting to exploit system vulnerabilities, including OS, service and application flaws, improper configurations, and even risky end-user behavior. Such assessments are also useful in validating the efficacy of defensive mechanisms, as well as end-users’ adherence to security policies.
  • Operational Acceptance Testing (OAT) - OAT addresses the non-functional attributes of a system. OAT concentrates on such areas such as maintainability, reliability, recoverability, install-ability, compatibility and conformance. Accessibility / 508 Testing – Checks if this system is available to all users, including those with impairments.
  • Compatibility Testing – Our professionals will test whether the application or the software product built is compatible with the hardware, operating system, database or other system software or not.
  • System Integration Testing (SIT) - We validate data integrity between the different sub-components that make up a specified system. This SIT process occurs after unit testing and before validation testing. Due to the fact that SIT concentrates on testing the dependencies between sub-components, it is often subjected to regression testing scenarios. Regression testing facilitates the addition of new test cases. From an application perspective, SIT testing focuses on access to actual data passed through the components and initial connectivity.
  • Integration Testing – Testing of integrated modules to verify the combined functionality after integration. Modules are typically code modules, individual applications, client and server applications on a network and others. This type of testing is especially relevant to client/server and distributed systems.
  • End-To-End Testing - End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish. The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems.