What is System Testing – The ultimate guide for beginners

Tram Ho

What is System Testing?

System Testing means testing the whole system. All modules / components are integrated in order to verify that the system is working properly or not.

System Testing is done after Integration Testing. It plays an important role in releasing a high quality product.

Process of integrating hardware and software systems to verify that the system meets the specification requirements.

Verification: Confirm by the verification and regulation of the objective envidence that the specific requirements have been met.

If an application has 3 modules A, B, and C, then the combined test of A & B, or B & C, or A & C modules is known as Integration testing. And integrating all 3 modules and testing it as a complete system is called System Testing.

Example of System Testing

An automobile manufacturer does not produce the entire vehicle. That each component of the vehicle is divided, for example: seats, mirrors, cables, engines, chassis, wheels, …

After manufacturing each part, it will be independently tested to see if it works properly, and that is Unit Testing.

When each part is working properly, they will be assembled with another. The assembly is checked for any problems with the function of each component, and whether both components work together as expected. That is called Integration testing.

When all components are assembled together, and the car is ready. But actually it is not ready.

We need to check the whole vehicle on different aspects according to defined requirements such as: does the car work smoothly, breaks, gears and other functions are working properly, the car does not have any abnormal signs after going 2500 miles continuously, the color of the car is easily accepted and loved, the car can run on many types of flat, rough roads, … called System testing, and it has nothing to do with Integration testing.

This example works the way it is expected and the customer is convinced of the effort required for System testing.

I give this example to emphasize the importance of system testing: any system needs to perform system testing.

Approach

System test is performed when integration testing is completed.

This is the black box test type. The test evaluates system performance from the user’s perspective, with the help of specification documents. It does not require any internal knowledge about the system such as design or code structure.

It contains functional and non-functional areas of the application / product.

Focus criteria : Focus criteria include:

  1. External interface
  2. Multi-function and complex functions
  3. Security
  4. Rehibilitate
  5. Performance
  6. Operation and user interact smoothly with the system
  7. Ability to install
  8. Document
  9. Calculated use
  10. Load / stress

Why is System Testing (ST) required?

  1. It is important to complete a complete testing cycle, and ST is a stage where that is done.
  2. ST is done in an environment similar to the production environment, so stakeholders can get good ideas from user reactions.
  3. It helps minimize post-deployment troubleshooting and support calls
  4. In the STLC (Software Testing Life Cycle) phase, the application architecture and the business requirements are tested

ST is very important and it plays an important role in releasing quality products to users.

Let’s take a look at the importance of System testing through the examples below that cover our daily tasks:

  • What happens if an online transaction fails after confirmation?
  • What happens if an item is placed in the cart of an online website that does not allow ordering?
  • What if I want to create a new label in my Gmail account and get an error when I click the Create tab?
  • What happens if the system crashes when the load increases on the system?
  • What happens if installing a software on the system takes longer than expected and eventually fails?
  • What happens if the site response time is much longer than expected after enhancement?
  • What happens if the site is too slow for users to book travel tickets?

The above are just a few examples to show how System testing will affect if not done properly.

All of the above examples are the result of system testing not being performed or performed improperly. All integrated modules should be tested to ensure that the product works as expected.

How to perform System Test

The System Test is a fundamental part of software testing, and the test plan must always contain specific space for this type of test.

To test the entire system, the requirement and expectation must be clear and the tester also needs to understand the real-time usage of the application.

In addition, most third-party tools, OS versions, and OS architecture can affect system functionality, performance, security, recovery or installation.

Therefore, while testing the system, a clear picture of how the application is used, and the types of problems that can be faced in practice are useful. Moreover, the requirement document is just as important as the application interpretation.

Clearing and updating the requirement document can help tester avoid some misunderstandings, assumptions and questions.

In a nutshell, a crisp, clear documentation with the latest updates and an understanding of real-time usage can make System testing more efficient.

This test is conducted systematically and systematically.

Here are the different steps involved in performing this type of test:

  • The first step is to create a test plan
  • Create System Test case and test script
  • Prepare required test data for this type of test
  • Execute system test case and script
  • Report a bug. Re-test the bug after fixing
  • Test regression to verify the effect of changes in code
  • Repeat the test life cycle until the system is ready to deploy
  • Sign off from the test team

Test what?

The following points are mentioned in system testing:

  • End to end testing: includes interaction verification between all components and with external peripherals to ensure that the system works correctly in any scenario mentioned in this test.
  • Verify the inputs provided to the system will provide the expected results
  • Verify that all functional and non-functional requirements are tested to see if it works as expected
  • Ad-hoc and exploratory testing can be performed in this type of test after the test script is executed. Exploratory testing and ad-hoc testing help find bugs that cannot be found in test scenarios because it gives the tester freedom to test based on their experience and intuition.

