Something can only be judged to be good after it has been tried or used. So, the best way to test the quality of a SAP system is to taste it rather than admire its appearance.
First things first. What is SAP?
System Applications and Products, better known as SAP, is an integrated or centralized ERP system (Enterprise Resource Planning) to make core business processes work efficiently. It consists of several fully integrated modules, which cover virtually every aspect of business management. SAP provides their customers the ability to interact with all common corporate databases for a wide range of functional and technical modules. E.g. Customer Relationship Management (CRM), Financial Management (FI), Human Capital Management (HCM), Product Lifecycle Management (PLM) and Supply Chain Management (SCM). Besides that, it offers business analytics tools to help businesses streamline their processes and be more competitive.
To put it simply: SAP ERP is software and hardware to run a company.
SAP is #1 in the ERP market in terms of revenue, and #2 after Microsoft in overall business applications revenue. Since 2018, SAP has more than 437.000 customers in 180 countries. It can be deployed both on-premises as in the cloud and is suitable for large, as well as small and midsize enterprises (SMEs). There are mobile apps for both Android and iOS systems.
Testing SAP systems
(SAP) testing skills
The testing skills you need for SAP testing are basically the same as for any software application testing. But the big difference is that all the hard work you put into understanding and gaining deep functional knowledge of the software modules and/or systems, is obsolete when you switch projects or companies. When you switch from testing a billing system of a telecom company to another billing system from a bank or even a competitor telecom company, chances of it being the same or them using similar modules, terminology, and even functionalities, is next to zero.
In case of SAP, the functional knowledge you acquire is portable and can be used in any other SAP testing project. If you switch from a SAP finance module test project in a telecom company to a SAP finance module test project in a bank, you will instantly recognize the GUI, transaction codes and vanilla business workflows. Of course, you need to learn the customizations made by the client, but this is a huge advantage.
Maintenance testing is a big part of SAP testing. Once the SAP system is configured, customized, deployed and operational (live), any changes made to the SAP system is 'maintenance'. E.g. new feature additions, bug fixes, kernel updates, support pack & stack updates, or OSS note implementation.
There are different lifecycle methodologies for SAP implementation. E.g. ASAP implementation (initial implementation and transfer from legacy systems), maintenance lifecycle, upgrade lifecycle, and custom development lifecycle. Whatever the lifecycle is, the main testing phases are:
- Unit or Component Testing (UT/CT)
Developers do Unit of Component Testing based on their standard unit testing rules. Testing of reports, interfaces, conversions, enhancements, workflows and forms (RICEWF) developed primarily with SAP specific (ABAP) code. Including testing for security authorizations, data transfer rules, reconciliations and batch scheduling jobs. Business Warehouse testing is also part of this test phase. Typically done in a development environment.
- System Testing (ST) or Functional Testing
This ensures that your SAP implementation meets your business requirements. SAP is a highly configurable system and can easily integrate with in-house applications or third-party tools. Given this highly configurable and complex system, functional testing is a must. It removes uncertainty over business use cases and brings quality. It includes reviewing design documents and creating test requirements, test scenarios and test cases. Usually done by a professional tester (or team) with a background in SAP.
- Integration Testing (CIT/SIT)
Testing of combined components (CIT) or modules (SIT) of an SAP system to determine if they function together correctly. There are 2 types of integration testing: Component- (CIT) and System Integration Testing (SIT). CIT is typically done in a development environment, whereas SIT is typically done in a QA environment with realistic test data.
- User Acceptance Testing (UAT)
UAT guarantees that the SAP system is usable for the end users. They independently execute the user acceptance test cases that include testing business processes, functions, documentation (operating manuals, cheat sheets), etc. Through UAT, users can become comfortable with the new business environment and take full ownership of the system.
The most common used test types whilst testing SAP systems are:
- Regression Testing
We do Regression Testing to ensure that the new changes implemented do not negatively affect existing and working code. SAP is a tightly integrated system, a single stack update, OSS note, transport, configuration changes, or new developed interfaces can have a cascading and severe effect. Usually executed by a professional tester (or team) using an automation tool.
- Performance Testing
With performance testing you ensure that the SAP system will perform well under expected (high) workload. It checks speed, scalability and stability by including load, volume and stress to determine system bottlenecks. The aim is to enhance robustness and help deploy systems that can sustain high load forecasts, with zero to little post-production performance issues. It includes checking business processes that may cause stress due to high transaction or batch volumes.
It helps with conforming to SLAs, optimizing software configuration settings, reducing overspending on hardware, certifying the system will not crash or fail during seasonal high load and avoids corresponding financial losses. It is usually executed using automated tools like NeoLoad, a SAP certified solution with which Brightest has a partnership and the expertise to implement it. Besides that, it involves collaboration of basis, database, infrastructure and a professional tester (or team) to monitor the results.
- Security Testing
Security Testing assures the safety of SAP systems. High risk areas like SAP-portal security, network security, operational security, product security, access control and source code are tested. This usually involves the basis, database, infrastructure, development and a professional tester (or team).
- Portability Testing
Portability Testing involves testing the SAP-portals on different browsers while checking the business processes.
All these testing types can be performed during any testing phase (described above).
Creating SAP test cases
Creating test cases for an SAP system is basically the same as for any software application testing. To create effective test cases, you must do the following:
- Determine the SAP role required to execute the test case
- Identify the SAP transaction that needs to be executed for the test case
- Define the Test Data required for executing the test case. And ask yourself if it needs to be created, are used by another tester, or are locked and cannot be modified.
- Define any (potential) prerequisites
- Did your peers (other test professionals or business users) review your test cases?
- Create positive and negative test scenarios
- Describe detailed test steps to enhance reusability, common understanding, and prepare for test automation
- Make sure your test coverage is high
- Document defects as soon as they are discovered (according to agreed rules)
For example, let us design a test case to change the name of an employee in the SAP system:
SAP is an enormous system with endless variations. It is neither feasible nor cost-effective to check all possible variations and combinations of test parameter inputs in the system. In the above example we see that a tester can verify the change in Last Name, Date of Birth, Address, Pin Code, City, State, Country, change in permanent, temporary, work address, etc. A professional tester can apply test strategies and techniques to reduce the number of test cases without sacrificing coverage. Examples include boundary value analysis, equivalence partitioning and orthogonal arrays. Often combined with test case automation.
Automated SAP testing
Testing is a huge challenge for a colossal system like SAP. ASUG did a study showing that over 86% customers are concerned about risks due to lack of comprehensive testing. There are some benefits to automation testing of SAP systems:
- The first and most valuable benefit is the improved test coverage.
- Furthermore, there is a better quality and therefore less production outages. Outages of SAP production environments could cost a company millions of euros!
- Lastly, the workload decreases with each release cycle.
The methodology and approach are more important than the chosen automation test tool. However, some examples that come to mind are SAP TAO, eCATT, QTP, Tosca, S/4HANA Cloud Test Automation Tool, your own developed test framework (or Brightests’), etc. The choice of automation or performance testing tools for SAP depends on the underlying SAP application being tested.
SAP testing offers tremendous opportunities and benefits for QA professionals and projects. And Brightest is the perfect partner to help with its challenges and opportunities. Contact us for feedback, questions or more information.