EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

System Testing

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » Software Testing Tutorial » System Testing

System-Testing

Introduction to System Testing

System testing is a process of testing the entire system that is fully functional, in order to ensure the system is bound to all the requirements provided by the client in the form of the functional specification or system specification documentation. In most cases, it is done next to the Integration testing, as this testing should be covering the end-to-end system’s actual routine.

This type of testing requires a dedicated Test Plan and other test documentation derived from the system specification document that should cover both software and hardware requirements. By this test, we uncover the errors. It ensures that all the system works as expected. We check System performance and functionality to get a quality product. System testing is nothing but testing the system as a whole. This testing checks complete end-to-end scenarios as per the customer’s point of view.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Functional and Non-Functional tests also done by System testing. All things are done to maintain trust within the development that the system is defect-free and bug-free. System testing is also intended to test hardware/software requirements specifications. System testing is more of a limited type of testing; it seeks to detect both defects within the “inter-assemblages”.

There are two types of Tests:

Those are specialized systems and applications

There are two types

Before jump into the System test directly I want you to know the flow of testing. So you will get a clear idea. Please look at the following diagram.

the flow of testing

Types of System Testing

Below are the different types of testing which are as follows:

Types of System Testing

1. Functionality Testing

  • This testing makes sure that the functionality of a product is working as per the requirements specification, within the capabilities of the system.
  • Functional testing is done manually or with automated tools.

2. Recoverability Testing

  • This testing determines whether operations can be continued after a disaster or after the integrity of the system has been lost.
  • The best example of this supposes we are downloading one file. And suddenly connection goes off. After resuming connection our downloading starts at where we left. It does not start from starting again.
  • This used where continuity of the operations is essential

3. Performance Testing

  • This testing makes sure the system’s performance under various conditions, in terms of performance characteristics.
  • This testing is also called compliance testing with respect to performance.
  • This testing ensures that meets the system requirements
  • It checks when multiple users use the same app at a time, then how it responds back

Performance testing can be categorized into three main categories like speed, scalability, stability.

Popular Course in this category
Sale
Software Testing Training (9 Courses, 2 Projects)9 Online Courses | 2 Hands-on Projects | 60+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.5 (8,180 ratings)
Course Price

View Course

Related Courses
Penetration Testing Training Program (2 Courses)TestNG Training (4 Courses, 2 Project)

4. Scalability Testing

This testing makes sure the system’s scaling abilities in various terms like user scaling, geographic scaling, and resource scaling.

5. Reliability Testing

  • Reliability testing makes sure that the system is bug-free.
  • This testing makes sure the system can be operated for a longer duration without developing failures.

6. Documentation Testing

This testing makes sure that the system’s user guide and other help topics documents are correct and usable.

7. Security Testing

  • Testing confirms that the program can access authorized personnel and that authorized personnel can access the functions available to their security level.
  • This testing makes sure that the system does not allow unauthorized access to data and resources.
  • The purpose of security testing is to determine, how well a system protects against unauthorized internal or external access or willful damage.

There is the following area where we generally can check for security:

  • Authentication
  • Authorization
  • Data validation
  • Transport security
  • Data protection
  • Session management

8. Usability Testing

To make sure that the system is easy to use, learn and operate

9. Requirements Testing

Every system is a requirement tested.

  • Direct observations of people using the system.
  • Usability surveys have been done under this testing.
  • User tests under this testing. Is also called as Beta testing.
  • This testing test the system as to how the real user will work in the environment.
  • Usability testing is mainly used for the design of the application.
  • In a usability test, actual users try to get typical goals and tasks with a product under controlled conditions.

This system is used to determine:

  • How simple it is to understand application usage.
  • How easy it is to execute an application process.

10. Load Testing

This testing determines, how the application behaves when multiple users access it simultaneously across multiple locations.

  • This testing is done to determine if the system performance is acceptable at a pre-determined load level.
  • Load testing evaluates system performance with the predefined load levels.
  • It checks the normal and predefined conditions of the application.

