420 likes | 1.05k Views
Quality assurance of agile software engineering. Shipeng Xu. What is quality assurance?. QA refers to the planned and systematic activities implemented in a quality system so that quality requirements for a product or a service will be fulfilled. Agile software engineering. Agile manifesto:
E N D
What is quality assurance? • QA refers to the planned and systematic activities implemented in a quality system so that quality requirements for a product or a service will be fulfilled.
Agile software engineering Agile manifesto: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan
Overview • How quality is assured in agile software engineering from the process and product perspectives. • The practice of test driven development (TDD) and the main issues related to its practice.
Some differences between agile and other methods with respect to quality
Process Quality • Two characteristics of agile processes: • Transparency Project’s ongoing details are highly transparent to all the stakeholders. • Tightness The tightness of development rhythm encourages a high quality process.
Product Quality • Several agile practices ensures the software quality: 1. Refactoring 2. Pair programming 3. Acceptance tests 4. Test-Driven Development (TDD)
Test-Driven Development • A technique that enables a step-by-step development of a specific functionality together with its unit test, when each step of the test precedes the respective step of code.
TDD helps to overcome some traditional testing problems: • Not enough time to test • Testing provides negative feedback • Responsibility for testing is transferred • Testing is a low-status job • Testing is hard
Shortcomings of TDD • Fails when full functional tests required • Management support is essential • Unit tests share blind spots with the code • False sense of security=>less testing activities, such as integration testing
Difficulties in implementing TDD • Increases time to write code • Work is delayed because of relatively simple item • It is hard to identify the critical cases • It is not suitable for every kind of task • It is a waste of time if the code is not used later
One reason for the difficulties in applying TDD • Like other processes that must be measured, disciplined and controlled, • TDD processes should also be measured and controlled • Solution: Measured TDD
Recap • How quality is assured in agile software engineering from the process and product perspectives. • The practice of test driven development (TDD) and the main issues related to its practice.
Reference: • Hazzan, Orit, and Dubinsky Yael. Agile Software Engineering. London: Springer-Verlag London Limited, 2008.