TESTING GUIDE Automated Testing for SuccessFactors Introduction

This guide will give you an overview of the different aspects of testing your SuccessFactors environment. As most employees interact in some way or form with the system, it’s crucial to test your system regularly and around crucial events to make sure you provide an excellent employee experience. The following topics will be explored:

• Testing During An Implementation • Testing For Configuration Changes • Testing For Quarterly Releases • Manual vs. Automated Testing

© 2019 Page | 2 Automated Testing For SuccessFactors Testing During An Implementation

During an implementation, testing is critical to make sure the system is designed and configured according to expectations. One of the most known test is User (UAT) in which a client signs off that the system works as expected. Before UAT, there are many different tests you would like to perform. These tests are done during different phases of a project. Some only once, others multiple times.

Let’s start with looking at what phases there are during a SuccessFactors implementation. This may differ slightly, but all SuccessFactors implementations basically follow the same path. The reason for this is that the Agile methodology, which is the preferred method defined by SAP, needs to be followed by SAP professional services and all the certified implementation partners. This methodology has been proven to be most successful.

The Agile methodology is an iterative approach. Iterative approach is a way of breaking down the system development of a large application into smaller chunks. In iterative development, functionality is designed, configured and tested in repeated cycles. With each iteration, additional features can be designed, configured and tested until there is a fully functional application ready to be deployed to the client.

© 2019 Page | 3 Automated Testing For SuccessFactors The Discover phase includes the decision to adopt the platform. In the Prepare phase the project is kicked off including the initial system installation. In the Explore phase the detailed project plan is created based upon the original scoping and requirements of the client. During the Realize phase, there are three (sometimes less) iterative cycles in which the functionality is designed and verified with the client. Also, the integrations with other systems are built which feed and receive data from SuccessFactors. When all is good to go, the client will do the User Acceptance Testing and the system is moved to production and presented to End users with a Go-live. The Run phase is an important phase in which you optimize your system to ever changing requirements and increased capabilities of the system.

Testing starts in the Explore phase in which the SuccessFactors certified partner tests if the initial installation was done correctly. In the Realize phase, the systems are configured in iterative cycles and tested in different ways:

• Functionality • Roles and Authorizations • Interoperability • Data • Technology

© 2019 Page | 4 Automated Testing For SuccessFactors Functionality testing

Functional testing is a quality assurance (QA) process and a type of black-box testing that bases its test cases on the specifications of the software component under testing. Functions are tested by feeding them inputs and examining the output. An internal program structure is rarely considered (unlike white-box testing). Functional testing usually describes what the system does. Functional testing does not imply that you are testing a function (method) of your module or class. Functional testing tests a slice of functionality of the whole system. After every iteration, or change in config, parts of the system are tested if they work the they are supposed to. This can be done by , which tests if a unit or part of the configuration works as expected. After changes to the config are made, you then test the system again and see if the results deviate from the previous results. This is called .

If payroll is part of your implementation, it’s common to do parallel testing. This means you run a shadow payroll for one or more pay cycles to see if the new system produces the same paychecks, deductions and other data as the system to be replaced.

A final test before go-live with a system is User Acceptance testing. In user acceptance testing, the key users of the client will test if the system functions according to the requirements. After signing off the system will go live and will be rolled out a larger population. When the system is placed in production a final test will be done which is called production validation testing. This test is to make sure the system works as designed in production.

Roles & Authorization

Roles and authorizations within SuccessFactors determines what different users can do and see in the system. It’s crucial to have different roles defined and test if the permissions work accordingly. Role Based Permissions in SuccessFactors is normally set-up per module and a user can have multiple roles assigned to her/him. So, testing this area involves testing if the roles are correctly defined in the system and more importantly if the authorizations are correct. You don’t want an employee to be able to see all salary and performance data from other employees. An area which is sometimes overlooked is reporting by reports can users generate and what data is displayed. When you consider GDPR and other data privacy laws, this is of utmost importance.

© 2019 Page | 5 Automated Testing For SuccessFactors Interoperability

One of the strengths of the SuccessFactors platform is the capability to integrate with other applications in the organization and create seamless digital business processes. Standard integrations between the SuccessFactors modules are very low risk for issues but will need some testing. The larger focus should be on the non-SuccessFactors applications you integrate with. The risk of not doing Interoperability testing are:

• Loss of data • Unreliable performance • Unreliable operation • Incorrect operation • Low maintainability

