Software Testing Levels. What are they?

Arine Baghdasaryan
Fintegro Company Inc
4 min readMar 14, 2019

Testing at different levels is performed throughout the entire life cycle of software development and maintenance. The level of testing determines what tests are performed on a single module, a group of modules, or a system, as a whole. Testing at all levels of the system is the key to the successful implementation and delivery of the project.

So, what are the Testing Levels?

Let’s start?

Unit Testing

Unit testing verifies the functionality and looks for defects in parts of the application that are available and can be tested separately (program modules, objects, classes, functions, etc.). Usually, unit testing is performed by calling code that needs to be verified with the support of development environments such as frameworks for modular testing or debugging tools. All defects found are usually corrected in the code without their formal description in the Bug Tracking System.

One of the most effective approaches to component (unit) testing is the preparation of automated tests prior to the start of basic coding (development) of software. This is called test-driven development or a test first approach. With this approach, small pieces of code are created and integrated, opposite which tests run before the start of encoding are run. Development is carried out until all tests are successfully passed.

Integration Testing

Integration testing is designed to test communication between components, as well as interaction with different parts of the system (operating system, hardware, or communication between different systems).

Levels of integration testing:

  • Component Integration testing
  • The interaction between the system components after component testing is checked.
  • System Integration Level (System Integration Testing)
  • The interaction between different systems after system testing is checked.

Approaches to integration testing:

Bottom-Up Integration

All low-level modules, procedures, or functions are aggregated and then tested. After that, the next level of modules is collected for integration testing. This approach is considered useful if all or practically all modules of the developed level are ready. Also, this approach helps to determine the level of readiness of the application by the results of testing.

Top-Down Integration

First, all high-level modules are tested, and low-level ones are gradually added one by one. All modules of the lower level are simulated with plugs with similar functionality, then as they become ready, they are replaced with real active components. So we are testing from top to bottom.

“Big Bang” Integration

All or almost all developed modules come together as a complete system or its main part, and then integration testing is carried out. This approach is very good for saving time. However, if test cases and their results are recorded incorrectly, the integration process itself will become very complicated, which will be an obstacle for the testing team to achieve the main goal of integration testing.

System Testing

The main task of system testing is to check both functional and non-functional requirements in the system as a whole. This reveals defects, such as incorrect use of system resources, unintended combinations of user-level data, incompatibility with the environment, unintended usage scenarios, missing or incorrect functionality, the inconvenience of use, etc. To minimize the risks associated with the behavior of the system in a given environment, during testing it is recommended to use the environment as close as possible to the one on which the product will be installed after delivery.

Based on the idea of ​​how to use the product, use cases are created. For a specific use case, one or more scenarios can be defined. Test cases are written for each script to be tested.

Acceptance Testing

A formal testing process that checks the compliance of the system with the requirements and is conducted with the aim of:

  • determining whether the system meets the acceptance criteria;
  • the decision of the customer or other authorized person is accepted by the application or not.

Acceptance testing is performed based on a set of typical test cases and scenarios developed based on the requirements for this application.

The decision to conduct acceptance testing is made when:

  • the product has reached the required level of quality;
  • the customer is familiar with the Acceptance Work Plan (Product Acceptance Plan) or another document, which describes a set of actions related to the acceptance testing, the date of the performance, responsible, etc.

The phase of acceptance testing lasts as long as the customer does not make a decision about sending the application for revision or issuing the application.

Do you like this article? Have questions? Leave comments and let’s discuss some interesting stuff!

Hope this article was useful and interesting for you! Please “clap” if you like it and want to read us more! And don’t miss a chance to let professionals provide your project with TOP-NOTCH IT Talents.

Feel free to contact us and do not forget to follow us on social media:

LinkedIn: https://www.linkedin.com/company/fintegro-company-inc

Twitter: https://twitter.com/fintegro

Facebook: https://www.facebook.com/fintegro

--

--

Arine Baghdasaryan
Fintegro Company Inc

Research Specialist at Fintegro Company Inc. Interested in QA, Startups, travelling, books and learning foreign languages ;)