Borut Terpinc (2011) Acceptance tests in the process of agile software development. MSc thesis.
Abstract
One of the key reasons for failures of information technology (IT) projects are the customer's unclear picture of the product and the constant changes of demands in the business world. Usually, in the early phases of project development the customer sees only a pale image of the desired final product. As the IT projects are inherently complex and time-consuming, new requirements often show up during the development process. Conventional development process starts with requirements analysis. When requirements are analyzed and written down, the software development is done in exact accordance with the detailed documentation. Agile models try to respond to the lack of flexibility in such cases and move software development closer to the rapidly changing costumer’s requirements. Test driven development and acceptance tests are the practices of extreme programming, an agile model of software development. The attention in test driven development has been mainly focused on the unit tests. This master thesis focuses to the acceptance tests. Acceptance tests are first compared to the unit tests. It has been concluded that differences relate to the properties that mainly concern people, who participate in the tests, the speed of execution and the integration with development tools. If both types of tests are considered as a test of certain program part, it can be concluded, that from a programmers perspective, acceptance test is actually a unit test without the term “smallest part” in its definition. In this regard, acceptance test are the “big” unit tests used to check on several interconnected units of the program at the highest level of test hierarchy. When it comes to the extreme programming, acceptance tests are moved to the initial stage of software development cycle and can therefore be used to drive the software development process and documentation. Test driven development with acceptance tests is regarded as one type of the software development process. The process presented uses test-driven development principles and acceptance tests to drive the development of requirements based on the user stories. The process presented here is being used in the development of website for the Statistical Office of Slovenia. First, the development tools for the implementation of the proposed process are presented. Later on, the principles of extreme programming and test-driven development with acceptance tests are used, in order to develop the website named Slovenian municipalities in numbers.
Actions (login required)