11. Stress Testing

This testing generally checks the system is going to continue to function when subjected to a large volume of data than expected.

  • Stress testing may contain input transactions, internal tables, communication channels, disk space, etc.
  • Stress testing checks that the system should run as it would in a production environment.
  • It checks the system under extreme conditions.
  • Stress Testing is also known as Endurance Testing.

12. Configuration Testing

  • Configuration testing is checking that with the multiple combinations of applications with hardware.
  • This testing checks for a compatibility issue.
  • Determine minimal and optimal H/W and S/W configuration.
  • This testing determines the effects of adding or modifying resources like memory, disk space, CPU, network card.

13. Compatibility Testing

  • Compatibility Testing used to check whether your application is capable of running on different H/W, OS, applications, network environments or Mobile devices, etc.
  • Similar to multi-platform testing.
  • Capability testing is more useful in web-based applications where we can check that application must be accessible from every browser.

Key Focus Area

  • During System testing, the system is tested within the production environment. Before delivery of the product, the System should be tested in a production environment.
  • The development and production environment may be different as per to company.
  • It should mainly get configuration-related errors.

System Testing Concept

System testing falls under the scope of Black-Box testing. Also, there are testing such as security, reliability, performance, installation, functional testing, etc.

We also have White-box testing. This is also, known as clear-box testing. White box testing means the testing where the internal structure of the testing application is known to the tester. But in this article, we are focusing on black-box testing.

What is Black–Box Testing?

  • This testing also is known as behavioral testing.
  • Black-box testing mainly focuses on input and output as the internal code is hidden from the tester

Black–Box Testing

System testing also has some specialized testing as follows:

1. Regression Testing

This testing depends on time. The factor is not always enough for this testing. This Testing is done in two ways:

  • Manual Testing: Manual testing can be done for a small Systems. The project where costs are the issue. Automated testing is not convenient. Developers or quality assurance team manually tests each and every path of the software code can take. And then comparison has happened. This testing is very time-consuming and needs a lot of resources to work on it. This testing is not efficient so the automation testing comes into the picture
  • Automated Testing: This testing is very good. Lots of companies trying to get automated testing tools. If we have lots of version changes for an application it’s very helpful. One class of these tools is called captured playback tools.

2. Error-Handling testing

  • To determine the ability of the System to process erroneous transactions properly.
  • All reasonable error is supposed to detect by the application system.
  • Control over the error during error correction is a must.
  • Procedures mostly guarantee that errors are get corrected properly.
  • This testing should happen throughout SDLC.
  • Errors encompass all unexpected conditions.
  • It checks the ability of the software to execute all transactions properly.
  • For ex: Just put some erroneous values in the application to check whether the system is capable enough to find those problems. This process may be iterative.

3. Inter-System Testing

  • This testing is done when an application is placed in a distributed area. And all placed integration happens. This testing is mainly done to check the flow of data from the hosted main system to other systems.
  • In short, we can say that “The testing of an interface between two or more application systems.”

This decides: Documentation for the system is complete and accurate. Parameters and data are correctly passed between the two applications.

  • There are chunks of sets of tests that transaction from one system to another system and vice versa is executing properly. crosschecks have happened and if an error happens then it gets corrected at that time.
  • This testing ensures data flow between applications.
  • This testing is tedious if automation is not done.
  • Cost is more if iterations are more.

4. Sanity Testing

  • Sanity testing means checking the behavior of the System. This testing is also called narrow regression testing.
  • Sanity tests are useful for both initial environment validation and future interactive increments.
  • Sanity testing is a focused one.
  • This testing is also considered a subset of regression testing.
  • Ex of Sanity testing is, we can say suppose we need the system uptime. How must the time system take to get up?
  • Sanity testing was initially designed to test core modules.
  • Sanity testing may check connectivity with application servers and with peripheral devices.

