Testing in the Lifecycle

Similar documents
Requirements Gathering using Object- Oriented Models

Code Complete 2: Realities of Modern Software Construction

Introduction to Software Requirements and Design

Code Complete 2: A Decade of Advances in Software Construction Construx Software Builders, Inc. All Rights Reserved.

IS 525 Chapter 2. Methodology Dr. Nesrine Zemirli

UNIT VIII SYSTEM METHODOLOGY 2014

A FRAMEWORK FOR PERFORMING V&V WITHIN REUSE-BASED SOFTWARE ENGINEERING

Object-oriented Analysis and Design

Software Life Cycle Models

Object-Oriented Design

Software Development Lifecycle

Third Year (PR3) Projects

About Software Engineering.

UX CAPSTONE USER EXPERIENCE + DEVELOPMENT PROCESS

Radically better software development with Extreme Programming. Carl Erickson Atomic Object LLC October 2002

SWEN 256 Software Process & Project Management

Agile Non-Agile. Previously on Software Engineering

Course Introduction and Overview of Software Engineering. Richard N. Taylor Informatics 211 Fall 2007

1 Introduction and Roadmap: History and Challenges of Software Evolution

Software LEIC/LETI. Lecture 21

Distributed Systems Programming (F21DS1) Formal Methods for Distributed Systems

UNIT-III LIFE-CYCLE PHASES

PROJECT MANAGEMENT. CSC404 Tutorial Slides

Computer Science: Disciplines. What is Software Engineering and why does it matter? Software Disasters

Systems Engineering Overview. Axel Claudio Alex Gonzalez

STUDY ON FIREWALL APPROACH FOR THE REGRESSION TESTING OF OBJECT-ORIENTED SOFTWARE

Chapter 8: Verification & Validation

Computer Science: Who Cares? Computer Science: It Matters. Computer Science: Disciplines

An introduction to software development. Dr. C. Constantinides, P.Eng. Computer Science and Software Engineering Concordia University

Introduction. How are games similar/different from other software engineering projects? Common software engineering models & game development

THE APPLICATION OF SYSTEMS ENGINEERING ON THE BUILDING DESIGN PROCESS

Challenges in Software Evolution

Introduction to Software Engineering

Systems Engineering Prof. Deepu Philip Department of Industrial & Management Engineering Indian Institute of Technology Kanpur

For those who were Agile before Agile was cool

We saw some of this before. Session 15: Life-Cycle frameworks and more

Validation and Verification of Field Programmable Gate Array based systems

UNIT IV SOFTWARE PROCESSES & TESTING SOFTWARE PROCESS - DEFINITION AND IMPLEMENTATION

Discussing ICT4D and Development. Matt Haikin, May ,853 words

THR%%A%P COM 1?4w XFROX. Agenda

Unit 5: Unified Software Development Process. 3C05: Unified Software Development Process USDP. USDP for your project. Iteration Workflows.

Course Overview; Development Process

Avoiding the Problems

M&S Requirements and VV&A: What s the Relationship?

Course Overview; Development Process

Information Systemss and Software Engineering. Computer Science & Information Technology (CS)

For those who were Agile before Agile was cool: A tutorial. James O. Bjørnvig Coplien Nordija A/S

Introduction to adoption of lean canvas in software test architecture design

A Spiral Development Model for an Advanced Traffic Management System (ATMS) Architecture Based on Prototype

OSS for Governance and Public Administration : Strategic role of Universities

Software-Intensive Systems Producibility

New Idea In Waterfall Model For Real Time Software Development

ATHABASCA UNIVERSITY CAN TEST DRIVEN DEVELOPMENT IMPROVE POKER ROBOT PERFORMANCE? EDWARD SAN PEDRO. An essay submitted in partial fulfillment

Course Overview; Development Process

Component Based Mechatronics Modelling Methodology

Service-Oriented Software Engineering - SOSE (Academic Year 2015/2016)

Systems Engineering Process

CMSC434. Introduction to Human-Computer Interaction. Week 02 Lecture 02 Feb 2, 2016 Design Thinking and Design Process. Jon

Course Overview; Development Process

CC532 Collaborative System Design

Vision. Jimmy Janlén, 2015, Crisp Jimmy Janlén, 2015, Crisp Jimmy Janlén, 2015, Crisp. Alignment

Foundations of Interactive Game Design

All that begins... peace be upon you

By the end of this chapter, you should: Understand what is meant by engineering design. Understand the phases of the engineering design process.

