Interview Questions

How is Software Quality Assurance and Software Configuration Management integrated into Extreme Programming?

Software Development Models


(Continued from previous question...)

How is Software Quality Assurance and Software Configuration Management integrated into Extreme Programming?

XP defines two levels of testing. The first is unit testing, which must be performed by the programmers as they work. Each class implemented must have programmer-developed unit tests, for everything that "could possibly break". These tests are to be written during coding of the class, preferably right before implementing a given feature. Tests are run as frequently as possible during development, and all unit tests in the entire system must be running at 100% before any developer releases his code. (By release, we mean transferring from his own code space to the code integration area. This is handled differently, of course, depending on the code management tools in place.)
The second level of testing is called functional testing. Each feature of the system (which is defined by something we call a User Story, rather like a Use Case) must have one or more functional tests that test it. The functional tests are the responsibility of what we call the "customer", the body responsible for defining the requirements.
The implementation and running of functional tests can be done by the Software QA group, and in fact this is an ideal way to do it.

(Continued on next question...)

Other Interview Questions