Quality Assurance Services


WHAT IS AUTOMATION AND WHY DO YOU REQUIRE IT?


Automated software testing is a process where software tools execute per-scripted tests on application before it is deployed to production. If any regression testing is required then automation testing can save lot of time rather than manual. The main scope of implementing automation framework for your project is to simplify as much of the testing effort to minimum number of scripts and save time and money. Test automation always come into picture as an alternative to expensive, time consuming and inconsistent manual testing. Mostly it is used when there’s repetition of manual test cases on daily basis.


HOW WE DO IT?
We use selenium web driver tool for automating web based behavior. Most of the scripts are written in java or python language and build in using ant/maven. Initially our Auto QA team goes through the project, we check how much of your project module can be automated, based on our research we create a test plan and write test cases and execute the test cases into code. Once the code is tested locally, we commit it to GIT/SVN and finally run the job on Jenkins CI.



WHAT IS UAT?


UAT stands for User Acceptance Testing. Acceptance means approval or agreement done to determine whether it can be accepted or not. After you are done with all your unit testing, functional testing, etc., it is necessary that your product goes through this phase before the product goes live in the market. UAT is after the product itself is thoroughly tested. The demand on quality assurance has grown significantly today. That doesn’t mean you have to go through this all alone. We have an expertise team who are working together to give the quality that you require.


HOW DO WE DO?
We gather the key acceptance criteria required for the product from the client.
– Planning
– Selection of testing team who are expertise in performing the task.
– Preparing test cases
– Executing test cases and documenting the same.



IMPORTANCE OF SECURITY TESTING NOWADAYS


Security testing is a type of non-functional testing done to check whether the application or the product is secured or not. It checks to see if the application is vulnerable to attacks, if anyone hack the system or login to the application without any authorization.


WHY SECURITY TESTING IS IMPORTANT?
Security testing is used widely nowadays for all kind of applications to keep HACKERS away. It is performed to check whether there is any information leakage in the sense by encrypting the application or using wide range of software’s and hardware’s and firewall etc. The six basic security concepts that we cover by security testing are: Confidentiality, Integrity, Authentication, Availability, Authorization and Non-Repudiation.
WE FOLLOW DIFFERENT TYPES OF SECURITY TESTING TECHNIQUES.
SQL injection: SQL injection attacks are very critical as attackers can get vital information from the server database. To check SQL injection entry points into your web application, find out code from your code base where direct MySQL queries are executed on the database by accepting some user inputs.
URL manipulation: We check if the application passes important information in the querystring. This happens when the application uses the HTTP GET method to pass information between the client and the server. The information is passed in parameters in the querystring. The tester can modify a parameter value in the query string to check if the server accepts it.
Cross-Site Scripting (XSS): We additionally check the web application for XSS (Cross site scripting). Using cross-site scripting attackers can use scripts like JavaScript to steal user cookies and information stored in the cookies.
Penetration testing: We also perform a penetration testing to protect an attacks on a computer system with the intention of finding security loopholes, potentially gaining access to it, its functionality and data.



REGRESSION TESTING


The Main purpose of Regression testing is to confirm that the recent code has not adversely affected the other existing features if the system. Regression testing can save both money and time.


WHY REGRESSION TESTING IS IMPORTANT ON EVERY APPLICATION
When there is a change in requirements or any modification in the code is done If any new features are added Fix Defects Fix any performance issue
WHAT TECHNIQUES AND TOOLS WE USE TO PERFORM REGRESSION TESTING
Write test cases for all the modules at the initial stage Retest All modules by executing large number of test suite. It is very expensive as it requires huge time and resource Regression Test selection. We prefer to select part of the test suite instead of executing all the test suites. We categorize the test cases into 2 parts
1) Reusable Test Cases
2) Obsolete Test Cases.
We prioritize the test cases depending on the critical and frequently used functionality.
TOOLS WE USE:
Selenium and Jenkins:These are open source tools used for automating web applications. Selenium is used for browser based regression testing and Jenkins for continuous integration.
Testlink: to write and execute the test cases Manually.



COMPATIBILITY TESTING


A very common example in our day to day life is, milk when combined with water it is compatible same way in computer world it is very important to check whether any software is capable of running on different mobile devices, applications, operating systems, network environments or hardware.


HOW WE PERFORM COMPATIBILITY TESTING
Operating System: We check whether the software is compatible with different operating systems like Windows, Mac OS etc
Browser: We check whether the application is compatible with different browsers like Safari, Firefox, Google Chrome, Internet Explorer etc
Mobile Devices: Check if software is compatible with mobile platforms like Microsoft, Android, iOS etc
TOOLS WE USE:
BrowserStack: This tools helps us to check your application on different browsers, devices,
OS OUR PROCESS: At the initial phase we define the set of environment or the platform the application is expected to work on We execute the test cases on different environment Report the bugs. Developers fix the bugs. Re-testing is done to confirm fixed defects



FUNCTIONAL TESTING


We perform Functionality testing to verify that a software application operates in conformance with the requirement specification. Each and Every functionality of the system is verified by appropriate input, output, actual and expected result. Our team checks for user interface, Database, API’s, Security, and functionality of application under test either manually or using automation.


WHAT DO WE TEST IN FUNCTIONAL TESTING: The main objective is checking the functionality of the software system The identification 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 To check whether the application works as per the customer need
OUR FUNCTIONAL TESTING PROCESS: Understand and analyze the requirement properly Identify and document the test data Write the test cases Execute the test cases Comparison of actual and expected result Document the defects
TOOLS WE USE Selenium: to perform automation testing Postman/ Soapui: to test REST and SOAP API’s. Also other protocols like http Testlink: to manage all the test cases and test report Mantis: to report and track all the bugs



There are millions on app designed for iOS and Android platforms that needs to be tested. A very common question comes from developers is “My app is bug free, why do I need app testing?”, but we tend to forget that mistakes are inevitable and bugs will appear.
WE OFFER FOLLOWING TESTING METHODOLOGY Manual Testing Api’s testing Exploratory Testing Performance Testing User Testing UI Testing Usability Testing Beta Testing A/B Testing
OUR PROCESS: Initially we identify the types of testing Team write the test cases based on the requirements If its a native app, we first test API’s Once the build is released by developers, Manual QA test the functionality Regression testing is performed before the build is moved for UAT Performance testing is carried out to check whether app is stable with all network connections compatibility testing is done to check whether app is compatible with all the OS, devices and Versions Launch plan is done WHAT DO WE TEST We check for application crashing, which is one of the most frustrating problems when using apple and Android devices. We check for application incompatibility wherein application should run perfectly on all version when it is upgraded Check for security vulnerability so that hackers do not attack iOS devices or steal private information Check for memory leaks TOOLS WE USE Postman/SoapUI to testing API’s Testlink to manage all test cases and test Report Mantis to report bugs



Usability testing is one of the most important testing in SDLC which can give visibility on the expectation of the users. The main objective of the usability testing is to determine whether the application is Useful, Findable, Accessible, Usable and Desirable. WE CAN SEE VARIOUS SOFTWARES WHICH FAILS MISERABLY ONCE LAUNCHED DUE TO: Inconsistent error messages Where I have to click next Which page I have to navigate Which icon represents what? Session time not sufficient OUR PROCESS Planning- During this phase we determine the the critical functionality and objective of the system along with the test report format Team selection is done to perform usability testing according to the test plan Usability test are executed Give actionable recommendations to improve usability of the product Finding of the usability test is shared with Customers including, designers, developers and PM’s



Every customer wants their product to be delivered on time and so management and planning is important to save project cost and deliver the quality product.