IBM Software Group. Mastering Requirements Management with Use Cases Module 2: Introduction to RMUC

Contents. The software development problem The XP solution The JUnit testing framework. 2002, W. Pree 2

Driving Efficiencies into the Software Life Cycle for Army Systems

! Consideration of design trade-offs, esp. resource usage! Minimize negative impacts (e.g. environmental and social cost)

Domain Understanding and Requirements Elicitation

The following slides will give you a short introduction to Research in Business Informatics.

VLSI testing Introduction

Lessons Learned in Integrating Risk Management and Process Validation

Vision. Jimmy Janlén, 2015, Crisp Jimmy Janlén, 2015, Crisp Jimmy Janlén, 2015, Crisp. Alignment

A New - Knot Model for Component Based Software Development

CONCURRENT ENGINEERING

Chapter 1 Introduction to VLSI Testing

Agile Engineering of Scalable Enterprise-Level Capabilities

Using VR and simulation to enable agile processes for safety-critical environments

Application of optical system simulation software in a fiber optic telecommunications program

Lecture 9: Estimation and Prioritization" Project Planning"

Information and Communications Technology and Environmental Regulation: Critical Perspectives

Principled Construction of Software Safety Cases

The History of Design Controls

Indiana K-12 Computer Science Standards

Towards an MDA-based development methodology 1

10. Personas. Plan for ISSD Lecture #10. 1 October Bob Glushko. Roadmap to the lectures. Stakeholders, users, and personas

Approved Trainer Program Application

Formal Hardware Verification: Theory Meets Practice

NRC Workshop on NASA Technologies

SYSTEMS ENGINEERING MANAGEMENT IN DOD ACQUISITION

EECS 427 Lecture 21: Design for Test (DFT) Reminders

Typical Project Life Cycle

ARTES Competitiveness & Growth Full Proposal. Requirements for the Content of the Technical Proposal. Part 3B Product Development Plan

Industrial Experience with SPARK. Praxis Critical Systems

Assurance Cases The Home for Verification*

Module 5: Social and Environmental Issues

Offshore Development Culture and User Experience

MEMBER/CUSTOMER SHOWCASE. Granta Design s CRM Journey. Presented by: Craig Seymour, Cloud Thing & Pippa Newby, Granta Design

Agile Software Development

Systems thinking & systems engineering in rail

Transcription:

Testing in the Lifecycle Conrad Hughes School of Informatics Slides thanks to Stuart Anderson 19 January 2010 Software Testing: Lecture 3 1

Software was difficult to get right in 1982 2

It was still difficult in 1995 3

and in 2007 Success rate of government IT projects and programmes 63% 30% 7% On budget, on time, on spec Anything in between Never saw the light of day Source: The Guardian, 18 May 2007 Figures from Department for Work and Pensions spokesman (63%) And Joe Harley, Chief Information Officer, DWP (30%) 4

And testing costs are significant [Gallant, 1999] (and Winokur, 1998?) 5

Cost of Testing vs Cost of Defects NIST report (2002): The Economic Impacts of Inadequate Infrastructure for Software Testing 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 6

Costs of fixing defects found at different stages 7

Costs of Defects Defects in the specification are even more costly to remove if we don t 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 extreme Programming ( XP ) 8

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 9

V-model less detail Requirements Analysis System Design is validated by System Testing Acceptance Testing Object Design Unit Testing more detail Coding build system validate system 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. 11

Boehm s Spiral Model DETERMINE GOALS, ALTERNATIVES, CONSTRAINTS EVALUATE ALTERNATIVES AND RISKS Constraints 4 Risk analysis 4 Constraints 1 Budget 1 Alternatives 1 Requirements, life-cycle plan Risk analysis 3 Constraints 3 Constraints 2 Alternatives 4 Budget 4 Budget 3 Budget 2 start Risk analysis 2 Alternatives 3 Alternatives 2 Risk analysis 1 Proto - Prototype 1 Concept of operation Proto - Proto - type 2 type 3 type 4 Software design Software requirements Validated requirements Validated, verified design Development plan Integration and test plan Implementation plan Acceptance test System test Unit test Code Detailed design PLAN DEVELOP AND TEST 12

Spiral Model Rationale 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 14

Extreme programming (XP) [Kent Beck 1999] http://www.extremeprogramming.org/map/project.html 15

Summary 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 costprofile through the lifecycle. Lifecycles are often dependent on the type of product and how well we understand project risk. 16