Advantages

Some advantages of System Testing:

  • This test includes end to end scenarios for system testing.
  • This test is conducted in an environment similar to the Production environment, thereby helping to understand the user’s perspective and avoid issues that may occur when the system goes live.
  • If this test is done systematically and methodically, it will help minimize problems after production.
  • This test tests both application architecture and business requirements.

Entry criteria / End criteria

Entry criteria:

  • The system must pass the end criteria of Integration testing. For example, all test cases must be executed and free of critical errors or have Immediately, Urgent, High priority in the open state.
  • Test Plan must be approved and signed off.
  • The test case / Test scenario must be ready to execute
  • Test scripts must be ready to execute
  • All non-functional requirements must be available and similar test cases must be created
  • The test environment must be ready.

End criteria:

  • All test cases must be executed
  • No bug critical, or high priority, or related to security in the open state.
  • If any medium or low priority bug is open, then it must be done with the customer’s approval.
  • Final report must be submitted.

System Test Plan

Test Plan is a document used to describe the purpose, goal, scope of the product being developed. What needs to be tested and what is not to be tested, the test strategy, the tools used, the required environment, and all other details are recorded to conduct the test.

The test plan helps to conduct tests methodically and properly, and helps to avoid risks and issues while testing is performed.

System Test Plan covers the following:

  • Purpose and purpose are defined for this test
  • Range (Functions that are tested, functions that have not been tested are listed)
  • Acceptance criteria (criteria that the system will accept). For example, the point mentioned in the acceptance criteria must be in a pass state
  • Entry criteria / End criteria (Defines criteria when system testing begins and when it is considered completed.)
  • Test Schedule (Estimate testing will be completed in a specific time)
  • Test strategy (including test techniques)
  • Resources (Number of resources required for testing, their role, available resources, …)
  • Test environment (Operating System, Browser, Platform)
  • Test Case (List of test cases executed)
  • Assumptions (If there are any assumptions, it should be recorded in the test plan).

Procedures, procedure for writing System Test Case

System test cases cover all scenarios and use cases and it also covers functions, non-functions, user interfaces, and security-related test cases. System test cases are written in the same way as functional test case writing.

The system test case includes the following fields:

  • Test case ID
  • Test Suite name
  • Description – A description of the test case to be executed
  • Steps – Steps to perform the test case
  • Test Data – Dummy data is prepared for testing
  • Expected result – Expected result based on requirement
  • Actual Result – The result received after executing the test case
  • Pass / Fail
  • Remarks

Types of System Testing

Functionality Testing ( Functional Testing ): Ensure the function of the product works as required, within the capabilities of the system.

Recoverability Testing (Test recovery): Ensure the system has good resilience from various input errors and other error situations.

Interoperability Testing : Ensuring the system can work well with third products or not.

Performance Testing : Ensures the performance of the system under various conditions.

Scalability Testing ( Scalability Test): Ensures the scalability of the system in different conditions such as user, geographic or resource expansion.

Reliability Testing : Ensuring the system can operate for a long time without any errors.

Regression Testing : Ensures the stability of the system when it is integrated with different subsystems and performs various maintenance tasks.

Documentation Testing : Ensure the user manual and other documents are correct and usable.

** Security Testing ** (Security test): Ensure the system does not allow unauthorized access to data or resources.

Usability Testing (usability test): Ensures the system is easy to use, easy to learn and easy to operate.

In addition, there are other types of System testing as follows:

Differences between System Testing and Acceptance Testing

System TestingAcceptance Testing
System Testing is testing the entire system. The end-to-end testing of the system is performed to verify that all of the scenarios are working as expected.Acceptance Testing is carried out to verify that the product meets customer requirements.
System Testing includes functional and non-functional tests, and is performed by testers.Acceptance Testing is a functional test performed by testers as well as customers.
ST uses the test data generated by the tester.Acceptance Testing uses real data / production.
The entire system is tested to test the function and performance of the product.Acceptance Testing is performed to verify that the business request solves what the customer is looking for.
Defect found can be fixed.Any defect found in the acceptance test is considered a failure of the product.
System testing includes: system testing and system integration testing.Acceptance Testing includes: Alpha testing and Beta testing.

Tips for performing System Testing

  1. Replicate real-time scenarios rather than making ideal tests because the system will be used by end users rather than trained testers.
  2. Verify system response under different conditions because people don’t like to wait or see wrong data.
  3. Install and configure the system according to the documentation as that is what the end user will do.
  4. Attract people from different areas like BA, developer, tester, customer.
  5. Regular testing is the only way to ensure that the slightest change in code to fix a bug does not create a serious bug in the system.

Reference: https://www.softwaretestinghelp.com/system-testing/

Share the news now

Source : Viblo