The following are the different types of software interoperability testing you may hear of in order of importance and relevance to SuccessFactors:

Data Type Interoperability Testing: This type of testing aims at testing the data at its data type level. In other words, if numeric data is transferred from the source system then the destination should read and process it as numeric data only.

Semantic Interoperability Testing: This type of testing aims at verifying the data semantics or algorithm involved during data exchange.

Specification Level Interoperability Testing: This type of testing aims at verifying the device specifications such as data transfer protocol used between devices, the data format used between computer software components, etc.

Physical Interoperability Testing: This type of testing aims at verifying the physical device or software system connection such as USB port compatibility, HDMI port compatibility, data cable compatibility, etc. between communicating devices. Not relevant for a cloud system like SuccessFactors.

© 2019 Page | 6 Automated Testing For SuccessFactors Data testing

When clients move to a new system they have different requirements in transferring current or historic data. Some would like to only bring over current data and other prefer to take all their historical data. An important factor is the cleanliness and accuracy of the data. Another factor is if the data is converted or just migrated. Data conversion is the transformation of data from one format to another. It implies extracting data from the source, transforming it and loading the data to the target system based on a set of requirements.

Data Migration is the process of transferring data between silos, formats, or systems. Therefore, data conversion is only the first step in this complicated process. Except for data conversion, data migration includes data profiling, data cleansing, data validation, and the ongoing data quality assurance process in the target system.

To ensure both historical and incremental data is successfully migrated, it requires running several validation tests, including:

Schema Validation: During data migration, it is necessary to validate the schema, such as stored procedures, views, or user preferences as part of the data migration.

Cell-by-Cell Comparison: Testing at this level of detail guarantees full validation of the data, helping to avoid time-consuming and expensive data quality issues often discovered in after a data migration.

Reconciliation Checks: One of the most important aspects of validation is performing reconciliation checks on the source and target databases for all columns. This ensures that the data is not corrupted, date formats are maintained, and that the data is completely loaded.

NULL Validation: It is necessary to ensure the NULL is not accidently inserted in place of valid data.

Ad Hoc Testing: The final step in the testing process, ad hoc testing ensures that the target business application and the newly migrated data can successfully process the data. Ad hoc testing may include running a business query from customer, examining important data or frequently used tables to ensure that the source and target data match the data migrated successfully.

© 2019 Page | 7 Automated Testing For SuccessFactors Installation testing

Now you may think that SuccessFactors doesn’t need installation testing as it is a cloud based software and is already running in the cloud, but unfortunately no. All customers from large enterprise platforms like SuccessFactors will receive their own instance of the Platform which is hosted in the cloud. There are multiple instances:

• Test environment (or multiple) • Preview/Stage Environment • Production environment

Typically, your consulting partner will perform these tests and therefore we won’t go deeper into the specifics.

© 2019 Page | 8 Automated Testing For SuccessFactors Testing For Configuration Changes

Every config change or adding additional functionality can influence the specific SuccessFactors module but also on other modules. So, you don’t only need to test if the new process works as designed, but also if the rest of the module still works as expected AND if the other modules are not affected. This sounds like an overkill but look at the following example:

When you enable Job Profile Builder for Recruiting and you already have Performance and Goals installed, you need to test if the module still works as expected. Performance documents often contain core-value or job-related competencies which can be impacted by the job profile builder.

© 2019 Page | 9 Automated Testing For SuccessFactors Testing For Quarterly Releases

SAP SuccessFactors is running on a cycle of quarterly updates—that means a new set of updates each quarter to customers. Each release to all data centers (called a production release) is preceded four to eight weeks by a preview release. The previews allow customers who wish to test out upcoming features, and prepare their staff for what’s coming, to do so.

We all know that technology evolves quickly, and SuccessFactors is no exception. SuccessFactors releases fixes or patches to existing functionally and introduces new functionality through quarterly releases. Before each release, the product team for each SuccessFactors module offers both a webinar and detailed documentation about what is coming in the update.

Each release is divided into two release dates. The first one is released in the Early Test Environments and the second updates are released in the Production Environments. The Early Test Environments are released one month before Production Environments. During this month, customers and partners can test new features and options to make sure everything is working fine.

Below are the different types of updates:

Universal Updates: Are applied to all customers and contain mostly legal updates, small enhancements, user interface changes and some types of extensions.

