On agile performance requirements specification and testing

Underspecified performance requirements can cause performance issues in a software system. However, a complete, upfront analysis of a software system is difficult, and usually not desirable. We propose an evolutionary model for performance requirements specifications and corresponding validation testing. The principles of the model can be integrated into agile development methods. Using this approach, the performance requirements and test cases can be specified incrementally, without big upfront analysis. We also provide a post hoc examination of a development effort at IBM that had a high focus on performance requirements. The examination indicates that our evolutionary model can be used to specify performance requirements such that the level of detail is commensurate with the nature of the project. Additionally, the IBM experience indicates that test driven development-type validation testing corresponding to the model can be used to determine if performance objectives have been met

[1]  Ron Jeffries,et al.  Testing Extreme Programming , 2002 .

[2]  Kent L. Beck,et al.  Extreme programming explained - embrace change, Second Edition , 2005, The XP series.

[3]  Connie U. Smith,et al.  Software Performance Engineering: A Case Study Including Performance Comparison with Design Alternatives , 1993, IEEE Trans. Software Eng..

[4]  Paul Clements,et al.  Software Architecture: An Executive Overview , 1996 .

[5]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[6]  Martin Fowler,et al.  Planning Extreme Programming , 2000 .

[7]  John Mylopoulos,et al.  Non-Functional Requirements in Software Engineering , 2000, International Series in Software Engineering.

[8]  Peter Zadrozny,et al.  J2EE Performance Testing with BEA WebLogic Server , 2002 .

[9]  Elaine J. Weyuker,et al.  Experience with Performance Testing of Software Systems: Issues, an Approach, and Case Study , 2000, IEEE Trans. Software Eng..

[10]  Sheldon M. Ross Introduction to Probability Models. , 1995 .

[11]  Ian Sommerville,et al.  Software Engineering (7th Edition) , 2004 .

[12]  S. Mohan,et al.  Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software [Book Review] , 2003, IEEE Software.

[13]  Gregory Fox Performance engineering as a part of the development life cycle for large-scale software systems , 1989, ICSE '89.

[14]  Kent Beck,et al.  Lazy optimization: patterns for efficient Smalltalk programming , 1996 .

[15]  Elaine J. Weyuker,et al.  Software performance testing based on workload characterization , 2002, WOSP '02.

[16]  Laurie A. Williams,et al.  Test-driven development as a defect-reduction practice , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[17]  Paul Clements,et al.  Coming attractions in software architecture , 1997, Proceedings of 5th International Workshop on Parallel and Distributed Real-Time Systems and 3rd Workshop on Object-Oriented Real-Time Systems.

[18]  Connie U. Smith,et al.  Performance Engineering of Software Systems , 1990, SIGMETRICS Perform. Evaluation Rev..

[19]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[20]  Laurie A. Williams,et al.  Assessing test-driven development at IBM , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  Chris Ford,et al.  Non-Functional Requirements , 2007 .

[22]  Frank Maurer,et al.  Requirements engineering and agile software development , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[23]  Ye Wu,et al.  Testing and Quality Assurance for Component-Based Software , 2003 .