Thank you. I've used Codeacademy, Coursera, Udacity, edX, and while all of them do a somewhat decent job teaching me how to program, I've totally missed the boat on testing.
I don't really like that you call tests "just checklists". That's accurate for unit tests, but I don't think it really captures the spirit of integration or functional tests.<p>Integration tests, to me, provide value by making a space to brainstorm "what if" questions around corner cases of interactions between components. Testing the "happy path" provides confidence that all the individual assumptions aren't inconsistent as a whole.<p>Functional tests, for me, provide a way to think about "well, this is what we built, and it's internally correct, but is it what will fit the needs of our users?" I would also differentiate between end-to-end scenario testing, and discrete testing of a single unit of functionality. An example of the former would be the signup process, while the latter might be making changes in a preferences configuration screen.<p>I think it would be worthwhile to also discuss "tenet" testing, such as Performance, Accessibility, Localization/Internationalization, Failover/Rollover, Security.