Testing in the Lifecycle



Similar documents
Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Software Quality and Agile Methods

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Software Engineering

Classical Software Life Cycle Models

A Review of Risk Management in Different Software Development Methodologies

Agile Software Development Methodologies and Its Quality Assurance

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Models of Software Development

Software Development Process

CSE 435 Software Engineering. Sept 16, 2015

SOFTWARE DEVELOPMENT METHODOLOGIES, TRENDS, AND IMPLICATIONS

Introduction to extreme Programming (XP)

Agile Processes and Methodologies: A Conceptual Study

Lecture 21 March 7, 2013

Software Engineering and Scientific Computing

Agile and Secure: Can We Be Both?

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Comparing Agile Software Processes Based on the Software Development Project Requirements

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Extreme Programming, an agile software development process

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

Software Development Life Cycle at SSPL. An Summary of Methodologies We Offer

Extreme Programming, an agile software development process

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Extreme Programming: Strengths and Weaknesses

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

COMP 354 Introduction to Software Engineering

Achieving ISO 9001 Certification for an XP Company

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

CS4507 Advanced Software Engineering

Agile with XP and Scrum

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

An Overview of Quality Assurance Practices in Agile Methodologies

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011,

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Quality Assurance Software Development Processes

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

Software Development Life Cycle (SDLC)

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Introduction. Introduction. Software Engineering. Software Engineering. Software Process. Department of Computer Science 1

Some Research on Agile Software Development

Agile Methodologies and Its Processes

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market

Introduction to Software Engineering: Project Management ( Highlights )

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Agile processes. Extreme Programming, an agile software development process

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

Human Aspects of Software Engineering: The Case of Extreme Programming

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

Introduction to Agile Software Development

Agile Testing and Extreme Programming

Agile Software Development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

An Assessment between Software Development Life Cycle Models of Software Engineering

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

Moonlighting Scrum: An Agile Method for Distributed Teams with Part-Time Developers Working during Non-Overlapping Hours

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Vragen. Software development model. Software development model. Software development model

A Comparison between Five Models of Software Engineering

The Software Life Cycle. CSE 308: Software Engineering

An Introduction to Extreme Programming

Lifecycle Models: Waterfall / Spiral / EVO

Don t forget the testers

Agile Offshore Outsourcing

Software Engineering and Scientific Computing

Agile Software Development


EPL603 Topics in Software Engineering

And the Models Are System/Software Development Life Cycle. Why Life Cycle Approach for Software?

Making Architectural Design Phase Obsolete TDD as a Design Method

Agile So)ware Development

Software Engineering

How To Understand The Software Process

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Software Development Life Cycle

A. Waterfall Model - Requirement Analysis. System & Software Design. Implementation & Unit Testing. Integration & System Testing.

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Outline. Definitions. Course schedule

Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

Agile Software Engineering Practice to Improve Project Success

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

ASSESSMENT OF SOFTWARE PROCESS MODELS

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Software development processes Life-cycle Models

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

A Comprehensive Study of Commonly Practiced Heavy & Light Weight Software Methodologies

A Comparison Between Five Models Of Software Engineering

Transcription:

Testing in the Lifecycle Stuart Anderson

Software was difficult to get right in 1982 1

A 1995 Department of Defence Software Study 2 It was still difficult in 1995

Success rate of government IT projects and programmes 3...and in 2007 Source: The Guardian, 18 May 2007 Figures from Department for Work and Pensions spokesman (63%) And Joe Harley, Chief Information Officer, DWP (30%)

And testing costs are significant 4

Slide 4: References Winokur, M.; Grinman, A.; Yosha, I.; Gallant, R.; Measuring the effectiveness of introducing new methods in the software development process, Euromicro Conference, 1998. Proceedings. 24th, vol.2, no., pp.800-807 vol.2, 25-27 Aug 1998. DOI: http://dx.doi.org/10.1109/eurmic.1998.708105

Cost of Testing vs Cost of Defects NIST report (2002): The Economic Impacts of Inadequate Infrastructure for Software Testing http://www.nist.gov/director/planning/upload/report02-3.pdf Notes that developers already spend approximately 80% of software development costs on identifying and correcting defects. Identifying and correcting defects not necessarily the same thing as the cost of testing, but still... 5

Costs of fixing defects found at different stages 6

Costs of Defects 7 Defects in the specification are even more costly to remove if we do not eliminate them early. Different software lifecycles distribute testing (verification building the thing right, and validation building the right thing ) differently. The different distributions of test activity can have an impact on where bugs are discovered. We consider three representative lifecycles and consider where testing is located in each: The V-model, Boehm s spiral model and extreme Programming (XP)

Recap: Waterfall model of software development 1. Requirements 2. Design 3. Implementation 4. Testing 5. Release and maintenance Sequential, no feedback Ironically its author, Royce, presented it as an example of a broken model 8

V-model 9

10 V-model Rationale This is a modified version of the waterfall model. Tests are created at the point the activity they validate is being carried out. So, for example, the acceptance test is created when the systems analysis is carried out. Failure to meet the test requires a further iteration beginning with the activity that has failed the validation. V-model is focused on creating tests in a structured manner. It is popular with developers of systems that are highly regulated because it is well suited to creating evidence that can be used to justify a system to a regulator.

Boehm s Spiral Model 11

Spiral Model Rationale 12 The spiral model is focused on controlling project risk and attempting formally to address project risk throughout the lifecycle. V&V activity is spread through the lifecycle with more explicit validation of the preliminary specification and the early stages of design. The goal here is to subject the early stages of design to V&V activity. At the early stages there may be no code available so we are working with models of the system and environment and verifying that the model exhibits the required behaviours.

13 XP principles extreme Programming advocates working directly with code almost all the time. The 12 principles of XP summarise the approach. Development is test-driven. Tests play a central role in refactoring activity. Agile development mantra: Embrace Change. 1. Test-driven development 2. The planning game 3. On-site customer 4. Pair programming 5. Continuous integration 6. Refactoring 7. Small releases 8. Simple design 9. System metaphor 10. Collective code ownership 11. Coding standards 12. 40-hour work week

extreme Programming (XP) 14 http://www.extremeprogramming.org/map/project.html

Summary 15 We have considered three different approaches to the lifecycle and have seen how testing fits in the lifecycles. Each approach will have a different testing cost and cost-profile through the lifecycle. Lifecycles are often dependent on the type of product and how well we understand project risk.

Required Readings 16 Textbook (Pezzè and Young): Chapter 4, Test and Analysis Activities within a Software Process Textbook (Pezzè and Young): Chapter 20, Planning and Monitoring the Process

Suggested Readings 17 Gregory M. Kapfhammer, Software Testing, In A. Tucker (Ed.), Second Edition, The Computer Science and Engineering Handbook, Chapter 105, CRC Press, 2004. Mary Jean Harrold. 2000. Testing: a roadmap. In Proceedings of the Conference on The Future of Software Engineering (ICSE 00). ACM, New York, NY, USA, 61-72. DOI: http://dx.doi.org/10.1145/336512.336532 Winokur, M.; Grinman, A.; Yosha, I.; Gallant, R.; Measuring the effectiveness of introducing new methods in the software development process, Euromicro Conference, 1998. Proceedings. 24th, vol.2, no., pp.800-807 vol.2, 25-27 Aug 1998. DOI: http://dx.doi.org/10.1109/eurmic.1998.708105