It is interesting that the business is more pro-testing than developers! Unit testing adds a tool your development process, but It sounds to me like your biggest challenge will be to overcome your developers resistance to change. Theychange; they need to re-define their understanding of their jobs to include unit testing.
Nothing can help you more than early unit-testing successes to help your developers overcome their resistance to writing these tests. If you push them to do something new, make sure you push first for something with a nearly guaranteed reward.
@SkipHuffman touched on this, but I'm going to say it outright. Some things are much more suited to automated testing than others. For the first pass, I would plan to NOT test the database or the UI. Input from a database iscan be extremely difficult to set up appropriatelyand tear down. Tests for UI UI output tests tend to be quickly broken when the UIby look and feel changes colors or other aspectsthat are completely irrelevant to your tests.
What I'd call "middleware" is perfect for unit testing. Code that has clearly defined input and output conditions. If you follow the DRY principle (Don't Repeat Yourself), you will have written some little classes or functions to solve recurring problems that are unique to your application.
Unit testing is a great tool to limit the risk of changing existing internal components. Write unit tests before changing an internal component that has worked for a long time, but has a little bug or needs enhancement. Write These tests to prove that the currently working functionality is preserved. Then write tests for When you have made your proposed change. When and all unit tests pass, you don't have to work so hard to test all the "downstream" places that the fixed function is used by other codeknow you haven't broken anything "downstream." If you do find a downstream issue, writeadd a new unit test for that tooit!
AfterRon Heifitz would say to "address conflicts in the values people hold, or to diminish the gap between the values people stand for and the reality they face. Adaptive work requires a change in values, beliefs, or behavior." After you overcome the human resistance to change, you can branch out into other areas. But nothing can help you more than early unit-testing successes to bring about the cultural change that will make your developers want to continue unitdifficult testing! areas as appropriate.