It might seem like a straightforward question yet it opens up many answers and directions.
Working together with the developers.
Currently trying to understand why an action in system A leads to unexpected behaviour of system B.
By clicking everywhere.
Participating in developer code reviews is one way to learn that.
Use cases, documentation and actual users
What else would you add to this? How does context make a difference to how we learn about software? And who actually learns? How do you “check” a shared understanding?