One thing never changes: the earlier the testing activity starts, the better the results. In an agile development environment, early testing which feeds into subsequent sprints saves time and money overall.
Why test? The overall objective is to reduce the risk of malfunction as far as possible, thus increasing our confidence in the software. We can think of this in two ways. Firstly, does the application do what it needs to do? And second, how does it hold up in the face of unexpected events such as a bad connection or an unforeseen user input? While it’s impossible to prove the absence of defects, a well-designed and implemented testing strategy can minimise them, increasing the overall quality of the software.