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-users and find out how easy / convenient the 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 installations 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 the software / network / hardware, and thus can produce an optimized solution which can be a combination of software, network, and hardware solutions. Performance Testing comprises of –
- Load Testing - Here, we verify whether the software operates 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 an increase in load, some unfavorable conditions, factors, and environment adds to the degradation of 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 a considerable amount of data.
- Soak / Reliability Testing - Sustaining a load continuously for a long 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 an 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 an integral part of software development process, and Network, Servers & Infrastructure Security Testing should be an integral part of the project roll-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 a proven & tested approach for this real-world problem, which covers full spectrum of Mobile Testing needs as followed, 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 the process of verifying the quality of a 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 the volume of data, volume of users, different compliances and data security involved. 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 of 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 of these browsers have many versions. Elements of web application behave differently on different browsers, even on different versions of the same browser, and differently on different platforms. All combinations that need to be checked to complete Cross-browser Testing. We check HTML / CSS code in each browser, different dynamic operations done by JavaScript, alignments, fonts, layouts in different resolutions, etc. Additonally, there are certain server side checks, which we test, including how a web application behaves when interacting with 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 the 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 engine algorithms, we recommend conducting SEO Testing twice a year to make sure the website maintains a good position on different search engines, attract more visitors & converts 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 testing automation that leverages best practices in Agile Testing, Continuous Integration and Test-Driven Development to accelerate your QA / Testing processes and reduce cycle times. Automation testing services consist 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.
Technology Stack
Performance & Load Testing Tools
- Apache JMeter
- HP LoadRunner
- HP StormRunner
- NeoLoad
- LoadImpact
- WebLOAD
- LoadUI NG Pro
- LoadView
- AppLoader
- Appvance
- SmartMeter.io
- Rational performance tester
- LoadComplete
- LoadStorm
- Httperf
- BlazeMeter
- Load Multiplier
- Loader.io
Security Testing Tools
- SQLMap
- Websecurify
- Safe3 Scanner
- Samurai Framework
- Nikto
- Aircrack
- OpenVAS
- Metasploit
- Nmap
- Wireshark
Bug Reporting Tools
- Atlassian JIRA
- Mantis
- Bugzilla
- Plutora Test
- Backlog
- Trac
- Redmine
- HP ALM
- FogBugz
- IBM Rational ClearQuest
- Lighthouse
- BugNET
- eTraxis
- Team foundation server
Automation Testing Tools
- Appium
- MonkeyTalk
- Robotium
- UI Automator
- Selenium
- Cucumber
- Silk Test
- Eggplant
- RSpec
Programming Languages
- C/C++
- Java
- SQL
- Python
- Perl
- XML
- HTML / CSS