Opt-in Admin Updates: Can be installed via the Upgrade Center and/or can be configured directly in the Admin Center.

Opt-in Provisioning Updates: Should be done by SuccessFactors Support, or a SuccessFactors Partner because they require Provisioning access (SuccessFactors back-end). Each administrator can decide whether they want to apply these updates to their system.

Opt-Out Updates: Are applied to all customers, but as the name suggests, you have the option to ”turn it off” and continue to use the previous version. Also, this is where you can think about small enhancements or extensions.

Release Communication: It is an important part of the release process. Quarterly releases will be communicated to partners in several ways.

Release Highlights: This short document gives a high-level overview intended for the decision makers in your organization.

© 2019 Page | 10 Automated Testing For SuccessFactors Release Information Summary: The summary provides an overview of new features and enhancements in greater detail. It is divided by module and useful for the admin user.

Release Information Details: This document gives even more details about each update or module and is useful for Administrators and Super Users involved with each module.

Release Information Webinars: Webinars are hosted by the product team of each module. They explain what is coming in the release and provide an opportunity for the customer to ask questions.

Every time SuccessFactors releases an update, it will bring changes to the software which may have an impact on how your system is designed to work. Before any new release is adopted and moved to production, all processes need to be tested if they still work as expected. SuccessFactors provides 4 weeks from release to adoption of the mandatory parts of the release. This period is critical to decide which parts of the release to adopt. After adoption in the test environment, you need to perform the necessary testing. If you don’t have the resources to test all processes, there are services which can help with automatic or .

© 2019 Page | 11 Automated Testing For SuccessFactors Manual vs. Automated Testing

As you have adopted the SuccessFactors platform, you may expect that a quarterly release should be as simple as the latest iPhone software upgrade. Unfortunately, that is not true yet. Enterprise Software is complex and although SuccessFactors is leading the market in stability there is a need to test every process after every configuration change or update.

Let’s start with what automated testing really is. With automated testing, test cases are executed with the assistance of tools, scripts, and software.

Now, as you have read above there are many different types of testing. Not all are fit to automate, but one of the most time-consuming tests, regression testing, is. With regression testing, you test if the system still works as expected, if it didn’t regress after the update or configure changes. Regression testing is done by re-running the same scenario’s before and after the change and checks if nothing has been broken. Regression tests can include load, functional and unit testing.

Humans are smart and creative, but they are not the best creatures to do repetitive tasks. Robots, on the other hand, excel in it. is a test which determines if an application is easy to use. This is a good example where humans are better equipped to the task.

© 2019 Page | 12 Automated Testing For SuccessFactors If we look at Automated vs Manual testing we see the following differences:

Manual Testing Automated Testing

Stability High Low

Consistency Low High

Speed Low High

Cost per test High Low

Risk High Low

Stability – if you don’t change your system too frequent, let’s say less than once a year, you should test manual. Most likely manual testing is faster and more cost-effective than investing and setting up automated testing. If you have more frequent changes every 6 months, it makes sense to consider automated testing.

Consistency – if you test after every change you will know which change is causing the problem. If you only test after 5 changes, it’s a lot harder to figure out which change caused the problem. With the speed and convenience of automated testing, it will help you to run tests more frequently and quickly find the issues when they arise.

Speed – this is an important one. Manual testing is time-consuming. Planning resources to be available for testing and making sure they’re trained to test can be a challenge. Automated testing does take time, but it runs significantly faster than a human and it can be done overnight or during the weekends. This is a huge advantage if system changes need to be deployed quickly. Automated testing significantly improves business agility.

Cost per test – Automated testing is more expensive to set-up than manual testing a couple of times. But, the cost per test quickly diminishes. A break-even point can be reached already by running a test 5 times.

© 2019 Page | 13 Automated Testing For SuccessFactors Risk – If your HR system consists of confidential information, and it almost always does, there are risks where improper testing will expose sensitive information. This can lead to direct or indirect financial loss. Fines for non-compliancy with GDPR are steep and exposed salary or performance rating information can result in an unengaged workforce. As we know, manual processes have a higher failure rate than automated processes.

Automated testing will reduce the need for manual testing significantly and make your business more agile, save you money and strongly reduce your risk. Just make sure you use it effectively.

Interested to learn more? We can provide a demo of how our library of automated tests for SuccessFactors will increase your coverage, reduce risk and make quarterly updates a breeze.

© 2019 Page | 14 Automated Testing For SuccessFactors