I'd like to learn more about/better understand common java web development practices of development groups that have at least two teams - web designers and web component developers. Particularly, I'm interested in understanding things like:
Assuming there is a code repository, do all teams checkout a local copy of all code? If yes, why would a web designer want/need access to back-end code, similarly why would a web component developer want/need access to front-end code?
How does each team-member, regardless of team, test their code - do they 'deploy' the code to their local workstation, an individual instance on a development box, or a consolidated dev box?
How is integration and testing done? For example, let's say a web designer creates a 'sign-up' form page and web component developer creates the back-end code to process and insert the data into the db - how would the front-end and back-end code be integrated and tested?
Any additional information that pertains to java web development practices of development groups that I have not specifically inquired about, but is relevant, please do share.
EDIT (FOLLOW-UP): I appreciate the answers, they've filled in most of the conceptual holes I had about java web development. However, I do have a couple of follow-up questions -
Testing, particularly automated testing are clearly important parts of java web development; but what constitutes a good "test"? For example, lets say a java back-end developer just put together code that accepts form data, validates it, and then inserts into/updates a database. What would be a good test in this scenario? Furthermore, how could this be "automated"?
Can someone expound on continuance integration - i.e. is their purpose to only compile all project code? Or is it to help in automated testing? From what I understand continuance integrations servers monitor repositories for commits, and upon commits checkout the newly modified code and compile the entire project; upon successful/failed compilation the user(s) are notified.