A wise person once told me
Code a little and test a lot.
In my experience many programmers, especially early on, code the whole script from go to whoa without doing any testing along the way and since most times it won't work first time, they then get in a knot trying to work out what is wrong.
I prefer to code a few lines and then test that code to ensure it works. That way if something goes wrong I am debugging only a small chunk of code and not a whole script.
When I start a PHP script to process form data one of the first things I do is get the data from the form and store it in variables.
Before I do anything else I then display the received form data on the screen using echo. If the form data hasn't come across correctly there is no point in proceeding with coding the rest of the php script.
Then if I have to insert or retrieve any records from a database I write that small block of code and check any inputs or outputs before proceeding because, again, if they are not correct there is no point in continuing to code the rest of the script.
So if you continue coding and testing in small chunks you are much more likely to have a properly working script when you get to the end.
Debugging in small chunks is much easier, imho, than trying to debug a whole script, especially if you are not sure what is causing the error in the first place.
Anyway, the above is just food for thought and happy coding
Testing is really just part of good work flow to hopefully avoid bugs or catch them before they can propagate. Debugging is its own, separate process.
I suppose it depends on your definition of debugging and testing.
while testing, if an error (bug) is found then fixing it is debugging imho.