if I understood your question right, you are interested in testing a web application. When speaking about developers tests, you should think about three types of them:
* unit tests - which should concentrate on single classes (usually written using JUnit/TestNG and mocking frameworks)
* integration tests - which should verify if integration of classes/modules (e.g. glued with Spring) works fine - these tests are technology-dependent: usually they also use JUnit/TestNG, but some frameworks provide additional support here (e.g. Spring with classes from subpackages of org.springframework.test.context)
* end-to-end tests - which mimic the way user uses the system, usually by clicking on GUI elements (web page in case of web application) - this is usually done with tools like Selenium, sometimes powered by testing frameworks (JUnit/TestNG)
Depending on the type of application you need different ratio of these tests. If you have complex domain objects and a lot of complicated business logic, than you should utilize unit tests to verify all possible scenario. If your application is of a simple CRUD type (which means not much business logic inside, simply creation/updates of objects) than it would be reasonable to invest your time in end-to-end tests. As for integration tests it depends both on the architecture and technology you use.
As for testing documentation, this is a huge topic - could you ask some more specific question?
Book author: Practical Unit Testing with TestNG and Mockito