This lesson introduces students to the testing phase of Enterprise Resource Planning (ERP) systems, a critical component in ensuring the reliability, accuracy, and performance of ERP implementations. It emphasizes the importance of structured testing processes in identifying and resolving issues before full-scale deployment. The learning outcome is as follows, at the end of this lesson, students should be able to:
Explain the types of ERP testing.
Discuss the common challenges of ERP testing.
Identify appropriate testing methods and testing tools.
System testing is a type of software testing that evaluates the complete, fully integrated software system to ensure it meets all specified requirements and functions correctly in a real-world environment [1]. It is performed after integration testing and before acceptance testing, focusing on both the functional and non-functional aspects of the application [1]
In system testing, the system is tested as a whole including all integrated components, interfaces, and interactions with external systems and hardware. The test is conducted in a test environment that closely resembles production to mimic real-world usage and conditions [2]
In summary, system testing is a comprehensive, end-to-end evaluation of a fully integrated software system, validating both its functionality and performance against the defined requirements before it is delivered to users
Source:
Powell & Smalley (nd), What is system testing? https://www.ibm.com/think/topics/system-testing
Hamilton (2024), What is system testing? Types and Examples, https://www.guru99.com/system-testing.html
Unit testing is a software testing method in which individual units or components of a codebase—such as functions, methods, classes, or modules—are tested in isolation to verify that they function as intended. The primary goal is to ensure that each unit of code performs correctly for a variety of input conditions, independent of other parts of the application [1].
The key aspects of unit testing are
Scope: Focuses on the smallest testable parts of an application, typically a single function or method.
Isolation: Each unit is tested independently, often using mock objects to simulate dependencies and external systems, ensuring tests are simple and predictable.
Automation: Unit tests are commonly automated, allowing them to be run frequently and consistently as code changes. [2]
In summary, unit testing ensures that individual components of software work as expected before integrating them into the larger system, forming the foundation for reliable and maintainable code
Source:
Powell & Smalley (nd), What is Unit testing? https://aws.amazon.com/what-is/unit-testing/
Integration testing is a software testing phase where individual units or modules—already verified through unit testing—are combined and tested as a group to ensure they work together as intended. The main focus is on verifying the interfaces and interactions between integrated components, rather than the internal logic of each module [1].
The key aspects of unit testing are [2]
Purpose: To detect faults or bugs that arise when modules interact, such as incorrect data exchange, communication issues, or interface mismatches.
Timing: Performed after unit testing and before system testing in the software development lifecycle.
Scope: Tests the correctness of data flow and control between modules, ensuring that integrated components function as a cohesive system
Common methods in conducting integration testing includes [2]:
Top-down: Start with high-level modules and integrate lower-level modules step by step, using stubs for missing components.
Bottom-up: Begin with lower-level modules and integrate upwards, using drivers to simulate higher-level modules.
Big Bang: Combine all modules at once and test as a complete system.
Sandwich (Hybrid): Combines aspects of both top-down and bottom-up approaches
Integration testing ensures that multiple software modules work together correctly by focusing on their interactions and data exchanges. It is essential for identifying issues that may not be apparent when modules are tested in isolation, thus improving the reliability and quality of the software product
Source:
Yasar, K (2024), What is integration testing (I&T)?
geeksforgeeks.org (2025), Integration Testing - Software Engineering
User Acceptance Testing (UAT) is the final phase of the software testing process where the software is tested by its intended end users or clients in real-world scenarios to ensure it meets their requirements and expectations before official release. The purpose is to validate that the software functions correctly in practical, everyday use and fulfills business needs. It safeguards against releasing software that, despite passing earlier tests, might still fail to meet user expectations or have overlooked issues. UAT is conducted with real users or client representatives rather than developers or testers, providing authentic feedback on usability, functionality, and performance. UAT is conducted after unit, integration, system, and other testing phases are complete, but before the software goes live [1].
In summary, User Acceptance Testing is the critical final step where actual users verify that the software is fit for purpose in real-world use, ensuring it meets business requirements and is ready for production deployment
Source:
Gillis, A (2022). What is user acceptance testing?
Watch the video below on ERP testing:
This video explains system testing within digital transformation and ERP implementations. It covers three main layers: Unit Testing (technical functionality), Integration Testing (how the software integrates with other systems), and User Acceptance Testing (UAT) (business users testing for operational needs). The video emphasizes the importance of multiple iterations in each phase and highlights that UAT is crucial for ensuring the system meets business requirements, serves as a training mechanism, and helps identify organizational impacts.
What is the primary focus of Unit Testing in an ERP implementation?
Explain the main objective of Integration Testing.
Why is User Acceptance Testing (UAT) considered the most critical phase in system testing according to the video?
List two benefits of User Acceptance Testing (UAT) that go beyond simply verifying business requirements.
Who should be involved in User Acceptance Testing (UAT) to effectively manage organizational impacts?
According to Eric Kimberling, what is the importance of system testing in a digital transformation?
NOTE: You may submit the answers in Ulearn