Web Application Testing: Getting Started with Functional Testing

Web application testing is critical to ensuring that your software is ready for users and doesn’t contain any major bugs that could cause you to lose credibility or customers.

There are many different types of web application testing and each one provides different benefits at different times in the software development process. So, it can be difficult to know which type of testing will give you the results you're looking for.

Additionally, with any type of web application testing, you need to consider whether to automate your tests or perform them manually. With most types of testing, automating your tests can produce faster, more reliable results. And with the right test automation tool, you can manage more testing in less time. 

In this post, we’ll cover the main types of testing and when to use them, when to automate and when to perform tests manually, and how to save time and resources using our tool, Rainforest QA, to automate functional tests.

Sign up for Rainforest QA—you can run five hours of no-code automated functional tests for free, every month. It’s only $5/hour after that. 

Types of Web Application Testing and How to Prioritize

Web application testing covers a wide range of testing types. Each one has a different purpose and place in the development lifecycle. In this section, we’ll cover the most widely used types of testing and provide guidance around which types to prioritize.

Functional vs. Non-functional Testing

The goal of functional testing (sometimes called end-to-end testing or user interface testing) is to confirm that various elements of an application are working together as a whole and appearing correctly in the user interface (UI). 

Types of functional testing include the following: 

  • Integration testing: Testing combinations of individual features or units of code to make sure they work together as a whole. 
  • Smoke testing: Covers the most essential user paths to make sure the application is stable enough to move on to further testing (i.e. regression testing).
  • Regression testing: Often the last step of the testing process before release—it ensures the new build didn’t introduce a bug into any critical functionality of the app.

Functional testing is the highest priority for most web applications because it helps ensure the end-user will be able to perform all desired actions. 

Non-functional testing, on the other hand, is more concerned with fine-tuning a functioning application.

The goals of non-functional testing are to evaluate all non-functional aspects of an application, including performance, security, usability, and more.  

Types of performance testing include: 

  • Load testing: A type of testing used to verify the application’s performance is acceptable under various demands (e.g., 3,000 users access the site concurrently).
  • Stress testing: A type of testing that lets you find the breaking point of your application by putting increasing amounts of stress on things like web server capacity or network bandwidth until the application fails.
  • Compatibility testing: A type of testing that deals with operating system compatibility and ensuring an application will function correctly on different devices, such as Android and Apple mobile devices. 
  • Operating system compatibility testing: A subset of compatibility testing focused on identifying user experience issues that only occur on specific operating systems, such as linux, Windows, macOS, etc.
  • Cross-browser testing: A type of testing, sometimes called browser compatibility testing, used for validating that an application will appear correctly across different browsers. 

Types of web security testing to identify potential vulnerabilities that might compromise the application’s security include: 

  • Penetration testing: A type of black-box testing that simulates different methods hackers may use to see how an application holds up against the attack.
  • Error handling: A type of website testing designed to ensure a web app will display the correct error message and reload gracefully when the error has been resolved.
  • Session management testing: A type of security testing that deals with things like ensuring cookies are working properly, automatic log out on session end, inactivity timeouts, etc.

There are other types of software testing (like usability testing or user acceptance testing) that are often mentioned as part of the QA discussion. However, these types of testing are typically handled by the design or customer support teams rather than by web development or QA teams. This is because these types of testing deal with the user experience and ensuring the layout of the application is intuitive for users rather than dealing with whether or not the build works as intended. 

Automated vs. Manual Testing

Manual testing is any type of testing where someone interacts with the application by physically clicking, scrolling, or observing various aspects of the application in real-time. This is typically how teams first start out testing their web app. 

There are a few situations and types of test cases that are best handled with manual testing: 

  • Short-term projects or projects with constantly changing designs that need to be tested but would cause automated tests to constantly become outdated.
  • Tests that require human observation or judgment (e.g., completing a CAPTCHA or determining if a picture is clear and oriented correctly, etc.).
  • Exploratory testing, which is an unscripted testing technique that relies on the tester to uncover defects and bugs in various user paths that can’t be easily found by other types of testing.

Automated testing uses software tools or coding frameworks to automate the actions a real person would’ve performed manually (e.g., clicking, scrolling, etc.).

Automated tests are much cheaper to execute, take less time to run, and provide more consistent results than manual tests. In general, it’s a good idea to automate as many functional tests as possible, excluding the ones better-suited for manual testing. 

Some of the most common automated testing frameworks widely used in the QA world include Selenium and Cypress. Selenium and Cypress are both open-source, but they have a steep learning curve and require programming skills to use. While Selenium supports a wide variety of programming languages, like Java, Python, Ruby, C#, JavaScript, Perl, and PHP, Cypress only supports JavaScript. 

For many software teams, a no-code automated testing tool is a better option because they don’t have to use developer time to set up and maintain tests. That’s exactly why we designed the Rainforest QA all-in-one codeless automation platform. 

Now we’ll show you how it works.

How to Save Time and Resources with a No-Code Web Application Testing Tool

