System Testing
We had discussed about Integration Testing in the last session, and We are going to discuss about System Testing in this session. But before we discuss about System Testing, We must know about Levels of Testing, and We have already discussed about Levels of Testing in our previous session.
Just to give a Summary on Different Levels of Testing. There are 4 different Levels of Testing
Different Levels of Testing
- Unit Testing
- Integration Testing
- System Testing
- UAT (User Acceptance Testing)
Integration Testing has already been discussed in the previous session, So we will discuss about System Testing in this session.
What is System Testing
System Testing is the 3rd Level of Testing in a Software Development Life Cycle (SDLC).
This is performed after Integration Testing is completed.
System Testing is also called End to End Testing.
When all the Components of a Software are integrated together and then tested altogether as a System, then it is called System Testing.
System Testing is performed by QA Engineers, So It falls under Black Box Testing.
What do we test in System testing
We not only test the functionality of the Software in System Testing, But we test a lot’s of other things as well in System Testing. So System Testing is categorized as following
Types of System Testing
- Integration Testing – We test the communication between each and every Unit when it is working as a system. Integration Testing is also tested during System Testing.
- Functional Testing – When we test the functionality of a System, It is called Functional testing. Functional Testing is a type of System Testing.
- Security Testing – Security of an Application is also Tested during System testing. Suppose if we are testing an online banking application, then the security comes first, and it becomes very important aspect.
- Performance Testing – When a Software Application is built, Let’s say an eCommerce Website, then We have to check that Performance of the eCommerce Website should not be impacted if there are a lot’s of users are trying to access the Website altogether. For Example, the Website shouldn’t crash if 1000 users are trying to access the Website altogether. So, this type of testing is called Performance Testing and it is also a type of System Testing.
- Load Testing – When a Software Application is built, Let’s say an eCommerce Website, then the number of Users trying to access the Website altogether, are called, load on the Website, So If we want to check that how many users can access the Website together, then that type of testing is called Load Testing.
So these are some types of System Testing. We will discuss all these in our coming sessions in detail.
Example of System Testing
Example 1
Let’s take an example of Internet Banking as a System and let’s take examples of different Components of Internet Banking.
such as
- Login to Net Banking.
- Check Balance Online.
- Transfer Amount to other account in the same bank.
- Transfer Amount to other account in some other bank.
- Logout from Net Banking.
Let’s say that Unit Testing and Integration Testing was passed and Now we must do System Testing.
So, what will we do, We will test it “System as a whole”
- first we will login to Net Banking.
- Then we will check Balance. Let’s say it is 50000 INR
- Then we will transfer some amount let’s say 2000 INR to our friends account who has account in the same bank.
- Then we will check whether 2000 INR has been debited or not from our account.
- We will check balance of our account and it should be 48000 INR.
- We will check that our friends account has been credited with 2000 INR or not.
- We must check the total balance of the Bank as well, Let’s say before this Transaction, the total balance of the Bank was 1 Crore, So it should be 1 Crore even now because Money has been transferred from account to other account but both the accounts are with the same bank.
- Now, We will transfer some amount let’s say 3000 INR to one of our family account who has account in some other bank.
- Then we will check whether 3000 INR has been debited or not from our account.
- We will check balance of our account and it should be 45000 INR.
- We must check the total balance of the Bank as well, Let’s say before this Transaction, the total balance of the Bank was 1 Crore, So it should be less than 3000 in 1 Crore even now because Money has been transferred from account to other account and account where money is transferred belongs to some other Bank.
Example 2
Let’s take an example of a Calculator, eCommerce Website and a Backend System that creates Promotions for eCommerce Website. Calculator Application is created and integrated with eCommerce Application, So that the Order Total can be done properly.
If suppose Company wants to give discount to it’s Customers during Christmas and New Year Time. If any customer purchases anything from the eCommerce, they will be given some amount of Discount based on their purchase. So, the Backend System will have to create a Promotion and when we create an Order then the Promotion must be applied to the Order.
So, If we want to do System Testing for this Scenario, then we have to follow some steps.
Navigate to Website – Here, we are testing that the Home Page of the Website is launching or not.
Search for some Product – Here we are testing that we are able to search the Product. Integration Testing between Home Page to Product Search Page.
Click on a Product and move to PDP Page – Here we are Testing that we are able to go to PDP Page from Product Search Page. Integration between Product Search Page to PDP Page.
Add the Product to Shopping Bag – Here we are testing that are we able to add the Product to the Shopping Bag. Integration between PDP Page to Shopping Bag Page.
Go to Shopping Bag Page – Here we are testing that we are able to move from PDP to Shopping Bag Page – Integration between PDP Page to Shopping Bag Page.
We should validate that the Products are added to the Shopping Bag – Integration between PDP Page to Shopping Bag Page.
Order Total on the Shopping Bag Page must be shown properly – Here we are testing that Calculator is Integrated to the eCommerce Website and working properly. Integration between Calculator and eCommerce Website
Order Total Calculation will be done by the Calculator which is integrated with the eCommerce Website, So that Order Total can be done properly.
So, the Calculator should multiply the price of a product by 2 if we have added 2 quantities of a product.
Calculator should sum up all the products prices which we have added to our shopping bag.
Apply promotion using the coupon code – Here we are testing that the Promotion created in the Backend system is getting applied on the Order. Integration between Backend System and ecommerce Website.
Promotion should reduce the Order Total accordingly – Here we are testing that the Calculator Application should calculate the reduced order total price according to the promotion. like if it is 20% off, Price will be reduced by 20%.
Navigate to the Checkout Page – Here we are testing that we are able to move from Shopping Bag Page to Checkout Page. Integration between Shopping Bag Page to Checkout Page.
Complete Checkout and Create Order
So, This is how, a Complete End to End or System testing is done.
These were some simple examples of System Testing.
======================================================================
Importance or Advantages of System testing
System Testing is very important. Here are few advantages of System Testing.
- Communication between each and every Unit – Transfer Money and then check Balance shows that the integration between both the Units (Transfer Money and Check Balance) is working fine and as expected.
- Testing all the functionalities of the System – We have tested all the functionalities of the System in the above example.
- Testing with different inputs and validating it for different output – We tested the transfer money with all the inputs such as 2000 and 3000 INR and transferring it to the account with same bank and account with different bank and tested the out put for that.
- No Coding Knowledge required – No need to have Coding Knowledge
- Real Time Defects Finding – We test an entire System during System Testing, So we can find those defects, which can not be found during Unit Testing and Integration Testing
- Increased Scope – Testing Scope increases in System Testing as we test the integration between all the Units. We test entire System. We do functional and non-functional testing both.
- Production Like Environment – The Testing environment is somewhat similar to Real Life Application which will be used by the end user in Production environment.
Limitations of System Testing
Here are few Limitations of System Testing
- No Access to Code and Internal Architecture of the Software – System Testing is performed on the System or Software rather than code of the Software, So We don’t have access to the Code and the Internal Architecture of the Software.
- Time Consuming – We need to follow a lot’s of steps while doing System Testing. Need to go through the Design Documents, then need to write Test Scenarios based on the Design Document, then need to write Test Cases based on the Test Scenarios, and then Test Execution is done. So it requires a lots of time to do System Testing.
- Needs Documentation – Design Documents Review, test Scenarios Preparation, Test Cases Preparation, So there is a lot’s of Documentation involved in System Testing.
- Requires Skilled and Experienced Resources – Only Skilled and Experienced Testers can review Design Document and write Test Scenarios and Test Cases, So we need skilled and experienced resources to do System Testing.
Summary
We have covered below topics in this session
- Levels of Testing
- What is System Testing
- Types of System Testing
- Examples of System Testing
- Example of System Testing
- Importance of System Testing
- Advantages of System Testing
- Limitations of System Testing
- Disadvantages of System Testing
Question
System testing is done at what level of Testing?