Extreme Programming Practice

Customer Tests

While designing a system, a good team does not assume that they are getting everything right. The team has to prove that what it is doing works and what they are designing is the system needed by the customer. Customer tests allow a customer and programmers to know whether the system is working as they expect it. This practice also makes it possible for the customer to inform the programmer what should be done to meet all the customer requirements.

Customers have the right to check the progress of the system. This is the aim of this practice. The system needs to undergo testing to check whether it is working as required. If these tests are not done, the system may have flaws during actual usage and customers will be disappointed. Hence, it is crucial to test the system to ensure it has no weaknesses before shipping it to the customer.

Extreme programming values feedback and the most critical feedback is getting early information on the performance of the system. With customer tests, mistakes can be discovered sooner, and they can be rectified before the end product is delivered. The customer will provide acceptance tests, and this helps a project to go faster since mistakes are discovered sooner.

How to Practice Customer Tests?

Customer tests are done by having customers develop acceptance tests. These tests determine the overall performance and behavior of the system. Customers create every story they request. The team behind the system will run these tests to measure the progress in developing that system. The team leader tracking development maintains a graph outlining the performance of the system over time.

While writing these tests, an extreme programming team may have a programmer or tester work with the customer. However, the customer owns the tests. While doing the tests, the customer assists in specifying the requirements. Hence, for this practice to be a success, the system has to be testable, and this is one of the demands it should meet.

During system development, a programmer will often present questions to the customers to get the information they require or to get the customer to make a crucial decision. Once the customer finds answers to the questions, they will find a way of making tests to guide them on whether the programmer has followed their responses.

A customer will also strive to make the tests automated. This means that the customer will spend some time developing points. When making customer tests, all that is needed is specifying the inputs and all the expected results. Spreadsheets are great for doing this. Programmers can read them using small programs to run the customer tests. Automating these tests results in better overall quality.