Lesson 4 of 5
Test levels mapped to SAP delivery
9 min
Listen to this lesson
A test level is a group of test activities organized around a stage of development, each with its own objectives, test basis and owners. The ISTQB Foundation syllabus (v4.0) names five: component testing, component integration testing, system testing, system integration testing and acceptance testing. SAP programs use their own words for similar ideas. Knowing how they line up stops a lot of arguments about who tested what.
Unit (component) testing
A unit test checks one piece. For configuration, that might be a new pricing condition: create an order and check that the condition appears with the right value. For custom code, developers test their enhancement, often with automated ABAP Unit tests that SAP provides in the ABAP development tools. Unit tests usually run in the development system, are informal, and are owned by the builder. SAP's own S/4HANA implementation guidance describes them that way: informal, done as configuration is completed.
String and integration testing
A string test chains several units together, for example order, delivery and goods issue for Contoso in plant 1710. It maps roughly to component integration testing. Integration testing (often called SIT) then exercises whole processes across modules and interfaces: a sales order that triggers availability checking, picking in the warehouse, billing, an EDI invoice to Great Lakes Fleet Services and the journal entry in finance. End-to-end testing strings processes into scenarios, such as procure, produce, sell and close the period. These are formal: documented in a test management tool, run in the quality system with realistic data, with defects tracked.
- Sales orderCreated for Great Lakes Fleet Services in sales area 1710 / 10 / 00
- Availability checkStock of CMC-ALT-100 confirmed in plant 1710
- Picking and goods issueWarehouse picks; goods issue reduces stock
- BillingInvoice created with price and tax
- EDI invoiceElectronic invoice sent to the customer
- Journal entryRevenue, receivable and cost posted in company code 1710
System testing in an SAP world
Generic models place system testing between integration and acceptance: test the whole system against its specification. On SAP programs this rarely appears as a separately named phase. Its job is shared by integration and end-to-end testing (functional behavior of the whole solution) and by non-functional tests such as performance, security and authorization testing. When someone asks "where is system testing in our plan?", the honest answer is usually: inside SIT and the non-functional cycles.
User acceptance testing
UAT asks a different question: does this solution let the business do its job? It is performed by business people, ideally those who took part in Fit-to-Standard and know the requirements. At Contoso, Maria runs order-to-cash acceptance and Dan's finance team runs period-end close. Acceptance testing can also include operational acceptance (can IT support and operate it?) and contractual or regulatory acceptance.
| SAP term | Generic test level | Typical system | Typical owner |
|---|---|---|---|
| Unit test | Component testing | Development | Consultant or developer |
| String test | Component integration testing | Development or quality | Functional consultants |
| Integration test (SIT) / end-to-end | System and system integration testing | Quality | Test lead, functional and integration teams |
| User acceptance test | Acceptance testing | Quality or pre-production | Process owners and key users |
| Regression test | Change-related testing at any level | Quality | Test team, later the run organization |
How SAP program vocabulary maps to generic test levels. Projects vary; agree the terms in your test strategy.
Who owns which level
In a typical program a system integrator configures and builds, while the customer owns the business outcome. The integrator usually owns unit and string testing and executes much of integration testing. The customer's process owners own acceptance and should not delegate it to the people who built the solution. That separation matters: someone who wrote the configuration tends to test that it does what they built, not what the business needs.
Regression testing is not a level of its own. It reuses tests from every level after a change. At Contoso, the regression pack will start as a selection of integration and end-to-end cases from Realize, and after go-live it passes to the support organization, which runs it before support packages, upgrades and larger transports reach production.
- RealizeSelectPriya picks integration and end-to-end cases from SIT as the first regression pack
- DeployProveThe pack runs against the final build before go-live
- HypercareHand overOwnership passes to the support organization with the test cases and data
- RunReuseThe pack runs before support packages, upgrades and larger transports reach production
- Every changeRefreshCases are added for production defects and retired when they no longer protect anything
What would you do?
The integrator tells Grace that UAT can be shortened because "we already tested everything in SIT". Contoso's go-live is in eight weeks. What should Priya recommend?
- Generic levels: component, component integration, system, system integration, acceptance.
- SAP terms: unit, string, integration/end-to-end, UAT, plus regression across levels.
- Unit and string tests are informal and builder-owned; integration and UAT are formal and documented.
- UAT belongs to the business; the builders should not accept their own work.
Check your understanding · not graded
Lesson check
1. Testing order, delivery and goods issue together for one plant is best called a:
2. Who should own user acceptance testing on an SAP program?
3. Where does generic "system testing" usually live on an SAP program?
4. In which system do unit tests of configuration usually run?