Rainforest QA is a no-code platform for automating functional tests. The all-in-one testing platform runs in the Rainforest web app, so you don’t have to download anything or pair it with additional testing tools. And, for any tests that can't or shouldn't be automated, we also provide an on-demand manual testing service.

Anyone Can Write and Maintain Web Application Tests

Most web application testing tools require someone with programming skills to write and maintain tests. With Rainforest QA, anyone can create functional tests in a matter of minutes—even without a technical background. 

To write or edit a test, choose from a dropdown menu of actions (e.g., click, fill, observe, etc.). Then, choose the element or area of the application you want to apply the action to by taking a screenshot with a click-and-drag of your cursor. 

Add a Click Action: Try for Free Button in Rainforest QA

You can also choose to embed one test in another. Embedding a test allows you to write a common sequence of events (a log-in process, for example) just once and use that sequence in any other test.

For example, here’s a signup flow for Rainforest QA:

Rainforest Signup Flow example

If you wanted to use that sign up flow in another test, you’d simply search for the test name and select it to embed it in the new test. 

Rainforest Signup Flow: Embed a Test

You can manage and organize all your tests from right within the Rainforest QA platform. 

Then, when you’re ready to run a set of tests, you can kick off tests with one click within the Rainforest platform, or you can incorporate your Rainforest tests into your CI/CD pipeline via our API, CLI, CircleCI Orb, or GitHub Action. 

With any of these options, you can access our network of virtual machines with more than 40 combinations of browsers and operating systems, including Chrome, Firefox, Microsoft Edge, Internet Explorer, and Safari. You can run many tests simultaneously and make sure your app is compatible with the most common browsers and operating systems your customers use. 

Finally, any test written in the editor can also be sent to our community of worldwide QA experts for manual testing. Results come back in 17 minutes on average, which is the fastest manual testing service currently available.  

Video Replays Make it Easy to Understand Every Failure

Determining why a test failed can be a very time-consuming part of the debugging process when you don’t have the right features or tools to assist you. That’s why Rainforest QA provides video replays, in-depth details on how the failure was determined, HTTP logs, browser logs, settings, and more. Whether a test passes or fails, Rainforest QA automatically records a video and provides you with all these details for each test run. 

When viewing a specific test run, you can see each test step listed on the left with the video displayed on the right. The ‘investigate action’ button is where you can find most of the additional details that are often the key to understanding why a test failed. 

Book a Flexible Trip: Action Failed example in Rainforest QA

Rainforest also provides a Jira integration. Any Jira ticket created from a test failure will automatically include steps from the failed test, a screenshot from the failed test step, and a link to the video replay and more information in Rainforest QA.

With our Slack, Microsoft Teams, and email integrations, you can get real-time notifications of test failures and other test suite updates.

Test Actions Outside the Browser

For many web applications, there are a few critical test cases that require the ability to open multiple browsers or interact with browser settings. For example, you might want to test the ability to install a browser extension or see how a web application performs under different browser configurations (such as with ad blockers activated). Because Rainforest can automate any actions in the operating systems running in our virtual machines, you can write tests that open multiple web pages and leave the browser to test these user paths.

There are many other scenarios where this feature could be helpful. For example, if you need to test the ability for two separate users to interact with each other through a chat feature, you can do that by opening two separate browsers in a Rainforest test. Or if you need to test whether a desktop application can be successfully downloaded and installed, you can create a test in Rainforest that performs all the necessary interactions with the operating system to verify that. 

To see this in action, check out this video walkthrough of creating a test that saves a file to the desktop from one location, then uploads the file to Google Drive.

A Built-in Library of Test Data

To save you from spending a ton of time creating and maintaining test data, we provide a library full of randomly-generated emails, passwords, addresses, virtual credit cards, names, and much more. You can even use our virtual email inboxes to test sending and receiving emails.

All-in-One Solution with Startup-Friendly Pricing

It’s never too early to start investing in QA, and with a no-code tool like Rainforest, you can start for free—without needing any additional test management tools and without hiring additional QA engineers. 

Our free-forever Professional plan makes software test automation accessible to anyone by providing 5 hours of free UI testing every month—it’s only $5/hr after that. You’ll only pay for the time spent running tests, and not for writing, editing, or otherwise managing your tests. 

This plan has everything you need to run functional testing and manage your testing workflow without any hidden costs or long-term contracts. This provides for easy scalability of your testing program as your company grows because you’ll never have to pay for more than you need. 

The Professional plan also includes a free 14-day trial of our manual testing service. After that, it’s only $25/hr.  

Sign up with Rainforest QA today to begin scaling up your functional web app testing.

Related articles

QA Testing Tools in 2022: How to Know What’s Right for You

Learn how to differentiate between various QA testing tools, how to decide which ones you need, and 30+ options to consider.

Software Regression Testing Guide: Definitions, Tools and FAQs

This guide to software regression testing answers the top FAQs about software regression testing.

How to Write a Test Plan: Free Template and a 6 Step Guide

Learn how to write a software test plan. Get started with our practical guide and free template.

You Only Need These 5 QA Metrics to Improve Software Testing

Many quality assurance metrics evaluate QA activities rather than results. These are the 5 most helpful QA metrics.