What is Extreme Programming?
– Extreme programming is counted as one of the finest agile software development methodologies.
– Extreme programming has proved to be a great methodology when it comes to making improvements in the software products as well as projects.
– It has also been known for its quick responsiveness towards the changing requirements of the customers.
– The extreme programming methodology is also known to drive frequent releases of the software products that are shippable.
– It does this in short development cycles by deploying the strategy of time boxing.
– This methodology works well enough for improving the productivity.
– Though unit tests are supposed to be the corner stones of extreme programming, the unit testing here is carried out in a little different way.
How is unit testing done in extreme programming?
– Firstly, a unit test frame work is required with which automated unit test suites can be created.
– Secondly, all the classes present in a test case must be thoroughly tested by the tester.
– Here, the trivial getter and setter methods are not used.
– The tests are created before you write the test code.
– These unit tests along with their code are released in to the code repository.
– Here, only the tests which have code with them are released.
– The problem that is prominent with this kind of approach is that it consumes too much of time and mostly we have fast approaching deadlines.
– But the plus side here, is that unit testing in extreme programming saves you the cost of the project by a hundred times during its life time.
– Most of the unit tests are difficult to be written but they are the ones that save you more.
– The benefits you get paid back in the case of automated unit tests are far greater than the efforts that you might spend creating them.
There had been a misconception regarding the creation of unit tests which is that one can create unit tests in the last three months of the project development. But unfortunately this is not right.
– Unit test creation is bound to take more time unexpectedly.
– Even, if you have got a lot of time, creation of good unit test suites take bit more time to be developed completely because it takes time to dig up all the problems.
– The best thing to do would be to start developing the tests as early as possible in the software development life cycle.
– Unit tests in extreme programming also allow you for what is called collective ownership.
– Whenever tests are created, they are always guarded from their functionality being harmed accidentally.
– Also, there is no requirement of individual code ownership if all the classes are being guarded by the unit tests.
– Another advantage of carrying on unit testing with extreme programming is that you can re-factor the code very well using the unit tests.
– After every small change that you make, it can be verified by the unit tests that if that particular change is affecting the functionality in any way.
– You can also go for a single universal test suite for regression testing and validation purpose since it enables frequent integration.
– Any recent changes can be integrated quickly and then the latest version of the test suite can be executed.
– It is always wise to fix small problems by the end of the hour than to keep them pending for the deadline.
– Unit testing also makes it possible for you to merge changes with the software’s latest version and release it under a short interval of time.
– However, if it is required to add new functionality, then unit tests also have to be changed accordingly so that they also reflect that functionality.