| USAMA MUHAMMAD ASHRAF
What to Test in System Testing?
- In System Testing tester performs End-to-End testing to make sure that all functionalities are working as same as Unit and Integration testing. It verifies that all components are working fine after interacting with the System.
- It verifies that given input to the system gives expected result or not.
- It also verifies all functional and non-functional requirements either they are working fine as expected or not.
- Sometimes tester performs Ad-hoc testing on System to verify unseen scenarios which cause bugs later on.
- Verify thorough testing of every input in the application for desired output.
- In System Testing we can also check User experience with the application.
Entry/Exit Criteria:
Entry Criteria:
- The software or application should have passed the exit criteria of Integration Testing i.e. all test cases should have been executed and passed.
- Test Plan for this testing should be ready
- Test Scenarios and test cases should be ready to perform system testing
- Test Plan and All test cases should be approved and sign off
- All non-functional requirements should be available and test cases for the same should have been created
- Testing environment is also ready to perform system testing
Exit Criteria:
- System should have passed all test cases of system testing
- Test Plan executed in a well-planned manner
- No critical bugs or high severity or priority bugs exist
- All Functional test cases should have been passed
- All non-functional requirements are also fulfilled
- Exit report should be submitted
Advantages of System Testing:
- All bugs or defects of the application identified after interacting with the system.
- It helps to verify different types of User experiences with different type of Users.
- It also helps to verify the Performance of the System after Software integration with no of maximum requests and users.
- It also helps to identify bugs after end-to-end testing
- If this testing is done in a systematic and proper manner, then it would help in mitigating the post-production issues.
Types of System Testing:
There are many types of testing performed in this level of Testing to identify maximum no of bugs. Some of them are given below:
Functional Testing:
This type of testing the software is to ensure the requirements of an application or software, verifying that either the app or software works as per customer needs. Functional Testing basically concerned about what will be the result of this executing process.
Regression Testing:
Regression Testing is defined as the type of software testing to confirm that a recent program or a change in code has not adversely affected existing features.
Performance Testing:
The purpose of this testing is to check how the software response. It eliminates the reason behind the slow and limited performance of the software.
For Performance testing, a well-structured and clear specification must be defined. Otherwise, the result of the test is not obvious either it is pass or fail.
Load Testing:
Load testing is performing to check that how much load software can bear in a specified and limited time. To verify that how more users or requests can endure in specified capacity or not.
Stress Testing:
Stress Testing is done by increasing the number of users (at the same time) on an application to an extent that the application breaks down. This is done to verify the point at which the application will break down.
Efficiency:
The purpose of this testing is to check how much the system or software or application is efficient according to current user experience specification. How much efficiently used in the market or some specified environment.
Reliability:
Reliability test assumes that whether the software system is running without fail under specified conditions or not. The system must be run for a specific time and number of processes. If the system is failed under these specified conditions, reliability test will be failed.
Portability:
The basic purpose of this testing is to ensure that the software is running on different operating systems or running on different machines. This type of testing to check how much the software is portable either it is working same in different environments or not.
Graphical User Interface (GUI) Testing:
In this testing we verify the GUI of the software system, either it is implemented according to all type of users or not. Its GUI interact the Users correctly or not.
Sanity Testing:
Sanity Testing is performed when the build is released with a change in the code or functionality or if any bug has been fixed. It verifies that the changes done have not affected the code and no other issue has occurred because of that and the system works as previously.
Smoke Testing:
Smoke Testing is a testing that is performed on the build to verify if the build is further testable or not. It verifies that the build is stable to test and all the critical functionalities are working fine. Smoke testing is done for the complete system i.e. end to end testing is done.
Conclusion:
Basically in System Testing, Tester verifies the functionality of the software or application after interaction with the system. If software or application is working fine with System then its good, otherwise it can cause some bugs or crash the apps. In this Level of Testing we can cover maximum scenarios related to the system and also verify that how user will interact with this System and how they will use it. It covers all types of testing to make sure that all functionalities are working fine as per given requirements from the customer end. It helps the team to verify the Performance of the Software with the System.
Join us next time, as we continue our journey of learning canvas apps.Click here to learn more about Imperium's Power Apps Services. We hope this information was useful, and we look forward to sharing more insights into the Power Platform world.