What is system testing? – TechTarget Definition (2024)

By

  • Kinza Yasar,Technical Writer
  • Ryan Black,Assistant Site Editor

What is system testing?

System testing, also referred to as system-level testing or system integration testing, is the process in which a quality assurance (QA) team evaluates how the various components of an application interact together in the full, integrated system or application.

System testing verifies that an application performs tasks as designed. It's a type ofblack box testing that focuses on the functionality of an application rather than the inner workings of a system, which white box testing is concerned with.

System testing, for example, might check that every kind of user input produces the intended output across the application. System testing is the third level of testing in the software development process. It's typically performed before acceptance testing and after integration testing.

What is system testing? – TechTarget Definition (1)

Importance of system testing

System testing is imperative for interconnected systems because any system or software defect can cause extreme complications for the consumers. For example, in 2014, Nissan had to recall over 1 million cars due to a defect in the airbag sensor detectors.

With system testing, a QA team determines whether a test case corresponds to each of an application's most crucial requirements anduser stories.

The following are the main benefits of system testing:

  • Improved product quality. A comprehensive system testing process ultimately boosts the product quality. Since an integrated system is tested through multiple test sets in a product development cycle, it provides a glimpse into whether a product can successfully work across different platforms and environments.
  • Error reduction. Some errors are bound to happen during the development of complex systems. System testing verifies a system's code and functionality against its requirements, so errors that aren't detected during integration and unit testing can be exposed during system testing.
  • Cost savings. It can be more time-consuming to fix a system defect that's detected later in the project lifecycle. Conducting timely and continuous system testing not only reduces unexpected costs and project delays, but also provides project managers with better budget control.
  • Security. Well-tested products are reliable. They ensure that the tested system doesn't contain potential vulnerabilities that can put end users and system data at risk of potential threats.
  • Customer satisfaction. System testing offers visibility into the stability of a product at every stage of development. This builds customer confidence and improves the overall user experience.
  • Easier code modification. System testing can identify code problems during software development. Fixing older code that has gone into the production environment is much harder than modifying it while it's still in development.
  • Software performance. Performance-based system tests can help understand changes in a system's performance and behavior, such as memory consumption, central processing unit utilization and latency. These tests raise red flags if system performance degrades significantly, enabling developers to take proactive action.

Types of system testing

With system testing, a QA team gauges if an application meets all of its technical, business andfunctionalrequirements. To accomplish this, the QA team might utilize various types of software testing techniques that determine the overall test coverage for an application and help catch critical defects that hamper an application's core functionalities before release.

The following are the common types of system testing techniques:

  • Performance testing. Performance testing measures the speed, average load time, stability, reliability and peak response times of the system under various conditions. It's typically coupled with stress testing and may include both hardware and software testing tools.
  • Usability testing. These are tests to evaluate if a system is easy to use and functional for the end user. Metrics, including user error rates, task success rates, the time it takes a user to complete a task and user satisfaction, are used during testing.
  • Load testing. This is testing to determine how a system or software performs under a real-life extreme load and test scenarios. Metrics, such asthroughput, number of users and latency, are measured through this testing.
  • Regression testing. Also known as sanity testing, it ensures that all changes introduced into an application or code during system testing, recent code changes or updates haven't caused any new bugs or issues. Regression testing is responsible for the functionality of the existing features of a system or software.
  • Migration testing. This is conducted to ensure smooth migration of legacy systems to new systems without disruptions, data loss or downtimes.
  • Scalability testing. This measures an application's or system's capability to scale up or down when trying to meet the changing user requirements.
  • Functionality testing. This is conducted to validate a system's functionality against its functional and business requirements.
  • Recovery testing. This is a type of nonfunctional testing done to ensure that a system is capable of recovering from certain system errors, crashes and failures.
What is system testing? – TechTarget Definition (2)

Phases of system testing

System testing examines every component of an application to make sure that they work as a complete and unified whole. A QA team typically conducts system testing after it checks individual modules with functional or user story testing and then each component throughintegration testing.

If a software build achieves the desired results in system testing, it gets a final check viaacceptance testingbefore it goes to production, where users consume the software. An app dev team logs all defects and establishes what kinds and numbers of defects are tolerable.

Typically, system testing goes through the following stages:

  1. Test environment. In this initial stage, a test server is set up for creating a testing environment, which enables a tester to run a set of predefined test cases and test scripts.
  2. Test case. This stage generates the test case for the testing process.
  3. Test data. At this stage, the data to be tested is generated.
  4. Test case execution. Once the test case and test data are generated, test cases are executed.
  5. Reporting of defects. This is the stage where defects in the system are identified.
  6. Regression testing. This is done to see if any problems were introduced into the development process by the previous stages.
  7. Defect logging. All the identified defects are fixed at this stage.
  8. Retest. A test is repeated if it's unsuccessful.

