QA & TESTING

We believe that Software Product must SOLVE problem(s).

Functional Testing

Proper functional testing ensures your software does exactly what it is designed / made to do – making it essential to a quality user experience. Functional testing plays significant role in this digital world such as,

  • Simulating actual software usage to find out potential problems / issues before they impact actual / live users
  • Detecting defects early in the software lifecycle to minimize rework, improve quality and reduce overall testing & development costs
  • Ensuring that new features / enhancements do not impact existing software

Software functionality must be verified in scope of,

  • Unit Testing / Module Testing - At this stage we check whether functions of the separate modules operate properly
  • Integration Testing - At this stage we verify whether the functions involving interaction of the different modules work as intended, stated in its specification
  • System Testing - At this stage, our team carefully examines functionalities of whole software as intended, stated in its specification.

So, this way, Functional Testing comprises of

  • Unit Testing
  • Integration Testing
  • System Testing
  • User Acceptance Testing (UAT).

Regression Testing

Regression Testing must be an integral part of every software development process. Regression Testing is performed after –

  • Correction of the reported defects / bugs
  • Adding new features / functionalities in software.

In Regression Testing, we choose test cases –

  • that often fail
  • that are complex
  • verifying frequently used functions & main functions
  • verifying functions affected by the recent changes in the code
  • checking boundary values
  • checking integration issues, etc.

Regression Testing should be automated (if possible), as it contains many tests which need to be repeated in every testing session, nowadays there are many tools available for this - paid as well as open source.

User Interface & Usability Testing

User interface testing is a process of verifying whether the software user interface complies with the requirements, and whether it is easy & convenient for the end-users to work / interact with the software. This testing type may be performed manually and by means of various automated testing tools.

It is carried out in 2 phases –

  • Usability Testing performed by qualified test engineers - where domain experts perform certain tasks as end-user and find out how easy / convenient software is to use / interact with.
  • Usability Testing performed by end-users - where end-users perform certain tasks, test engineers watch the user's behavior, problems that they face while performing tasks, way of thinking, time to understand user interface, facial expressions, etc. Different recording instruments are usually used during this session to record what is going on screen, voice of user, user facial expression, etc. These recordings are used to find out software usability defects.

Installation Testing

Installation Testing verifies software's proper installation and further operating. And is executed at end when software is almost ready to go LIVE. There are different types of installation like,

  • Attended Installation where user must accept the end-user license agreement, select where to install the application, enter the password or activation, etc.
  • Unattended Installation where no user interaction is required, all needed parameters may be taken from the answer file present in build
  • Headless Installation where installation of software happens over network from one machine to another
  • Automated Installation where installation runs when certain predefined conditions satisfy or occur.

Important aspects that should be considered during Installation Testing –

  • Space - whether the installer checks required free space on selected installation location
  • Memory - how much memory is used by software, whether it’s in specified limits
  • Behavior of installer in non-compliance states
  • Negative Testing
  • Uninstallation - what all things should happen & what all things are happening.

Load & Performance Testing

Performance issues are not always because of hardware. A proper analysis on performance issues can reveal the real bottlenecks which may be in software / network / hardware, and thus can produce an optimized solution which can be combination of software, network and hardware solutions. Performance Testing comprises of –

  • Load Testing - Here, we verify whether software operate properly at different load levels, what problems happen during functioning under different loads, etc. It defines the normal performance ability.
  • Stress Testing - In stress testing, with the increase in load, some unfavorable conditions, factors and the environment also adds to degrade performance of a software. Thus, a software should be able to perform effectively and efficiently under these circumstances. It identifies boundaries.
  • Volume Testing - Software applications are often subjected to large volume of data for certain process or operation. It is required that the software performance should not be hindered while being flooded with the considerable amount of data.
  • Soak / Reliability Testing - Sustaining a load continuously for a longer period and simultaneously maintaining the performance level imparts the endurance and stability quality of a software product. It is used to verify endurance level and system behavior under constant use.
  • Scalability Testing - To meet and accommodate the growing needs of constantly increasing users, a software needs to be scalable to ensure hassle free functioning. It provides option to boost performance beyond specifications.

Security Testing

Our security testing practice checks for known vulnerabilities and conducts penetration testing to help you discover and fix known security issues. Software Security Testing should be integral part of software development process, and Network, Servers & Infrastructure Security Testing should be part of project role out strategy.

Security Testing with right tools, right knowledge & capabilities is what we bring as a value proposition to our clients. Our comprehensive security testing solution for application layer, network layer, server layers and database layer helps in securing software from all levels of vulnerabilities and make it hack proof. Our Security Testing approach ensures compliance to Standards, Best Practices and Regulatory Requirements such as

  • Open Web Application Security Project (OWASP) Top 10
  • The Web Application Security Consortium (WASC)
  • Payment Card Industry – Data Security Standards (PCI-DSS)
  • International Standard Organization (ISO) 27001:2005
  • Health Insurance Portability and Accountability Act (HIPPA)
  • Sarbanes-Oxley Act (SOX) / Central Bank Regulations
  • Family Educational Rights and Privacy Act (FERPA)
  • Data Protection Act and many more…

