Agile development methods are driving an evolution in the software testing function by enabling it to better fulfill its purpose of quality assurance. Through iterative processes, agile allows testing to occur earlier and more frequently, verifying quality at each step. This requires testers to specialize their skills and developers to contribute to testing through training and increased automation.