automated acceptance testing as an agile requirements engineering practice

27
HICSS 2012 : 5289-5298 Automated Acceptance Testing as an Agile Requirements Engineering Practice Hawaii International Conference on System Sciences Tor Stlhane Børge Haugset 100525002 王王王

Upload: sveta

Post on 20-Feb-2016

71 views

Category:

Documents


2 download

DESCRIPTION

Automated Acceptance Testing as an Agile Requirements Engineering Practice. HICSS 2012 : 5289-5298. Tor Stålhane. Børge Haugset. Hawaii International Conference on System Sciences . 100525002 王浚懿. Outline. Introduction Requirements Engineering Agile RE - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

HICSS 2012: 5289-5298

Automated Acceptance Testing as an Agile Requirements Engineering Practice

Hawaii International Conference on System

Sciences

Tor Stalhane

Børge Haugset

100525002 王浚懿

Page 2: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

IntroductionRequirements Engineering Agile RE Existing comparisons of RE and agile REAcceptance test-driven developmentResults from the case studyDiscussionConclusion

Outline

Page 3: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice
Page 4: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

How to use

Automated acceptance test-driven development (ATDD)

Impacts requirements engineering

Introduction

Page 5: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice
Page 6: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

RE agile RE

documentation

communication

ATDD

Page 7: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Framework for Integrated Test

Page 8: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

• Requirements engineering (RE) is a large domain

• focus on functional requirements

• leave non-functional requirements (NFRs) out of scope.

Requirements Engineering

Page 9: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

• Goal – what do they want to achieve?

• Main activities – what do they do when they “do their job”?

• Main goals – what do they want to achieve when they “do their job”?

Page 10: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Adaptive rather than predictive

People oriented rather than process oriented.

Face-to-face communication

Customer involvement

Agile RE

Page 11: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Inadequate user-developer interaction

Presenting requirements in the form of designs:

Not inspecting requirements

Existing comparisons of RE and agile RE

Page 12: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Framework for Integrated Test ( Fit )

Fit tests may be needed to convey understanding of a requirement.

Acceptance test-driven development

Page 13: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

They interviewed four developers from a consultancy company (Konsult).

The project group, now a total of ten developers and two interaction designers are working on-site at a customer office .

All projects are run in a test-driven fashion .

The project with the most extensive use of FIT currently has 1100 lines of tests, the average test being 15-20 lines long.

The case study

Page 14: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Business requirements are discussed in bi-weekly meetings with the customer.

The communication of requirements has been focused around the Fit tests.

Not all requirements ended up as Fit tables.

In the specification phase ATDD was used to help communicate requirements .

Results from the case study

Page 15: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Inadequate user-developer interaction

Presenting requirements in the form of designs:

Not inspecting requirements

Discussion

Page 16: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Agile RE mitigated this risk.

ATDD has the same iterative interactivity, and should give the same benefits.

ATDD has a focus on the customer and developer agreeing on the existing requirements

If the requirements change the tests must reflect this, adding a larger cost than regular agile development.

Page 17: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Overlooking crucial requirements

Presenting requirements in the form of designs:

Not inspecting requirements

Discussion

Page 18: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Agile and ATDD both depend on communication with customers.

Different customers specialize in different topics.

The developers need to communicate with different key personnel when they have questions about the various sorts of requirements

Page 19: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Overlooking crucial requirements

Presenting requirements in the form of designs:

Not inspecting requirements

Discussion

Page 20: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Agile RE has a positive impact on this risk .

ATDD has an even larger positive effect here.

The tests to improve their communication with the customer, guiding the conversation.

Page 21: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Overlooking crucial requirements

Presenting requirements in the form of designs:

Not inspecting requirements

Discussion

Page 22: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

• In ATDD, requirements are described• tables that act as both documentation • runnable tests

• This leads to mitigating the risk that the agile process exacerbates.

Page 23: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Lack of requirements existence and stability

Issues with users’ ability and concurrent among users

Overlooking crucial requirements

Presenting requirements in the form of designs.

Not inspecting requirements

Discussion

Page 24: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Agile RE worsens this risk.

This is perhaps a risk where the practice of ATDD .

Page 25: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

• ATDD gives detailed documentation of all requirements

• This documentation ,built as runnable tests, is founded on close communication with the customer.

• It is not necessarily easy to use ATDD if you want to gain all its advantages. • it requires more customer cooperation than regular agile

development• not all requirements can be described in this fashion.

Conclusion

Page 26: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

ATDD can help with uncovering the correct requirements.

ATDD focuses on detailing requirements in an automatically testable way.

Page 27: Automated Acceptance  Testing as an Agile Requirements Engineering  Practice

Q&A