You are on page 1of 17

Handling Non-functional

Requirements in Agile Approach


from Requirements to Testing

Instructor : N. L. Hsueh, Feng Chia University


Presented by : K.W. Lee, Feng Chia University

21 Dec 2007

Handling Non-functional Requirements in Agile Approach from Requirements


1 to Test
Outline
 Introduction
 Related work
 Main Idea
 Whys & Hows
 Summary
 Reference

Handling Non-functional Requirements in Agile Approach from Requirements


2 to Test
Introduction
 Problem:
 Conflicts
between different non-
functional requirements (NFR) are
common in complex system.

Handling Non-functional Requirements in Agile Approach from Requirements


3 to Test
Related Work (i)
 T3 - Tool for Monitoring Agile Development

From : Proceedings of AGILE 2006 Conference (AGILE '06)

 T3
- a lightweight framework based on JUnit
- provides visibility into project progress
to support rapid development

Handling Non-functional Requirements in Agile Approach from Requirements


4 to Test
Related Work (ii)
 Trade-off Analysis in NFR
From : Non-functional Requirements in Software
Engineering by Lawrence Chung ... [et al.].

 1. trade-off
 usually refers to losing one quality or aspect of
something in return for gaining another quality or
aspect.

 2. Softgoal Interdependency Graph


 Records the developer's consideration of softgoals,
and shows the interdependencies among softgoals

Handling Non-functional Requirements in Agile Approach from Requirements


5 to Test
Main Idea (1/2)

 Solve the conflict between NFR


 Integrate NFR into agile method
 Extend functional testing to
performance testing (FR -> NFR)

Handling Non-functional Requirements in Agile Approach from Requirements


6 to Test
Main Idea (2/2)

Requirements Graphs Test Case Design

FR JUnit
AND/OR Graph

Softgoal
NFR Interdependency JUnitPerf
Graph (SIG)

Find conflicts

Handling Non-functional Requirements in Agile Approach from Requirements


7 to Test
AND/OR Graph

Handling Non-functional Requirements in Agile Approach from Requirements


8 to Test
Softgoal Interdependency Graph

From: Non-functional Requirements in Software Engineering, by Lawrence Chung et al.

Handling Non-functional Requirements in Agile Approach from Requirements


9 to Test
Why Requirements to Testing?
 Agile Method, i.e. Extreme
Programming emphasizes Test-
driven Development

 Agile Method :
Requirement testing coding

 Conventional Method :
Requirement coding testing
Handling Non-functional Requirements in Agile Approach from Requirements
10 to Test
JUnitPerf
 a collection of JUnit test decorators used
to measure the performance and
scalability of functionality contained
within existing JUnit tests.

 Test :
1. Time
2. Load
http://clarkware.com/software/JUnitPerf.html

Handling Non-functional Requirements in Agile Approach from Requirements


11 to Test
Using JUnitPerf to Test NFR

From: Non-functional Requirements in Software Engineering, by Lawrence Chung et al.

Handling Non-functional Requirements in Agile Approach from Requirements


12 to Test
What is Agile Method?
 a conceptual framework for software
engineering that promotes development
iterations throughout the life-cycle of the
project.

 emphasize face-to-face communication


over written documents.
From : http://en.wikipedia.org/wiki/Agile_software_development

 To adapt requirements change

Handling Non-functional Requirements in Agile Approach from Requirements


13 to Test
Agile Approach
 Record requirements using user
story(XP Approach)

 TDD's main objective is to aid


programmers and customers during
the development process with
unambiguous requirements.
http://davidhayden.com/blog/dave/archive/2004/06/15/309.aspx

Handling Non-functional Requirements in Agile Approach from Requirements


14 to Test
Expectation
 Include requirements traceability

Handling Non-functional Requirements in Agile Approach from Requirements


15 to Test
Summary
 Find out NFR conflicts in testing
 Traceability
 Improve software quality

Handling Non-functional Requirements in Agile Approach from Requirements


16 to Test
Reference
 Valerie Trapa and Santhpur Rao, "T3 - Tool for
Monitoring Agile Development," agile, pp. 243-
248,AGILE 2006 (AGILE'06),2006

 Michael J. Johnson, Chih-Wei Ho, E. Michael


Maximilien, and Laurie Williams, “Incorporating
Performance Testing in Test-Driven Development,”
IEEE Software, May/June 2007, pp. 67-73

 K. Cooper, S.P. Abraham, R.S. Unnithan, L. Chung,


and S. Courtney, “Integrating Visual Goal Models
into the Rational Unified Process,” Journal of Visual
Languages & Computing, 2006, pp. 551-583

Handling Non-functional Requirements in Agile Approach from Requirements


17 to Test

You might also like