System testing tools

Various commercial and Open Source tools help QA teams perform and review system testing results. These tools can create, manage and automate tests or test cases, and they might also offer features beyond system testing, such as requirements management capabilities.

Commercial system testing tools include Froglogic's Squish and Inflectra's SpiraTest, while open source tools include Robotium and SmartBear's SoapUI.

Not every software tester has access to all of the available testing resources. For example, a tester working for a large enterprise likely has access to expensive automated testing that might not be available to smaller organizations.

Each software development team follows its own preferred method of application testing. Select a software testing model by exploring these five factors first.

This was last updated in March 2023

Continue Reading About system testing

  • 6 key phases of the software testing lifecycle
  • Find the right software testing methods for your dev process
  • How to develop a dependable regression testing strategy
  • Open core vs. open source: What's the difference?

Related Terms

performance testing
Performance testing is a testing measure that evaluates the speed, responsiveness and stability of a computer, network, software ... Seecompletedefinition
Scrum master
A Scrum master is a facilitator for an Agile development team. They are responsible for managing the exchange of information ... Seecompletedefinition
Testing as a Service (TaaS)
Testing as a service (TaaS) is an outsourcing model in which testing activities associated with some of an organization's ... Seecompletedefinition

Dig Deeper on Software test types

  • Is continuous testing in DevOps worth the effort?By: AmyReichert
  • 5 essential best practices for QA teams to adoptBy: GerieOwen
  • smoke testingBy: AlexanderGillis
  • The major differences between QA and SDETsBy: AmyReichert

As an expert in software testing and quality assurance, I bring a wealth of knowledge and experience to the table. My expertise spans various testing methodologies, tools, and best practices, making me well-equipped to provide valuable insights into the topic at hand.

The article you've shared, written by Kinza Yasar and edited by Ryan Black, delves into the concept of system testing. System testing is a critical phase in the software development process where the integrated system or application is evaluated to ensure that its components interact seamlessly and that it performs tasks as designed. Here's a breakdown of the key concepts discussed in the article:

1. System Testing Overview:

  • Definition: System testing is the third level of testing in the software development process, focusing on the interaction of various components in the integrated system.
  • Type: Black box testing.
  • Objective: Verify that the application performs tasks as intended.

2. Importance of System Testing:

  • Risk Mitigation: Identifies defects early to prevent complications for end-users.
  • Benefits:
    • Improved product quality.
    • Error reduction.
    • Cost savings.
    • Enhanced security.
    • Customer satisfaction.
    • Easier code modification.
    • Software performance.

3. Types of System Testing Techniques:

  • Performance Testing: Measures speed, stability, and reliability under various conditions.
  • Usability Testing: Evaluates ease of use and functionality for end-users.
  • Load Testing: Assesses system performance under extreme load.
  • Regression Testing: Ensures new changes don't introduce new bugs.
  • Migration Testing: Ensures smooth migration of legacy systems.
  • Scalability Testing: Evaluates the system's ability to scale.
  • Functionality Testing: Validates system functionality against requirements.
  • Recovery Testing: Ensures system recovery from errors, crashes, and failures.

4. Phases of System Testing:

  • Test Environment: Setting up a test server for creating a testing environment.
  • Test Case: Generating test cases for the testing process.
  • Test Data: Generating data to be tested.
  • Test Case Execution: Executing test cases.
  • Reporting of Defects: Identifying defects in the system.
  • Regression Testing: Checking for problems introduced in previous stages.
  • Defect Logging: Fixing identified defects.
  • Retest: Repeating tests if unsuccessful.

5. System Testing Tools:

  • Commercial Tools: Froglogic's Squish, Inflectra's SpiraTest.
  • Open Source Tools: Robotium, SmartBear's SoapUI.
  • Purpose: Create, manage, and automate tests, and may offer additional features beyond system testing.

The article emphasizes the significance of system testing in ensuring a robust and reliable software product, touching on the phases involved, types of testing techniques, and the tools available for effective execution. It provides a comprehensive overview for both beginners and seasoned professionals in the field of software testing.

What is system testing? – TechTarget Definition (2024)
Top Articles
Latest Posts
Article information

Author: Manual Maggio

Last Updated:

Views: 5906

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Manual Maggio

Birthday: 1998-01-20

Address: 359 Kelvin Stream, Lake Eldonview, MT 33517-1242

Phone: +577037762465

Job: Product Hospitality Supervisor

Hobby: Gardening, Web surfing, Video gaming, Amateur radio, Flag Football, Reading, Table tennis

Introduction: My name is Manual Maggio, I am a thankful, tender, adventurous, delightful, fantastic, proud, graceful person who loves writing and wants to share my knowledge and understanding with you.