openSAP – ABAP Unit Testing course – Wrapping up
My initial intention for the MOOC was to just do the first 2 or 3 weeks to get at least a rough understanding of what this unit testing stuff is all about. I’m therefore actually kind of surprised that I kept plodding through until the end, even doing the various quizzes and weekly assignments, if not all of the exercises. As mentioned earlier, the ABAP-OO knowledge necessary to actually understand all the details flew mostly right above my head from week 4, but I still found the MOOC useful and stated as much in the “I like, I wish” thread I posted in the MOOC-forum:
I like ….
- …. that – completely unrelated to the main topic! – I got exposed to ABAP constructs like DATA & VALUE which I had seen but not really used before
- …. that I now have at least a rudimentary idea of what ABAP Unit Testing and Test Driven Design is all about (even though the likelikhood of actively using it is for now close to zero)
- …. that it made me write two blog posts thus far (and the helpful responses posted) with a third one already taking shape in my head
Let me elaborate a bit about the first two list items:
Exposure to interesting ABAP constructs
This will for the near future be the most valuable aspect of the MOOC for me even though this is obviously mostly “off topic” for unit testing. I had seen constructs like the DATA- and VALUE statements in programs I did rudimentary code reviews for but never actually followed up what all is possible with them. From now on, I’ll make sure to integrate these statements into code I write where it makes sense.
Obviously, and even though I didn’t necessarily understand many of the details of the ABAP-OO constructs, just seeing and playing a bit with them, was helpful to be exposed to. It’s however still quite easy and doesn’t take much effort to get me rather confused when FRIENDS, FACTORY, INTERFACES and the likes get mentioned, or when the statements get quite complex.
Seeing what is possible with Unit Testing and TDD
Yes, it was helpful to see this but it’s rather unlikely that we’ll be embracing this concept any time soon. The reasons for this are manifold, so here are just a few off the top of my head:
- Only a very small percentage of our custom code is done with ABAP-OO while the overwhelming majority is still procedural
- We don’t have a large enough inhouse development team but work a lot with longterm external colleagues who know the details of a given process in a lot more depth than we do
- Consequently our (inhouse) knowledge and usage of ABAP-OO is mostly rudimentary
- We also have developments done by short-term contractual developers in other countries and it’s already a struggle to get them to adhere to our general development guidelines. I don’t even want to think about how we’d get them to do ABAP-OO properly let alone use unit testing (not to speak of TDD at all)
We do have at least one candidate program where having strict unit testing implemented would really be a big help, but it’s unfortunately a rather large (35,000+ lines) and central enhancement of SAPMV45A where I don’t see much of a chance of doing something like Paul Hardy has started to detail in his recent blog post. About a year ago I had started a discussion about our ongoing struggles/hassles with that particular enhancement. Needless to say that we haven’t yet found a workable solution and the enhancement has just grown larger since then!
This and that
Week 5 about the “Dependency Lookup” happened while I was on “vacation” during which I didn’t spare much if any thought to anything SAP- or ABAP-related. Instead, I participated in the General Assembly of the European Geoscience Union held in Vienna and if you wonder what that has to do with my job, the answer is “zero”. In case it’s of interest, you can read about my “adventure” here: Skeptical Science at EGU 2018 – a personal diary. Needless to say and given my interest in climate change, I was positively suprised to see openSAP offering a short MOOC about the topic: Climate Change, Risks, and Challenges (Short Track Version). It only takes about 2 hours to work through and I highly recommend it!
Once back in the office from that eventful trip, I didn’t have much time to “work” through the lectures for week 5 and therefore I just watched the videos and didn’t bother with any of the exercises (which would have taken way too long given my low understanding of ABAP-OO). I still did the assignment even though it involved quite a lot of guessing and actively ignoring the instruction to only reply to questions I thought I’d know the answer to. Given this haphazard approach to the assignment, you can imagine my surprise when I noticed the result on Wednesday and that I had actually scored 100%! ?
I did get more of the stuff tackled in week 6, most likely due to the fact that at least some of the things mentioned will work in procedural code as well. As soon as I have the opportunity, I’ll for example try out the TEST-SEAM statement which should come in handy now and then.
Thanks for some interesting discussions
A really positive experience I got from the MOOC were the responses I receivd to my blog posts about it. These really helped me to not just work through some of the exercises I’d otherwise have given up on but to also put things into perspective. So, thanks to all who responded and added to the discussions, I really appreciate it!
Apart from the final exam to be tackled next week, it’s a wrap for me – even though fully digesting the MOOC’s content will obviously take quite some more time.
Thanks for reading my musings!