5. Smoke Testing

  • Generally, Smoke testing is also known as “Build Verification Testing”.
  • This term has come from hardware testing. In Hardware testing, the device passed the test, if it did not catch fire or smoked the first time it was turned on.
  • Smoke testing checks the testability of the software is termed Smoked testing.
  • Smoke testing decides whether testing is enough for the application. Is it stable?
  • Smoke testing helps to determine where to stop.
  • Smoke tests can be performed manually or with automated tools.
  • The smoke test scenarios emphasize breadth more than depth.
  • Smoke testing is also known as Verification testing/Link testing/Basic Functional testing.
  • This is a ”Shallow and wide” approach to the application.
  • Smoke testing helps to expose problems early.
  • Smoke testing also helps to find integration testing.
  • In smoke testing, all components should be touched, and every major feature should be tested briefly.
  • If a test fails, the build is returned to developers un-tested.
  • Smoke testing is generally used in System testing, Acceptance Testing, and Integration testing.

6. Parallel Testing

  • Parallel testing means testing multiple applications or subsystems at a time concurrently.
  • We can say that a comparison between two different systems.

Paallel

  • Parallel testing is to determine – New version of an application or new system performs correctly with the reference to the existing system that working correctly.
  • Parallel testing can be used when accepting a new system.
  • While doing parallel testing the same data is used on both the system.
  • In parallel testing, a new system is used with an existing system for some stipulated time.
  • Through cross-checking of the o/p and comparison with o/p from the existing system. Parallel testing is done to get ensure the new system is working up to the mark as the previous system used to do.

Conclusion

Every software development process has a testing part. If software possesses all the tests and satisfies all the conditions then it’s ready for handover to the customer. Testing is a crucial part and has to be done very seriously.

Recommended Articles

This has been a guide to System Testing. Here we have discussed the introduction to system testing, Various types, and its key focus area. you may also look at the following articles to learn more –

  1. Careers in Software Testing
  2. Penetration Testing Interview Questions
  3. Defect Life Cycle
  4. Software Testing Methodologies

Software Testing Training (9 Courses, 2 Projects)

9 Online Courses

2 Hands-on Projects

60+ Hours

Verifiable Certificate of Completion

Lifetime Access

Learn More

