Objective of a software development is to produce a error free product in less time with all effective manner so that which can satisfy the client. Always a Developer tries to write error free and runnable code. On the other hand a tester finds bugs in all possible ways. It may happen each time a product requires changes in features or modification in functionality. In order to get rid of all these problems Extreme Testing is really a ideal solution.
Extreme Testing is based on Extreme Development. In this testing process no need of two developers rather a developer and a tester work as a team. The four important features of Extreme Programming are:
Simplicity–Always try to make simpler to meet current requirements.
Communication–Make sure that you are aware of the features and its role in the project. Otherwise communicate with all the features of the project soon.
Feedback–Provide information back to the programmer who produce the code when you find a problem with the code you are using.
Aggressiveness–Show your aggressiveness to a project even if any changes will not be made soon.
Extreme testing can be defined as achieving the target, increasing the testability and minimizing the variability of the system under the test. The extreme testing normally takes place at the developer workstation. In first step to Extreme testing, a formal test plan will be available at this point , but this process can work very well with free-form testing at such an early stage in the testing process.
Extreme testing starts with the Extreme Programming Project work. Design, Implementation and testing all happen together under Incremental Development. Then what will be our approach in such testing?Yes, its approach is little bit different from other type of testing. Extreme testing follows certain steps:
1. Test cases are written before coding and Unit test,End-to-End testing of each classes are done in this section.
2. A tester performs all types of testing as per user requirements.
3. Make sure that all unit tests should perform 100% at every time. All Unit
Tests must pass before a component is allowed to be integrated.
4. All Acceptance Tests must be properly documented.
5.All Acceptance Tests and Regression Tests must pass before a Release is made.
6. Automate any test when it makes sense and where it is possible.
The process begins with the tester in charge of the keyboard and the mouse, working with the system under test. When the tester finds something they think is an issue, they and the developer are immediately able to examine and discuss it – much more quickly coming to an understanding of the issue, and deciding together whether it is in fact a defect that needs to be fixed. This immediate discussion and shared understanding is something that will take much more time if it is done later as part of the formal testing process.
In this process, the developer will be able to quickly fix the problem, rebuild the system, and the tester will verify the fix immediately. The problem has been handled, does not need formal documentation, and testing can continue. In the early stages of testing, this happens more frequently than you might think – and the speed and productivity of this Extreme Testing is like lighting compared with the later and more formal testing process.
If we analyze this process we can get a number of benefits from Extreme Testing. Extreme testing keeps software soft. There is no fear of modification or change in software. Continuous testing process brings confidence to Developer. As code passes unit test ,it creates reliability on product and it also brings customer satisfaction. Knowledge exchange can be possible through code reviews. In this process the same bug can not be re-introduced. Whenever you are confident in code no need to test it more.