SOMETHING MAGICAL HAPPENS when testers and programmers start to collaborate. There is less time spent sending bugs back and forth through the defect tracking system.
Less time is wasted trying to figure out whether something is really a bug or a new feature, and more time is spent developing good software to meet customer expectations. There are many opportunities for starting collaboration before coding even begins.
Fit (Framework for Integrated Test)
acceptance test–driven development (ATDD)
When this collaboration occurs, the functional tests are completed early, allowing time for exploratory testing on edge conditions or through workflows of the bigger picture.
Programmers can collaborate with testers to create successful automation as well.
When testers stop thinking that their only job is to break the software and find bugs in the programmers' code, programmers stop thinking that testers are "out to get them," and are more open to collaboration.
When programmers start realizing that they are responsible for building quality into their code, testability of the code is a natural by-product, and the team can automate more of the regression tests together.