Tuesday, May 25, 2021

Do You "Regression Test" Your Configurations?

Do you have customzations? Do customizations slow down selective adoption? The answer, of course, is "Yes" to both questions. Our best practice is to move customizations into configurations through Event Mapping, Page and Field Configurator, Drop Zones, etc. Configuration alternatives remove changes from lifecycle management, allowing us to alter the PeopleSoft experience without the impact and overhead of a customization... or do they? It is true; configuration alternatives don't show on compare reports. They move our "customizations" into a separate layer, a runtime injected layer, allowing Oracle to swap the backend code. Another way to think of it is that configuration alternatives automate applying customizations.

Let's review a quick scenario. Let's say there is a field on a page, and you are supposed to remove it. Simple task. The PeopleCode would be record.field.visible = False; If we customized, we would add that code to a design-time event, such as PostBuild. As a configuration, however, we would put that code in an App Class and then use Event Mapping to inject the code at runtime. So the value of configuration is that you don't have to reapply code changes. They are injected at runtime.

So here is a question:

When you re-apply a customization, is design-time code merge (copy/paste) the only thing you do?

Of course not! You also analyze. You investigate. Is the customization still necessary? Is it still relevant? Do you need to refactor around Oracle's changes? You still need to ask all of those questions. Even as a configuration, not a customization, you still must answer the same questions because it is the same code. It is the same solution. It solves the same problem. And, if you customized, you would have a compare report showing you what to review and where. Context. This is proactive. But with configuration? Silence. Without a compare report, how do you know what to review? How do you know what changed? Wait for testers to catch it? Wait for go-live? This is reactive.

Let's continue with the hidden field/Event Mapping example, and you go through a selective adoption or get current cycle. Since you used Event Mapping, your code is still there. But again, should you review it? How do you know what to review? What if Oracle agrees with our "hidden field" assessment and removes that field? Because we used Event Mapping, our code is still there, but it would refer to a field that is no longer in the component buffer, and will fail. What proactive lifecycle management tool is going to help you identify this issue? Without a compare report, how do you know what requires analysis? These are fantastic questions!

One way to locate conflicts is through regression tests. Each time I create a configuration (Drop Zone, Event Mapping, Page and Field Configurator, etc.), I record a test. That test proves my configuration still works. After each get current, I can run my regression test suite and see what fails. Test metadata will point to the change request, etc. so I know what to repair and where. I bet you are already doing regression testing. Everyone does. We usually call it "End User Testing." It might be a formal process but may not include change request documentation, etc. It is more like, "Hey, that thing that used to work is broken again." Alternatively, we recommend PeopleSoft Test Framework (PTF). The PTF metadata (comments, etc.) would contain the change request details. When the test fails, we can easily drill to the supporting documentation. This is proactive.

At this point, you might be saying, "We would LOVE to do that, but we haven't implemented PTF." But here is my question. Do you have to "implement" PTF to use it? Can't you, as a developer, just start recording regression tests against your configurations? That is what we recommend, and that is what we teach in our two-day PTF training course. You already have it. It's just waiting for you to start using it.

Our next PTF course starts in a couple of days, so be sure to register here ASAP! Or, purchase our On-demand PTF training course and get 60-days access to digitally mastered content to learn PTF whenever and wherever.

New to configuration? We regularly offer event mapping, drop zones, and Page and Field Configurator classes. Check out our website to see what we are offering next! Prefer On-demand? Take a look at our new On-demand Drop Zones course and learn on your own time.