In the previous chapter, we talked about ways to test your app. If tests fail, the logs usually tell you what exactly happens, and if this is not enough, you can extend the logging of your app to see where things went wrong.
But even with the best possible testing concept, it might still happen that your app doesn’t exactly behave as it is supposed to. First, it might just sometimes not do the right things from a functional perspective. Second, it might be ill-behaving from a nonfunctional perspective, which means it eats up memory resources as time goes by, or it might perform badly in terms of speed. ...