Flutterexperts

Empowering Vision with FlutterExperts' Expertise
System Testing in Flutter

Hi everyone! today we start learning about system testing in a flutter, System testing is testing conducted on a complete integrated system to evaluate the system’s compliance with its specified requirements. System testing takes, as its input, all of the integrated testings.

If you’re looking for the best Flutter app development company for your mobile application then feel free to contact us at — support@flutterdevs.com.


Table Of Contents::

What is System Testing?

System Testing is Blackbox

What do you verify in System Testing?

Software Testing Hierarchy

Entry/Exit Criteria

System Test Plan

Procedure To Write System Test Cases

System Test Cases

Different Types of System Testing

What Types of System Testing Should Testers Use?

Advantages of System Testing

Disadvantages of System Testing

Conclusion


What is System Testing?:

System Testing is a level of testing that validates the complete and fully integrated software product. The purpose of a system test is to evaluate the end-to-end system specifications. Usually, the software is only one element of a larger computer-based system. Ultimately, the software is interfaced with other software/hardware systems. System Testing is a series of different tests whose sole purpose is to exercise the full computer-based system.

System Testing is Blackbox:

Two Category of Software Testing

  • Black Box Testing
  • White Box Testing

> System test falls under the black box testing category of software testing.

> White box testing is the testing of the internal workings or code of a software application. In contrast, black box or System Testing is the opposite. System test involves the external workings of the software from the user’s perspective.

What do you verify in System Testing?:

System Testing involves testing the software code for following

  • Testing the fully integrated applications including external peripherals to check how components interact with one another and with the system as a whole. This is also called End to End testing scenario.
  • Verify thorough testing of every input in the application to check for desired outputs.
  • Testing of the user’s experience with the application.

That is a very basic description of what is involved in system testing. You need to build detailed test cases and test suites that test each aspect of the application as seen from the outside without looking at the actual source code.

Software Testing Hierarchy:

As with almost any software engineering process, software testing has a prescribed order in which things should be done. The following is a list of software testing categories arranged in chronological order. These are the steps taken to fully test new software in preparation for marketing it:

  • Unit testing is performed on each module or block of code during development. Unit Testing is normally done by the programmer who writes the code.
  • Integration testing is done before, during, and after the integration of a new module into the main software package. This involves testing each code module. One piece of software can contain several modules which are often created by several different programmers. It is crucial to test each module’s effect on the entire program model.
  • System testing is done by a professional testing agent on the completed software product before it is introduced to the market.
  • Acceptance testing — beta testing of the product done by the actual end-users.

> System Testing Process:

System Testing is performed in the following steps:

  • Test Environment Setup: Create a testing environment for better quality testing.
  • Create Test Case: Generate a test case for the testing process.
  • Create Test Data: Generate the data that is to be tested.
  • Execute Test Case: After the generation of the test case and the test data, test cases are executed.
  • Defect Reporting: Defects in the system are detected.
  • Regression Testing: It is carried out to test the side effects of the testing process.
  • Log Defects: Defects are fixed in this step.
  • Retest: If the test is not successful then again the test is performed.

Entry/Exit Criteria:

Let’s take a detailed look at the Entry/Exit criteria for System Test:

> Entry Criteria:

  • The system should have passed the exit criteria of Integration testing i.e. all the test cases should have been executed and there should be no critical or Priority P1, a P2 bug in an open state.
  • The test Plan for this testing should be approved & signed off.
  • Test cases/scenarios should be ready to be executed.
  • Test scripts should be ready to be executed.
  • All the non–functional requirements should be available and test cases for the same should have been created.
  • The testing environment should be ready.

> Exit Criteria:

  • All the test cases should be executed.
  • No critical Priority or security-related bugs should be in an open state.
  • If any medium or low-priority bugs are in an open state, then they should be implemented with the acceptance of the customer.
  • Exit Report should be submitted.

System Test Plan:

A test plan is a document that is used to describe the purpose, objective, and scope of a product to be developed. What has to be tested and what should not be tested, testing strategies, tools to be used, environment required, and every other detail is documented to proceed further with the testing.

The Test Plan helps to proceed with testing in a very systematic and strategic manner and that helps to avoid any risks or issues while testing is done.

System Test Plan covers the following points:

  • Purpose & Objective is defined for this test.
  • Scope (Features to be tested, Features not to be tested are listed).
  • Test Acceptance Criteria (Criteria on which the system will be accepted i.e. mentioned points in acceptance criteria should be in the pass state).
  • Entry/Exit criteria (Defines the criteria when system testing should start and when it should be considered complete).
  • Test Schedule (Estimation of testing to be completed at a specific time).
  • Test Strategy (Includes testing techniques).
  • Resources (Number of resources required for testing, their roles, resource availability, etc).
  • Test Environment (Operating System, Browser, Platform).
  • Test Cases (List of test cases to be executed).
  • Assumptions (If any assumptions, they should be included in the Test Plan).

Procedure To Write System Test Cases:

System test cases cover all the scenarios & use cases and also cover functional, non-functional, user interface, and security-related test cases. The test cases are written in the same way as they are written for functional testing.