2 Shares
Share
Tweet
Share
Primary Sidebar
Software Testing Tutorial
  • Types of Testing
    • Adhoc Testing
    • Types of System Testing
    • Manual Testing Types
    • Unit Testing Types
    • Unit Testing Benefits
    • Agile Testing
    • What is Agile Testing
    • Acceptance Testing
    • Stress Testing Types
    • Alpha and Beta Testing
    • Application Testing
    • Automation Testing
    • Automation Testing Advantages
    • Benchmark Testing
    • Black Box Testing
    • Domain Testing
    • Dynamic Testing
    • Ecommerce Testing
    • Fuzz Testing
    • Gray Box Testing
    • GUI Testing
    • Installation Testing
    • Interface Testing
    • Interoperability Testing
    • Mainframe Testing
    • Manual Testing
    • Mutation Testing
    • Monkey Testing
    • Negative Testing
    • Penetration Testing
    • Penetration testing phases
    • Penetration testing framework
    • Protocol Testing
    • Recovery Testing
    • Regression Testing
    • Mobile Penetration Testing
    • Accessibility Testing
    • Sanity Testing
    • Scalability Testing
    • Security Testing
    • Spike Testing
    • Stability Testing
    • State Transition Testing
    • Static Testing
    • Gatling Load Testing
    • System Integration Testing
    • Structural Testing
    • Locust Load Testing
    • System Testing
    • Control Flow Testing
    • Unit Testing
    • Cypress testing
    • Volume Testing
    • Web Testing Application
    • What is Exploratory Testing
    • What is Stress Testing
    • What is Usability Testing
    • White Box Testing
    • Types of White Box Testing
    • Compatibility Testing?
    • Use Case Testing
    • Beta Testing
    • Integration Testing
    • Non Functional Testing
    • Non Functional Testing Types
    • What is Functional Testing
    • Functional testing types
    • Cookie Testing
    • Alpha Testing
    • Boundary Value Testing
    • Equivalence Class Testing
    • Glass Box Testing
    • SOA Testing
    • Smoke Testing
    • Visual Testing
    • Visual Paradigm
    • Model-Based Testing
  • Basics
    • What is Software Testing
    • Careers in Software Testing
    • Defect Life Cycle in Software Testing
    • Levels of Software Testing
    • Software Testing Life Cycle
    • Software Tester Work
    • Software Testing Principles
    • Software Testing Services
    • Testing Methodologies
    • Test Approaches
    • Grey Box Testing
    • Types of Software Testing
    • What is a Bug in Software Testing
    • Benefits of Automation Testing
    • What is Automation Testing?
    • Types of Automation
    • Automation Testing Process
    • Mobile Automation Testing
    • Automation Testing Life Cycle
    • Software Quality Assurance
    • Software Quality Assurance
    • What is Test Environment?
    • Verification and Validation Testing
  • Testing techniques
    • Software Testing Methodologies
    • Black Box Testing Techniques
    • Static Testing Techniques
    • Test Case Design Techniques
    • What is Static Analysis
  • Testing tools
    • Manual Testing Tools
    • Visual Testing Tools
    • Automation Testing Tools
    • Functional Testing Tools
    • GUI Testing Tools
    • Penetration Testing Tools
    • Performance Testing Tools
    • SOA Testing Tools
    • Accessibility Testing Tools
    • What is QTP
    • Regression Testing Tools
    • Security Testing Tools
    • Test Management Tools
    • Defect Management Tools
    • Code Coverage Tools
    • Test Coverage Tools
    • Defect Tracking Tools
    • Continuous Integration Tools
    • Install Bugzilla
    • Test data generation tool
    • Unit Testing Tools
    • Web Testing Tools
    • Stress Testing Tools
    • Performance Monitoring Tools
    • Mobile Testing Tools
    • Responsive Testing Tool
    • Cross Browser Testing Tools
    • Risk Based Testing
    • Database Testing Tools
    • WinRunner
    • What is Squish?
    • CubicTest
    • What is WinRM?
    • Bugzilla Tool
    • Code review tools
    • Penetration Testing Open Source Tools
  • Advance
    • Cyclomatic Complexity
    • Decision Table Testing
    • Decision Tree Algorithm
    • What is Continuous Integration
    • Mantis Bug Tracker
    • Equivalence Partitioning
    • Gantt Chart Software
    • Acceptance Testing Types
    • Load testing tools
    • Install TestNG
    • Install Unity
    • Defect Management Process
    • Test Plan Template
    • Testing Interview Questions
    • Testing of Mobile application
    • What is Test Automation Frameworks
    • Test Automation Framework
    • Application of Automation
    • Test Automation Process
    • Automation Testing Roles and Responsibilities
    • What is Instruction Cycle?
    • What is Cucumber?
    • 15 Best Popular Bug Reporting Tools
    • What is Automated Testing?
    • Software Maintenance Types
    • Types of Penetration Testing
    • Software Reliability
    • Best Gantt Chart Software
    • Code Coverage
    • Branch Coverage
    • Decision Coverage
    • Statement Coverage
    • What is Test Case
    • Types of Test Case
    • What is Test Scenario
    • Formal Review
    • Alpha Beta Pruning
    • What is Cyclomatic Complexity?
    • Test Coverage
    • How to Write Test Case
    • Testing Documentation
    • Performance Testing Life Cycle
    • Test Harness
    • Test Strategy
    • Software Incident Management
    • What is Debugging
    • What is Defect?
    • Listeners in TestNG
  • Inteview Questions
    • Automation Testing Interview Questions
    • Manual Testing Interview Questions
    • ISTQB Interview Questions
    • Cucumber Interview Questions
    • Software Testing Interview Questions
    • Penetration Testing Interview Questions

Related Courses

Software Testing Course

Penetration Training Course

TestNG Training Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2022 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Special Offer - Software Testing Training (9 Courses, 2 Projects) Learn More