833-482-7238 (free) +49-1575-366-91-79

functional testingFunctional testing

Functional testing examines whether the software is able to perform tasks users need under certain specific conditions.

The starting point for functional testing is defining specific functional requirements, i.e., a range of tasks the software must handle.

Generally, functional testing begins with smoke tests right after a module is finished. During this testing activity, we do high-level testing of how well it performs main user scenarios.

If the software cannot accomplish any of the scenarios because of bugs or errors, the module is sent back for further work.

Otherwise, we do deeper module testing to find specific system errors and validate:

  • Input data
  • Displayed calculations
  • System’s reaction to certain user actions that differ from main (anticipated) scenarios

Cross-browser / cross-platform tests

Cross-browser tests aim to reveal functional and display errors which could occur in various testing environments or on different screen sizes. Cross-browser and cross-platform tests are an integral part of testing. Because every user has a unique environment, there are myriad possibilities for what browser opens the Web app and what platform or mobile device is used to work with the app.

To deal with these variables, we set up a device lab and actively use BrowserStack to expand the number of available environments.

Load and stress testing (the number of active users and requests for a unit of time).

Load testing determines a system’s behavior under both normal and anticipated peak load conditions. Stress testing determines the critical load that exceeds normal operational capacity and leads to system breakdown. For stress testing, we usually use WAPT.

Documentation testing

We recommend documentation testing when developing new software or making changes connected with business growth. Documentation testing starts at the initial stage when gathering system requirements. This helps eliminate issues before they appear in the source code. At this stage, we usually examine several characteristics of documents and requirements such as completeness, redundancies, clarity, consistency, executability and verifiability.

Key benefits:

  • Cheaper to detect and correct errors during the early stages
  • High-quality documentation boosts project development and lowers labor input
  • Complete and correct business requirements enable developers to work out technical specifications and estimate amount of work more accurately
  • Clear documentation raises fewer questions by users and testing engineers reducing administrators’ and analysts’ workload

Regression testing

Regression testing detects errors in the source code you had already tested.
When you have decided on an iterative development model for your software, you will need to do regression testing. During this stage we:

  • Examine fixes for bugs already found
  • Ensure bugs that had previously been fixed and verified are not reproduced in the system
  • Check that any functionality has not been violated because its code was affected when fixing bugs for another part of functionality

Usually, regression testing includes reruns of previous tests and checks that regression errors did not enter the next version with the code merge, as so often happens. As functionality grows with each new iteration, the volume of regression testing also grows. Regression testing is usually automated to serve as a partial solution for dealing with the growing demand on required resources.

Automated testing

Automated testing is a process that runs pre-scripted test after changes, updates or bug fixes to the code. Your project needs it when you have multiple iterations. It is usually used for:

  • Advanced projects when it is too expensive to do manual testing when something has changed (e.g., fixes due to release of a new OS)
  • Every time a project grows, changes occur. Hence, automated regression testing is a great benefit.
  • Configuration testing can also be automated to check that new features work smoothly on all target platforms

The aim of automated testing is to:

  • Reduce time at the cost of reduced functional regression testing
  • Increase quality due to elimination of human impact

Key benefits of automated testing:

  • Increase quality by reducing human impact (guarantee to meet deadlines)
  • Decrease time test engineers spend on regression testing → save on budget
  • Save stabilization time (test engineers start with automated tests to check functionality before they forward the app for manual testing)
  • More source code is covered with tests

For automated testing, we use Selenium WebDriver.

How it works?