All software requires extensive testing before being rolled out to the public. Quality control engineers use both Open Source and commercial tools for testing based on the requirements for the type of software that is being built. QA testing tools can generally be categorized into three main categories:
- Test management tools
- Functional testing tools
- API testing tools
- Unit testing tools
- Multi browser testing tools
- Multi device testing tools
- Performance testing tools
Below are a few suggested QA testing tools for each category of testing that may be useful to you or your QC team.
Test Management Tools
These tools help quality assurance engineers look at the requirements and write appropriate test cases for them. The tools help with test case creation, planning, and execution. Once executed, the test management tools create and track bugs against requirements.
If there are automated tests, these tools integrate into the tests to capture results automatically. For manual testing, a quality analyst will need to record results manually. Two tools that can be used for test management are:
- Mantis Bug Tracker – This open source test management tool is simple to use and allows teammates to collaborate. This tool has custom fields for test cases, allows the user to control the access rights of various users, and includes email notifications for issues/updates/comments.
- TestCollab or IBM Rational Quality Manager – This proprietary tool helps manage and plan test cases along with producing in-depth reports of the test execution statuses. This tool integrates with various other bug management tools as well.
Functional Testing Tools
These tools enable the quality assurance engineer to test the individual features or pieces of software and then report errors to the development team. These tools can enable automated testing or manual testing. Popular functional testing tools are:
- Selenium – This includes two ways to test functionality.
- Selenium WebDriver – This enables automation testing to create functional tests and regression automation test suites. These scripts can be executed on multiple environments just like any other piece of software. These scripts can also work on multiple browsers.
- Selenium IDE – QA can record a series of steps to execute on a browser multiple times and helps in exploratory testing.
- Cucumber – This tool enables automated testing along with behavior driven development. Functional tests are written in plain text and can be automated with scripts in Ruby, Java, .Net, PHP, and more. Cucumber plain text behavior can also be translated into 40 spoken languages, bridging the gap between Customer, QA, and development teams.
API Testing Tools
These tools help test the service layer or the API’s. Input parameters can be provided by the QA engineer to ensure the output parameters run as expected. This enables any developer or partner trying to integrate with your product to test the API’s as well.
- Postman – This is a lightweight API testing tool that can be used both by API developers, API integrators, and a QA team looking for quick answers during the testing phase.
- Apiary – With the use of a markdown language, Apiary guides both testing and development of API’s. This tool includes testing scripts, validations, and code samples for the API’s as well.
Unit Testing Tools
Unit testing tools are meant to test individual pieces of the code and are generally used by developers to test functionality and code quality. These tools ensure that the developer has done his/her due diligence so QA receives a better quality app to test. These tools largely depend on the language that the product is being developed in.
- JUnit, NUnit, PHPUnit – These are unit testing languages for Java, .Net, and PHP.
- SonarQube, Code Coverage – These tools ensure quality management on the code itself, which in turn affects the quality of the product and bugs in the QA cycle. These tools check duplicated code, coverage of written code based on the unit tests, verifies code against coding standards, and more.
Multi-Browser Testing Tools
The growing number of browsers and devices is an on-going challenge for QA personnel. These tools enable cross-browser testing across multiple browser and OS versions.
- Sauce Labs – This service, along with Selenium, runs automated scripts in multiple browsers including both desktop and mobile browsers. The service captures screenshots and creates reports that help identify browser specific bugs.
- Browser Stack – Similar to Sauce Labs, this service enables cross-browser testing across both desktop and mobile browsers.
Multi-Device Testing Tools
Mobile apps span across multiple device OS versions and multiple screen resolutions, making the QA cycle difficult. The purchasing range of real devices to test on becomes impractical and time consuming as well. There are several tools to choose from that can eliminate this issue:
- Device Emulators – While emulators are not ideal for all testing, they are free and easily available. The emulators that are provided by Google or Apple can duplicate a wide range of devices and resolutions making it easier to test apps.
- Amazon Device Farm – This service enables a user to upload an app to Android or Fire OS and test it on real devices to get testing results. While this service works on the number of hours you spend testing on a real device, it also has a test trial of 250 device minutes for free. This is a potential alternative to testing Android apps.
- DeviceAnywhere – This service lets you test on real devices for both Android and iOS. This has a free and paid version. The free version comes with limited functionality provides a base to start testing.
Performance Testing Tools
Every product has a tipping point when the performance of the app starts going down. These performance testing tools let you determine how scalable and reliable your application is. It simulates users in a distributed environment to test your app and loads tests to provide data points on how many simultaneous users can your app support or the maximum and minimum response time on your app. A few tools that enable performance testing are:
- Soasta Cloud Test – This tests virtual users across various locations to test quickly and continuously at any scale. The test provides real time insights on the performance of your app. This also allows QA to design and execute a load test from a single environment. This service has a lite version that tests 100 virtual users and an on-demand paid version that tests any amount of virtual users.
- Load Runner – This service accesses performance of both browser based applications and native mobile applications. It runs tests from multiple locations as well as running testing in the cloud. This service is integrated into your development environment.
This list of QA testing tools is a sample of ideas you can use for each type of testing. There are many additional options available. Explore what testing tools are best for you and your team and let us know what worked for you.