How to learn a Complex System?

In testing when we are on-boarded to any new project, the first and most important thing is to learn the application or the system under test. For testers it is very important to not only test the applications but also to know app functionality in detail and the business rules. While it is not that challenging for the less complex or simple application/systems, it can really be a great challenge when the system is complex and has a lot business rules and configuration? Have you ever tested such application? How do you learn about such system or what is your way/approach/trick that makes learning such system way easier and effective?

1 Like

We have a very complicated set of connected systems which have built up over time and while I’m not sure there’s a single ‘trick’ to make learning easy there’s a few things I’ve used over time that might help.

Explore to learn. As you look at each area spend time exploring to learn as you can quickly build up knowledge on how to use the system and create a list of questions to be answered.

Rapid Software Testing has some great techniques to help you map systems and learn quickly. Well worth a look into https://www.developsense.com/blog/category/rapid-software-testing/

Mnemonics and Heuristics and help you navigate too so here’s an example of SFDiPOT http://automation-beyond.com/2015/02/04/sfdipot-mindmap/

Good luck learning and remember to have fun along the way!

1 Like

Thanks for sharing the link. I understand and agree on your point that heuristics and Mnemonics can help us learning the system faster or helps our mind to access the information faster and making it readily available. I have been following SFDiPOT and other heuristics since few years and they are very helpful.

1 Like

Hi Anurag,

Another potential help would be to use Mind Maps. There are
several online tools available that help you create online Mind Maps
that can be accessed online from anywhere, which might be handy
when you want to access information when you are on the go, or
when you have an idea that you need to update in your mental
understanding!

Hi Ady, I saw your comment on this one and started reading the RST articles. There is quite a lot in there, are there any specific posts that you recommend in terms of mapping out systems and learning quickly?

Hi Philip,

In the following blog post I used SFDIPOT to map a system for a performance test. A mixture of words, system diagrams, graphs, post its, and first person visualization is used.

1 Like

Probably start at the source with this article that explains RST. But if you search understanding rapid software testing or rapid software testing explained there are some interesting takes on it.

1 Like

This is what I generally do.

1 - Ask for high level diagrams, documentation, training material etc. for the system.
Ask QA, Dev, Product or anyone who might have any docs.

2 - Break the system into small logical parts & learn more about them.

3 - Find & understand a few positive & negative tests for a part of the system.

4 - Make high level notes on whatever you learn & ask questions.

I know a bit about mind maps, but I never really used them. So far, spreadsheets worked well to understand complex set of business rules.

One needs to be patient because its really hard to understand “big” systems all on their own. However, if you are expected to master most of it in insufficient time & support, then its a problem with the company.

In Secrets of Consulting Gerald Weinberg wrote about the Rule of Three:
“If you can’t think of three things that might go wrong with your plans, then there’s
something wrong with your thinking.”

E.g. a ticket website

  • there is a problem with the payment.
  • someone acquired the complete list of coupons for free tickets.
  • a user with a screen reader wants to order a ticket.

You could call it a shift left movement. Once you identified things that can go wrong, you can look at the system, how these situations are being handled.

1 Like

I’ve done this a few times, working on CyberSecurity systems, Lottery systems and now Airline systems, lots of complex moving parts which make up the bigger piece.

I would always start by sitting down with some SMEs to build up an overall system diagram together or have them walk through it before just handing it to you. Making notes of the interactions between parts of the system

Then i always use Mind Maps to document my notes on the system and enabling me to group relevant bits together.

Get access to a test environment and allow yourself to explore the system, run some tests and get an understanding through practical play

Read wiki pages on the system and also go through any defect backlogs of outstanding issues on the system as these will all help you build up a picture of the risks with the system.