Following is list of our primary focus for security testing:

  • A1 - Injection
  • A2 - Broken authentication and session management
  • A3 - Cross-site scripting
  • A4 - Insecure direct object reference
  • A5 - Security misconfiguration
  • A6 - Sensitive data exposure
  • A7 - Missing function level access control
  • A8 - Cross-site request forgery
  • A9 - Using components with known vulnerabilities: Heartbleed and Shellshock in action
  • A10 - Invalidated redirects and forwards

Mobile App Testing

Mobility has introduced new levels of complexity to QA and Test management that most companies are not prepared for – different technology platforms, different OS’s, different devices - with different specifications like screen size, RAM, CPU, etc., numerous use cases, different network connections and carriers. Mobile, Web & Hybrid apps need to be tested across several permutations and combinations. All in more compressed cycles than ever before.

We bring proven & tested approach for this real-world problem - which covers full spectrum of Mobile Testing needs as follow, and how mobile app is behaving in different scenarios / situations,

  • 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 & Garbage Collection, Review of cache & data storage mechanism
  • App Performance - CPU Usage, Network Usage, Page / Screen / Activity Render Time
  • Usability Testing - User Experience, How easy & convenient
  • Security Testing - OWASP Vulnerabilities, Static Code Analysis, etc.
  • Localization Testing - Different languages, currencies, time-zones, images & text
  • Installation, Uninstallation & Updates Testing

Game Testing

Game Testing is a process of verifying quality of game. Game testing is very critical because of different platforms, age groups, different genres, different ways of interaction with users, video / sound effects / etc. Game Testing comprises of -

  • Functional Testing
  • Cross-Platform Testing
  • Localization Testing
  • Load Testing

E-Governance Testing

E-Governance Testing is critical because of volume of data, volume of users, different compliances and data security. It comprises of -

  • Functional Testing
  • Load & Performance Testing
  • Security Testing
  • Usability Testing
  • Localization Testing
  • Cross-browser Testing (if applicable)
  • Cross-platform Testing (if applicable)

API Testing

In today's world of Service Oriented Architecture (SOA), it is very crucial that your APIs should work as expected for functionality, reliability, performance and security. Our API testing service will make sure this - whether its APIs / Web Services / Micro Services.

Cross-browser Testing

Cross-browser Testing should be an integral part of any web application testing. Nowadays there are so many platforms like Windows, Mac, Linux, Android, iOS - on each platform there are many browsers like Firefox, Chrome, Safari, IE, Opera, Opera Mini, UC Browser, Dolphin, Maxthon, Mercury Browser, Nokia Xpress, etc., each browser has many versions. Elements of web application behave differently on each browser, even on different versions of same browser, differently on each platform - so many combinations need to check to complete Cross-browser Testing. Here, we check HTML / CSS code in each browser, different dynamic operations done by JavaScript, alignments, fonts, layouts in different resolutions, etc. There are few server side checks, which we should test, how web application behaves when interacted from different browsers.

Cross-platform Testing

Cross-platform Testing is necessary when software is designed / made to work on different platforms. Cross-platform Testing comprises of -

  • 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 should be included in software testing process when software is made for more than one language, there should not be wrong translation / absent text / unreadable or meaningless text / characters. Here, we check software user interface and content / text of each language.

SEO Testing

Here, we verify both whether website is search engine friendly as well as search engine optimized.In report, we give 2 things -

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

Due to frequent changes in search engines algorithms, we recommend conducting SEO Testing twice in a year to make sure website maintain good position in different search engines, attract more visitors & convert them into customers.

Increased frequencies of online software updates / release cycles of newer software application make “Regression Testing Automation” a must to get it done in minimum time & cost. We have developed a tested & proven approach to test automation that leverages best practices in Agile Testing, Continuous Integration and Test-Driven Development to accelerate your QA / Testing processes and reduce cycle time. Automation testing services consists of:

  • Assessment of automation needs
  • Tool Selection
  • Creating Framework
  • Automated test script creation & execution
  • Creation of regression test suites with flexible execution options
  • Training & handover of test pack for future need & maintenance.

Below are few benefits of Test Automation:

  • Reduced Regression Testing Cost & Time
  • Faster Time to market
  • Better quality testing - no human errors
  • Better resource utilization - QA team can focus more on release specific functional testing, instead of repeating same testing
  • Multi-platform testing - Test across different Operating Systems, Devices, and Browsers to ensure smooth operation for all end users

It is recommended to automate the tests that will run many times in course of the project; if tests are to be performed only once then it is not recommended to automate them.