I enrolled in Coursera's Discreet Optimization about a year ago. It was way beyond my ability [No SoA], but I learned a hell of a lot about computing and solving hard computational problems. It also suggested that mathematics might be important when grappling interesting problems.
For fun I watched a number of Strang's Open-Courseware videos on matrices. I hit Chapter 1 of TAoCP. I treated it like programming - it was ok to only partially understand. I took an Algorithms MOOC or two. I actually enjoyed following the analysis even formal analysis is not something I would do for pleasure.
The turning point though was when Lamport's "Thinking for Programmers" [Lamport: Thinking] hit HN. It threw down the gauntlet. Specification is a prerequisite for a commitment to getting it right, where the it is computing. And when the it is computing, we are talking about math whether we like it or not.
It's not that the math and specification replaces testing. It's that tests are ad hoc without a mathematical understanding of the computation.
[Lamport: Thinking] http://channel9.msdn.com/Events/Build/2014/3-642