Core Testing Services

Functional testing.

We execute functional testing to ensure that the application functionalities are in accordance with the requirement specification. It is, in reality, black box testing and does not delve into the details of the application source code. When carrying out functional testing, the user-friendliness of the important functions of the application remain our strong focus.

For functional testing, we use either manual testing or automation tools however, functionality testing would be easier using manual testing only.

Functional testing typically involves six steps:

  • The definition of functions that the software is expected to perform.
  • The creation of input data based on the function's specifications.
  • The determination of output based on the function's specifications.
  • The execution of the test case.
  • The comparison of actual and expected outputs.
  • Check whether the application works as per the client’s need.
  • Thus, functional testing includes the following testing types:

    • Unit testing: also a module level testing, checks if individual modules work properly.
    • Integration testing: verifies that the functions responsible for the interaction between different modules work properly.
    • System testing: examines the entire functionality of the system on the whole.
    • User acceptance testing (UAT): done after the successful completion of unit, integration and system testing and is performed by the end user or the client prior to moving the software app to the production environment.

    Functional testing also includes:

    • Smoke testing: this is done after the release of each build to ensure that the software is stable and has not impacted any important functionalities.
    • Sanity testing: generally done after smoke testing, this is run to verify that every important functionality of an application is working as intended, both by itself and combined with other components.
    • Regression testing: this is an important phase of the testing activity and it ensures that modifications done to the codebase (new code, debugging strategies, etc.) do not interfere with the functions that already exist or incite any instability.

    Regression testing is required when there is a:

    • Modification in requirements and accordingly, the code.
    • Addition of a new feature.
    • Defect fixing.
    • Performance issue fix.

    Effective regression tests can be done through the selection of the following test cases:

    • Test cases having frequent defects.
    • Functionalities which are more visible to the users.
    • Test cases which verify core features of the product.
    • Test cases of functionalities which has undergone more and recent changes.
    • All integration test cases.
    • All complex test cases.
    • Boundary value test cases.
    • A sample of successful test cases.
    • A sample of failure test cases.

    We usually automate regression testing (if possible), as it contains many tests which need to be repeated in every testing session. Today, there are many tools available for this, paid as well as open source.

    Beta/usability testing

    In this phase, our clients test the product in a production environment. This stage is essential to know the customer’s comfort level with the interface. We use their feedback to make further improvements to the system.

Core Testing Services

Non-functional testing.

We use this to check the non-functional aspects (performance, usability, reliability, etc.) of a software application. It is explicitly designed to test the readiness of a system as per non-functional parameters, which are never addressed by functional testing.

Some types of non-functional testing are:

Installation Testing

This type of testing verifies the non-functional aspects (performance, usability, reliability, etc.) of a software application. It is uniquely designed for testing the system readiness as per non-functional parameters that are never addressed by functional testing.

Installation testing and test cases

We perform installation testing to ensure that all necessary components are installed properly and working as per the requirements of the software, post installation. The installation process may include partial, full or upgrade install. This activity is essential to the life cycle of software as installation is the first interaction of the user with the software. If the user experience is satisfactory, then success of the software and client goes hand in hand.

Types of installation

  • Silent installation
  • Attended installation
  • Unattended installation
  • Headless installation/network installation
  • Clean installation

Performance Testing

This type of software testing is carried out to determine system performance in the areas of sensitivity, reactivity and stability under a particular workload.

Load Testing

This type of software testing determines the performance of a system, software product or software application under real life-based load conditions.

Specialized Testing Services

For specific software requirements.

Mobile App Testing

  • Functional testing - Validation of functionalities, regression testing, offline access testing, negative testing
  • Non-functional testing - network strength / outage / recovery, peripheral testing, different network types
  • Interrupt - SMS / voice interrupt, battery / cable removal, notifications
  • Memory - memory usage, Leaks and garbage collection, review of cache and data storage mechanism
  • App performance - CPU Usage, network usage, page / screen / activity render time
  • Usability testing - user experience, how easy and convenient
  • Security testing - OWASP vulnerabilities, static code analysis, etc.
  • Localization testing - different languages, currencies, time-zones, images and text
  • Installation, uninstallation and updates testing

E-Governance Testing

E-Governance testing is used to manage volume of data, volume of users, different compliances and data security. It comprises:

  • Functional testing
  • Load and performance testing
  • Security testing
  • Usability testing
  • Localization testing
  • Cross-browser testing (if applicable)

API Testing

We ensure that in an environment where service-oriented architecture (SOA) is crucial, our client’s APIs perform work as expected in the areas of functionality, reliability, performance and security. Our API testing service will ensure this, be it APIs, web services or micro services.

Cross-browser Testing

Cross-browser testing is an integral part of any web application testing. Today, there are a variety of platforms such as, Windows, Mac, Linux, Android, iOS and on each platform there are many browsers such as Firefox, Chrome, Safari, IE, Opera, Opera Mini, UC Browser, Dolphin, Maxthon, Mercury Browser, Nokia Xpress, etc. Each browser then has many versions.

Elements of web application behave differently on each browser, even on different versions of the same browser and sometimes differently on each platform. This variability in combinations require complete cross-browser testing. Our team of experts check HTML / CSS code in each browser, different dynamic operations done by JavaScript, alignments, fonts, layouts in different resolution among other elements.

Cross-platform Testing

Cross-platform testing is necessary when software is designed and made to work on different platforms. Cross-platform testing comprises:

  • Functional testing on each platform
  • GUI / usability Testing on each platform
  • Performance testing on each platform
  • Security testing on each platform
  • Installation testing on each platform
  • Localization testing on each platform (if applicable).

Localization / Globalization Testing

Localization testing verifies whether the software is properly translated and adjusted to local languages and cultures. Localization testing is included in the software testing process when the software is made for more than one language. Our team of experts ensure the implementation of correct translation, appropriate text, readable, meaningful text and characters. Here, we check software user interface and content as well as the text of each language.

SEO Testing

Here, we verify that the client’s website is search engine friendly as well as search engine optimized. In doing so, we provide the following:

  • Detailed analysis of current state of the website
  • Recommendation for improving current state.

Due to frequent changes in search engines algorithms, we conduct SEO testing twice annually to ensure that the website maintains a prime position on different search engines, attract more visitors and ultimately convert them into customers.

Test Automation

Mobile, web and cloud.

The more online software update or release cycles offered for a new software application there are, the more necessary it is to automate its regression testing to complete it within a reasonable time frame and more cost-effecively. Our team has designed a tried and proven approach for testing through automation. This automation testing is executed according to the best practices followed in agile testing, continuous integration and test-driven development to speed up the client’s QA/testing processes and reduced cycle time.

Automation testing services comprise:

  • Evaluation of automation requirements.
  • Selection of tools.
  • Creation of the framework.
  • Automated test script creation and execution.
  • Creation of regression test suites with convenient execution options.
  • Training and handover of the test suite for future needs and maintenance

The following are some of the advantages of test automation:

  • Minimal testing cost and time incurred in regression.
  • Quicker time to market.
  • Better quality testing - no human errors.
  • Better resource utilization - QA team can focus on release specific functional testing, rather than iterating the same testing.
  • Multi-platform testing - testing across multiple operating systems, devices and browsers to guarantee error-free operation for all end-users.

We recommend that our clients automate testing, which will usually be executed several times throughout the course of the project. In cases where only a single testing is required, we recommend that it be performed manually.