Web QA
Our Web QA solution includes a combination of automated and manual testing. We support software releases through functional testing, system testing, regression testing and smoke testing.
Our team will create a full suite of automated tests cases for your web applications. Before writing automated scripts, we study the existing applications, write test cases, hierarchically organize test cases by applications and modules, perform tests manually and then write automated scripts. These scripts will be used for regression testing before every release. In time, the test suite will cover all the applications. There may be tests that cannot be automated. These will be marked for manual testing before a release.
We also participate in release testing. Our team will involve right from release planning and requirements analysis. Test planning will be performed at requirements analysis phase. The QA team will write test cases during the construction phase. During the construction phase, we suggest that developers perform continuous integration and frequently release the application under development to an integration server. QA team will familiarize with the application on the integration environment, and will report any major problems to developers, so they can address issues early. Bug reports will not be filed during this informal testing phase, as the application is not complete yet.
Once the developers complete integration testing and hand over to QA, real testing will start. The application will be deployed to the QA/staging server and testing will be performed in QA environment. This testing will be a combination of manual and automated QA. New release features will be manually tested. Regression will be performed by running automated test scripts. Test cases that could not be automated or not present in the automated test suite will be performed manually.
Bugs will be reported at this stage through a bug-tracking tool such as Jira. The bugs will be prioritized and assigned to respective developers by a triage team.
The bug-fixed versions will be released again to staging and will undergo regression testing again. This cycle will repeat until the team decides to go-live. After go-live, a smoke test will be performed in the live environment to make sure major functionalities are working properly.
We use ‘Bamboo’ or ‘Hudson’ for running the automated test scripts and ‘Confluence’ for test case management.
Once an issue has been identified, it will be logged in the issue-tracking tool (JIRA). The bug will be moved to the concerned developer’s queue. Once a new build is released with fixes for all identified bugs, it will go through retesting including regression testing.This iterative process will continue till all the identified bugs have been fixed. The QA passed release will be moved to staging/production.
Technology
Test automation technologies:
Selenium Grid/ RC
Selenium Grid is a tool that dramatically speeds up functional testing of web applications by leveraging existing computing infrastructure. It allows us to easily run multiple tests in parallel, on multiple machines, in an heterogeneous environment.
Selenium Remote Control (RC) is a test tool that allows us to write automated web application UI tests in any programming language against any HTTP website using any mainstream JavaScript-enabled browser.
TestNG
TestNG is a testing framework designed to simplify a broad range of testing requirements, from unit testing to integration testing. Selenium Grid recommends TestNG framework since it supports key features like data provider and running the tests in parallel.
HP QTP
HP Quick Test Professional (QTP) is another excellent alternate test automation application. QTP supports functional and regression test automation that addresses every major software application environment. This solution uses the concept of keyword-driven testing to simplify test creation and maintenance. QA team will have full access to the underlying test and object properties via an integrated scripting and debugging environment. Since this is HP proprietary product, additional licensing costs could be incurred.
Apache Ant
Apache Ant is a software tool for automating software build processes. TestNG provides a custom Ant task that helps to trigger the execution of selenium scripts.
Bamboo
Bamboo is a continuous integration server which provides automated building and testing of software source-code status, updates on successful/failed builds, and reporting tools for statistical analysis. It works well with JIRA and Confluence applications we have proposed below for issue tracking and test case management.
SVN/GIT
We use open source applications Subversion (SVN) or GIT for test scripts version control.