System test cases include the below fields in the template:

  • Test Case ID
  • Test Suite name
  • Description — Describes the test case to be executed.
  • Steps — Step-by-step procedure to describe how to perform testing.
  • Test Data — Dummy data is prepared to test the application.
  • Expected Result — Expected result as per the requirement document is provided in this column.
  • Actual Result — The result after the execution of the test case is provided in this column.
  • Pass/Fail — A comparison of actual & expected results defines the Pass/fail criteria.
  • Remarks

System Test Cases:

Here are some sample test scenarios for an eCommerce Site:

  1. If the site launches properly with all the relevant pages, features, and logo
  2. If the user can register/login to the site
  3. If the user can see products available, he can add products to his cart can do payments, and can get the confirmation via e-mail or SMS, or call.
  4. If the major functionality like searching, filtering, sorting, adding, changing, wishlist, etc work as expected
  5. If the number of users (defined as in the requirement document) can access the site simultaneously
  6. If the site launches properly in all major browsers and their latest versions
  7. If the transactions are being done on the site via a specific user are secure enough
  8. If the site launches properly on all the supported platforms like Windows, Linux, Mobile, etc.
  9. If the user manual/guide return policy, privacy policy, and terms of using the site are available as a separate document and useful to any newbie or first-time user.
  10. If the content of pages is properly aligned, well managed, and without spelling mistakes.
  11. If session timeout is implemented and working as expected
  12. If a user is satisfied after using the site or in other words user does not find it difficult to use the site.

Different Types of System Testing:

There are more than 50 types of System Testing. Below we have listed types of system testing a large software development company would typically use

  1. Usability Testing– mainly focuses on the user’s ease to use the application, flexibility in handling controls, and ability of the system to meet its objectives
  2. Load Testing– is necessary to know that a software solution will perform under real-life loads.
  3. Regression Testing– involves testing done to make sure none of the changes made throughout the development process have caused new bugs. It also makes sure no old bugs appear from the addition of new software modules over time.
  4. Recovery testing — is done to demonstrate a software solution is reliable, trustworthy, and can successfully recoup from possible crashes.
  5. Migration testing- is done to ensure that the software can be moved from older system infrastructures to current system infrastructures without any issues.
  6. Functional Testing — Also known as functional completeness testing, Functional Testing involves trying to think of any possible missing functions. Testers might make a list of additional functionalities that a product could have to improve during functional testing.
  7. Hardware/Software Testing — IBM refers to Hardware/Software testing as “HW/SW Testing”. This is when the tester focuses his/her attention on the interactions between the hardware and software during system testing.

What Types of System Testing Should Testers Use?:

There are over 50 different types of system testing. The specific types used by a tester depend on several variables. Those variables include:

  • Who the tester works for — This is a major factor in determining the types of system testing a tester will use. Methods used by large companies are different than that used by medium and small companies.
  • Time available for testing — Ultimately, all 50 testing types could be used. Time is often what limits us to using only the types that are most relevant for the software project.
  • Resources available to the tester — Of course, some testers will not have the necessary resources to conduct a testing type. For example, if you are a tester working for a large software development firm, you are likely to have expensive automated testing software not available to others.
  • Software Tester’s Education- There is a certain learning curve for each type of software testing available. To use some of the software involved, a tester has to learn how to use it.
  • Testing Budget — Money becomes a factor not just for smaller companies and individual software developers but for large companies as well.

Advantages of System Testing:

  • The testers do not require more knowledge of programming to carry out this testing.
  • It will test the entire product or software so that we will easily detect the errors or defects which cannot be identified during the unit testing and integration testing.
  • The testing environment is similar to that of the real-time production or business environment.
  • It checks the entire functionality of the system with different test scripts and also it covers the technical and business requirements of clients.
  • After this testing, the product will almost cover all the possible bugs or errors and hence the development team will confidently go ahead with acceptance testing.

Disadvantages of System Testing:

  • This testing is a more time-consuming process than another testing technique since it checks the entire product or software.
  • The cost for the testing will be high since it covers the testing of the entire software.
  • It needs a good debugging tool otherwise the hidden errors will not be found.

Conclusion:

System testing is very important and if not done properly critical issues can be faced in the live environment. A system as a whole has different characteristics to be verified.

A simple example would be any website. If it’s not tested as a whole then the user might find that site to be very slow or the site might get crashed once a large number of users log in at the same time.

❤ ❤ Thanks for reading this article ❤❤

If I got something wrong? Let me know in the comments. I would love to improve.

Clap 👏 If this article helps you.


Feel free to connect with us:
And read more articles from FlutterDevs.com.

FlutterDevs team of Flutter developers to build high-quality and functionally-rich apps. Hire a flutter developer for your cross-platform Flutter mobile app project on an hourly or full-time basis as per your requirement! You can connect with us on Facebook, GitHub, Twitter, and LinkedIn for any flutter-related queries.

We welcome feedback and hope that you share what you’re working on using #FlutterDevs. We truly enjoy seeing how you use Flutter to build beautiful, interactive web experiences.


Leave comment

Your email address will not be published. Required fields are marked with *.