Software Testing Levels

Software testing has several levels. It also has two broad categories: functional testing and non-functional testing. We explore those categories in detail in the next chapter.

Overview of Software Testing Levels

The four testing levels are:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing

Overview of Software Testing LevelsUnit TestTest an IndividualComponentIntegration TestTest ComponentGroupsSystem TestTest the IntegratedSystemAcceptance TestTest the FinalSystem
Open Full-Size Diagram

Overview of Software Testing Levels

Unit Testing

A unit is the smallest independent, testable part of the source code. Unit testing is the first testing level and is generally performed by developers or their teammates, rather than software testers. Complete unit testing before integrating the units. A well-defined unit test plan and test cases are essential.

Unit testing gives you confidence to proceed with integration once the individual units work correctly. Testing alongside development may initially feel slow: defects are discovered and code changes are needed. Over time, the code improves and defects decrease. This creates a stronger foundation and helps later development move faster, saving time.

Unit Testing FlowWrite or ModifyYour CodeCreate UnitTest CasesCompile and ExecuteTestsCollect TestResultsEncountereda Failure?YesNoTestsPass
Open Full-Size Diagram

Unit Testing

Effective unit testing also saves money. Defects generally cost much more to fix late in development than during its early stages.

Unit tests cover a small component, so their test cases and data cannot check every functional or information-flow scenario across the application. Some scenarios can be tested only after units have been combined into a larger component.

Integration Testing

After unit testing, integration testing checks how two or more units interact and what output they produce in different scenarios. A software test engineer carries out this testing.

Integration testing reveals functional, requirements-related and performance defects. Unit testing checks that components work individually; integration testing checks that they work as expected together. The main approaches are:

  1. Big bang
  2. Top-down integration
  3. Bottom-up integration
In big bang integration testing, all modules are combined into the complete system and then tested for defects.

Integration Testing ApproachesIntegration TestingTop DownIntegration TestingBottom UpIntegration Testing
Open Full-Size Diagram

Integration Testing

Top-down integration starts with the highest-level modules, then adds and tests lower-level modules one at a time. Bottom-up integration reverses that sequence: test the lowest-level modules first, then add higher-level modules progressively. A common sequence is to begin with bottom-up testing and follow it with top-down testing.

Top Down and Bottom Up Integration12345678Level OneLevel TwoLevel ThreeLevel FourBottom UpTop Down
Open Full-Size Diagram

Top down and Bottom up Integration Testing

In top-down testing, stubs stand in for unavailable or unfinished lower-level modules or subprograms. In bottom-up testing, a driver acts as the calling program when the required higher-level program is not yet available.

System Testing

After integration succeeds, system testing examines the complete system with its components working together. It checks performance, functional and technical specifications, and the organization’s quality standards. A highly skilled testing team should carry out this work in an environment that closely resembles the system’s real deployment setting.

System Testing through the Software Development Life CycleTestingStrategyUnitTestingIntegrationTestingSystemTestingUser AcceptanceTestingCompletion ofTestingTesting RequirementSoftwareDevelopmentLife CycleTest DependentSoftwareDevelopmentSoftwareChange ControlSoftware IsReady forImplementation
Open Full-Size Diagram

System Testing

System testing is purely black box testing. It checks the system against requirements from the user’s perspective, including application behavior, design and end-user expectations. It verifies and validates both the application architecture and the client’s business requirements.

Acceptance Testing

After unit, integration and system testing, acceptance testing examines quality and accuracy using predefined scenarios and test cases. The quality assurance team reviews the system from several perspectives, including appearance and internal operation. This stage is crucial because client acceptance also depends on legal and contractual requirements. Acceptance testing includes:

  1. User acceptance testing: Actual users test the software before accepting it, either at their own site or at the organization that developed it.
  2. Operational acceptance testing: Check that the processes and procedures needed to use and maintain the system are in place.
  3. Contract and regulatory acceptance testing: Check compliance with contractual requirements and applicable government, legal and safety standards.
  4. Alpha testing: Check overall product quality and prepare for beta testing near the end of development, when the whole system can be tested. Test engineers and other team members examine quality and engineering from the customer’s perspective. This can take considerable time.
  5. Beta testing: After alpha testing, actual users try the product in real-world conditions to improve quality and check that it meets their requirements. It takes place a few days or weeks before launch and may last a few days. It may be shorter than alpha testing because the chance of finding defects is relatively low at this stage.

User Acceptance Testing Process01PlanUAT02Identify TestingScenarios03ExecuteTests04Verify DefectsAfter Fixing05ReportResults06End ofUAT
Open Full-Size Diagram

Acceptance Testing



We guarantee that your free online training will make you pass your Software Testing Certification Exam!

  1. 01

    Register Online

    Choose your Accredited certification and complete your registration.

  2. 02

    Receive Your Access Code

    Your personal exam access code is delivered instantly by email.

  3. 03

    Prepare & Take Your Exam

    Study your free training and answer your 50 multiple-choice questions online.

  4. 04

    Earn Your Lifetime Credential

    Receive your worldwide-valid certificate and verifiable digital badge.

Accredited Software Test Manager Certification™ sample
Register for Certification

YOUR FREE PREMIUM ONLINE TRAINING

Your Software Testing Revealed, Second Edition, Is Ready.

We created your training with a consortium of renowned business and people leaders, software testing coaches, mentors, experts and authorities from all major industries. Everyone visiting International Software Test Institute™ can access it. Find the materials through Your Free Software Testing Book and Your Free Premium Software Testing Training in the top menu.

These materials are the copyrighted intellectual property of International Software Test Institute™. We share them freely with everyone because sharing our expertise serves software testing professionals and helps the field develop.

Your certification examination uses multiple-choice questions. Read your online training to build the knowledge you need to pass your examination and earn your Software Testing Certification.

We guarantee that your free premium online training will make you pass your Software Testing Certification Exam!