cookies

Hi! This website uses cookies. By continuing to browse or by clicking “I agree”, you accept this use. For more information, please see our Privacy Policy

bg

Automated testing as part of NERDZ LAB quality control plan

author

Roman Oliynyk

/

QA Engineer

7 min read

7 min read

Article content:

  1. Introduction
  2. What is automated testing?
  3. Why automated tests matter
  4. Automated testing use cases, objectives, and advantages
  5. Automated testing in 5 steps
  6. So, how do you make sure your app is up and running?

Software Testing Services

Introduction

Searching for software products in an app store, you’ll always come across some angry reviews claiming that something wasn’t—or still isn’t—working. And you might notice how you start to mistrust app’s developer right away, even though you know it could be just someone’s unpopular belief. On the flip side, as a company or startup owner, you don’t want to be a target for criticism. How to avoid it?

Our experience tells us that you can avoid it by offering only the top quality, which we believe can be achieved by automated testing and other QA services at every development cycle. That’s exactly what we’re going to talk about in this article. So you’ll find out what automated testing is and how to run it to detect issues and fix them before market launch. Let’s start!

To learn more about our software testing process and services check out this article >

What is automated testing?

Automated testing is a type of software product testing with the use of special programs and tools. Unlike manual testing, where a tester checks the app’s quality without ready-made tools, automated tests involve scripts. They detect bugs and vulnerabilities without any human intervention.

There are the following types of automated tests targeted at various product features and used at different stages of development:

  • Unit test: a test that evaluates the performance of an individual unit.
  • Smoke test: a functional stability test to see if the product is ready for in-depth testing.
  • Integration test: a software application test that assesses how well the individual parts operate as a whole.
  • Regression test: an automated QA testing type that detects whether the program parts run efficiently after undergoing changes.
  • API test: an automated test run after the development stage to see how well the product interacts with other systems.
  • Security test: functional or non-functional automated application testing aimed at detecting security vulnerabilities and loopholes.
  • Performance test: automated test scripts run to check if the product is stable and responsive.
  • Acceptance test: QA software testing done before the release to estimate the users’ response. It’s used to see if the product meets all functional and non-functional requirements.
  • UI test: automated testing procedure that replicates the common user behavior and identifies the visual or structural elements that might lead to a bad user experience.

What’s the reason behind such a variety of software testing services, and why do NERDZ LAB specialists use them multiple times throughout the development cycle? (More about app development lifecycle here). The answer is right in the next chapter.

Why automated tests matter

As you can see from the testing types definitions, all of them have the same goal: to ensure that the product fully performs its functions and meets the developers’ expectations at every development stage. Otherwise, the product won’t meet the customers’ needs and will have too low chances for market success. But that’s just one side of the coin that explains the business’s need for automated testing.

Another side is that automated testing simplifies the workflow for developers, designers, and testers. Let’s look at an example.

Imagine that a tester has 200+ test cases to run before each release that happens every two weeks. Manual tests might take up to several days, while with automated testing scripts, one can cope with a regression test within a few hours. Instead of doing monotonous regression tests, the tester can focus on polishing new features.

It doesn’t mean, however, that automation testing scripts have to replace manual testing altogether. Ideally, they have to go hand-in-hand to ensure the best quality. On top of that, there’s no alternative for manual ad-hoc or exploratory tests, and these two often detect critical errors. On the other hand, debugging through automated testing software can save a lot of time and eliminate human-factor errors.

Automated testing use cases, objectives, and advantages

Generally, you use automated software QA services when:

  • You have a complex, multiple-features product.
  • Your product comes with regular updates, and you don’t get enough time to test them manually.

Except for time-saving and speed, automation has many other objectives like improving test efficiency, covering broader functions, decreasing test cost, and increasing test frequency. And don’t take it from us only—the International Software Testing Qualification Board (ISTQB) also states that in its program documents.

The advantages of automated website testing include:

  • Running more tests per build.
  • Testing where manual check-up isn’t an option (real-time, remote, parallel types of automated testing).
  • Covering the widest test area possible.
  • Faster results and feedback.
  • Fewer human errors.
  • More efficient use of testing resources.
  • Improved system reliability.
  • More consistent tests.

