A
s everyday activities became more and more easy thanks to the help of electronical devices, the competition for companies which create tools for daily activities has become more intense as well. The companies are currently in a race to create products which cost less and work as efficiently as possible. As a result of that a crucial step to check efficiency, called testing, is now more systematic than ever which considering even in 1979 a well known rule was to spend 50 percent of the time and more than 50 percent of the budget to be used for testing,[1] the importance and effort put in for testing is currently colossal. Nowadays a popular and succesful approach is to test the product with more user involvement. Agile …show more content…
Since it is a critical process to provide high efficiency, it was inavitable to integrate this quick cycles approach with testing. A process called “Test-Driven Development” was born in 2003 to provide exactly that. In TDD, before each cycle, requirements are examined and are evolved into the test cases. After that step, the software is developled only to pass these specific test and added to the product. By this method it is easier to prevent any piece of program that does not meet the requirements from being added to the …show more content…
This helps companies to be one step ahead of their competitors. Another benefit is making sure that the product is the right product. Since every step is being checked in terms of meeting the requirements, it is less likely to miss a requirement which also makes it more reliable and high quality. With all these benefits combined, the last benefit is higher customer satisfaction. Customers are less likely to be disappointed when their needs are in center of development and the correctness is checked continuously. In the other hand, CD might have some drawbacks for development as well.[4] In a critical stage of their operation, users might not want to have CD as a method for development in order not to have often updates for it. In some cases, it might not depend on the customer but on the developed system to choose its own development approach. Some systems require detailed testing before release which slows down the process and intervenes with continous development. Another critical issue when applying continuous development is to choose different platforms for different steps of development which can cause conflicts and hard-to-detect issues to appear. Also human factor can be important when testing the commits if they are not otomated