To get the most benefit from automation, you should set up a smooth testing process. Here’s how NERDZ LAB does it.

Automated testing in 5 steps

To ensure that automated tests detect every weak spot before your customers do, you should put in place a consistent and straightforward strategy. Our QA services include selecting test tools, determining the testing area, and planning, designing, developing, and performing automated tests. We break this process down into five steps. Let’s look at each of them.

Step 1: Choosing testing tools and building a framework

This is the first and most important step where you have to choose the tools according to your product design. With so many options on the market, it can be a long home run. Here you should consider the type of app platform (web or mobile), the types of QA testing you’d like to perform, and your budget.

Every company follows its own approach and order when building a framework, but there are essential things you have to choose at this point. They include:

  • Test framework or library. These can be paid, like QTP, LoadRunner, or TestComplete or open-source, like Selenium, ApacheJMeter, The Grinder, Cypress, and more. Your choice will also depend on the platform type—Appium and Selenium are best suitable for mobile, while we use Puppeteer, Selenium, and Playwright for web testing.
  • Test runner. That’s a tool that will organize the tests. You can choose among Jest, Mocha, JUnit, and TestNG.
  • Build tool based on language. For instance, you can select the following dependency management and build tools in Java: Apache Ant plus Apache Ivy, Apache Maven, and Gradle to connect to different libraries.
  • Continuous integration (CI) tools. There are various CI server solutions as well as numerous plugins that you can choose from both on-premise and in the cloud to integrate your test execution into the CI/CD pipeline.
  • Version control system. For example, you can use Git to create a repository to manage the teamwork done on a project and keep track of changes.
  • Test execution mode, which is a significant matter to decide on. We can create an agent – a computing unit with installed software like the specific OS and libraries—to run tests on. You can run tests either on a local computer or in the cloud.
  • Test library to test the UI, when necessary.
  • Test automation reporting tools, if necessary.

Step 2: Determining the scope of testing

At this stage, you must determine what kind of tests have to be automated. Here’s the list we recommend for automation:

  • Tests for critical business flows.
  • Repetitive test cases.
  • Monotonous test cases which are prone to human error.
  • Cases with multiple data sets.
  • Tests taking too much time if done manually.

Step 3: Planning, designing, developing

Once you decide on the tools and the scope of work, it’s time to plan, design, and develop the automated testing process.

  • At the planning stage, you have to do the following:
  • Outline the testing standards and guidelines.
  • Determine what kind of hardware, software, and network equipment you need.
  • Set the test data and performance measure requirements.
  • Schedule testing.
  • Specify the procedure to control test configuration and environment.

At the design stage, you must determine the number of tests, their paths, functions, and conditions.

The development stage includes unit development and integration, system test, and acceptance test based on the findings made at earlier stages. At this stage, when the autotests are created, we rely on the Page Object Model (POM) to differentiate the test logic from test execution.

As a conventional design pattern in test automation, POM is used to create an object repository for web UI elements. We appreciate this approach as it allows us to reduce code duplication and shorten the testing time. All because the same objects from that repository can be reused for different testing purposes and UI parts. It means that if there is a change in one web element, you need to make the change in just one class file and not in all the different test scripts where this web element is included.

Step 4: Script execution

Once the script is written, the automation framework is ready to run it. It can be done through GUI- or code-base framework or CI environments. These frameworks load the user interface based on the script specifications, simulate the user’s actions, and report the results. This way, at this stage, the actual testing scenarios are unfolded.

Step 5: Further testing support

As you add new features to the product, the test scripts have to be updated accordingly. Why? Because discrepancies between the script specification and the product features can lead to test failures, making it impossible to detect bugs and issues.
Look at this example. You used to apply a script to populate text into the text field, but in the updated version, the text field was replaced with the drop-down list. As you might guess, in that case, we need to update the script immediately.

Mobile app testing

So, how do you make sure your app is up and running?

Automated testing is an essential component of QA services as it ensures your clients receive the expected product with all its features and functionalities. By adopting various types of automation testing at different design and development stages, you will save testing costs, reduce human error, and shorten your time to market.

For the NERDZ LAB team, automated testing is a must-have on every product development stage as it allows us to deliver the quality that your clients won’t question. Contact us today, and let’s talk about how we can help you create the product your audience is looking forward to!