Agile Techniques and Tools. White Paper

Size: px
Start display at page:

Download "Agile Techniques and Tools. White Paper"

Transcription

1 Agile Techniques and Tools White Paper

2 Agile Techniques and Tools Synopsis This section provides an overview of a number of techniques and tools that are commonly used by agile development teams. These tools and techniques are by no means restricted to agile development they can be used in other scenarios. Unit Testing & Test Driven Development (TDD) Unit testing very is important for agile projects probably more so than traditional waterfall projects. Complete (or close to complete) automated unit test coverage is required to ensure that delivered code is of a high quality. However unit testing alone is not sufficient to ensure a system meets requirements and quality targets integration and functional testing, and code reviews should also be used. Automated unit testing using tools such as NUnit is however recognized as an industry best practice. In an agile project automated unit testing is even more important as it is a pre-requisite to techniques such as refactoring. There are a number of ways that unit testing can be adopted: Test Last the code is written and then unit tests are written to confirm the behaviour Test First a set of tests are written / documented before a subset of the code is implemented. To get the tests to compile, stub / empty classes are written then the classes are implemented TDD again the tests are implemented first but the distinction is that the tests are used as a means of driving out the design of the system and are implemented iteratively. This is often referred to as Red-Green-Refactor Behaviour Driven Development (BDD) this is an evolution of TDD with even more of an emphasis on tests as specifications, matching tests to feature definitions There are a number of benefits to implementing unit tests before writing the code itself, either Test First or using TDD. In particular it ensures that unit tests are actually written. The danger with writing unit test after the code has been cut, is that time pressures will cause the developer to skip writing the tests or to not achieve full coverage. This is particularly the case if the developer leaves it too long and implements too much code before considering the unit testing. However with developer discipline and ensuring that only small chunks of code are written before considering unit tests this approach is still viable. A further benefit of implementing the unit tests first is that it encourages the developer to consider testability in the design, including techniques such as dependency injection that can make implementing unit tests much simpler. If the developer implements a large chunk of the system without considering unit tests when he finally puts his mind to unit testing it is likely to much more painful and unsuccessful. At this level (Test First / Test Last / naïve TDD) which technique is used is arguably just a technical issue for the development team / developer. It is not a central part of the design methodology. However if TDD is adopted fully in the spirit of the technique, then unit testing becomes a more core feature of the methodology. TDD advocates argue that TDD can be used to drive the design of the system as well as providing documentation for the system. At this level TDD becomes a core part of the methodology, rather than just a development technique. 2

3 It is this distinction that drove the development of BDD which is an evolution of TDD that takes this even further with an emphasis of linking tests to executable specifications. Both advanced TDD and BDD can be considered (mini-) methodologies, or at least can be used as the core component of a methodology. Taking aside TDD and BDD as components of a methodology, there are a number of factors which need to be considered when implementing unit tests: What level of unit tests should be implemented? Should tests be true unit tests at the class level or are higher level pseudo integration tests acceptable? Should tests be state-based or interaction based? When should each approach be adopted? How should techniques such as mocking frameworks be used? How should database interaction be handled in tests? Should the pure unit-tests attempt to use a fake implementation? Or should the unit tests be pseudo integration tests against the database? How are tests integrated into the build process? How are the UI components tested? Should patterns such as Model View Presenter (MVP) or Model View Controller (MVC) be used to increase test coverage? Should a tool such as Watin be used to automate tests through the UI? How should test coverage be measured? What are the targets for test coverage? Refactoring At some level refactoring is almost a pre-requisite for agile development. If a system is implemented in short iterations, with each iteration providing a minimal implementation to address the most critical features selected at the start of the implementation, then it has to be accepted that later iterations may require earlier work to be refactored / reworked. Otherwise the implementation can hardly be considered agile. Refactoring can be taken to encompass any re-working of previous implementations. However it is also used to refer to a lower level technique of refactoring at the microscopic level improving the implementation of one or more classes by applying standard re-factorings [Fowler] such as Extract Interface which are designed to address certain code-smells. There are a number of refactoring tools for.net that can be used to assist in refactoring including Resharper and RefactorPro in particular. Visual Studio.NET even includes a few basic refactorings out of the box. However refactoring as a whole is important for agile projects. In this context there are a number of issues to consider: It is important at a project level that the need for refactoring is acknowledged and indeed actively encouraged. If not then time-scales may force developers to skip refactoring (and the project will eventually suffer for it) As mentioned refactoring can be used to ensure that a clean design for the system emerges through development 3

4 Refactoring should be included in design reviews / code reviews reviews can determine targets for refactoring. This should be included explicitly in the process that is adopted time should set aside for it Refactoring can also be driven by TDD this is referred to as Red Green Refactor Repeat. Red = write a test that fails, Green = write the code to enable the test to pass, Refactor = refactor the code that has just been written. Wash and repeat! Continuous Integration Continuous Integration (CI) is also an important technique that should be considered as part of an agile project (or any other project for that matter). CI is a development practice where developers integrate their work on a frequent basis, at least daily, with the integration verified by an automated build process which normally also includes automated execution of the unit test suites to determine whether the build has been completed successfully. There are a number of CI tools available most notably the open source project CruiseControl.NET, but also a number of commercial tools such as FinalBuilder. These tools typically integrate with the source control system and can be setup so that a build is initiated whenever a check-in is completed by a developer. However it is also possible for the tools to be configured to perform builds on a schedule such a nightly. Code / Design Reviews The importance of code and design reviews cannot be underestimated, as they provide a perfect opportunity to tie many threads together. A design/code review should include: Review of the design of individual features Roles and responsibilities of classes Coding standards Unit testing techniques and coverage Determining any scope for refactoring Review of the build integration Domain Driven Design / Domain Models Domain Driven Design and the Domain Model pattern are important design techniques that are particularly suited to more complex applications. Both DDD and the Domain Model pattern focus on developing an implementation model that is close to the domain model of the end users, using the expressiveness of OO design to model the domain. In many ways both DDD and the Domain Model patterns are embodiments of classic OO techniques, though perhaps without some of the naivety of early OO modelling techniques. DDD also focuses on principles such as the Ubiquitous Language where the emphasis is on using a common language in all aspects of the project. The ubiquitous language is used in all communications, both with end users, between developers and project managers and also between 4

5 developers. Furthermore the terms of the ubiquitous language are reflected in the implementation model itself they are a core part of the model. DDD also focuses on model driven development though the emphasis is on expressing the model directly in the implementation. NOTE: Despite the similarity in terms this is not synonymous with Model Driven Architecture (which focuses on defining the application in UML and using this to generate the core of the implementation) and DDD does not imply development of a large UML model. DDD focuses on implementing a rich model in the code, with a close relationship to the domain model, providing the ability to refactor the model using techniques such as TDD. Furthermore, DDD recommends a number of useful design patterns including: Entity, Value Object, Aggregate, Repository, Factory, and Layered Architecture. Many of these are similar to standard patterns but are combined into a specific pattern language. Whilst overall the full DDD methodology is best suited to large applications with complex domains and largish teams, many of the concepts are useful to consider in the context of an agile project. In particular, the Ubiquitous Language is a strong concept that serves to promote clear communication and bring different views together. Expressing the business domain closely in the code, and refactoring as required, also serves to promote agility. The DDD / Domain Model approach is often approached more from a domain model first perspective and not from a Data Driven approach typically advocated by Microsoft s RAD tools (and other tools). In a data driven approach, the development starts by defining a database schema, which is then used to generate an entity model (or even to generate Typed Datasets). One of the advantages of the Data Driven approach is that it provides a lower barrier to getting early proto-types working. Defining a database model and then using this to build a few screens is a relatively easy way of getting a deliverable in the hands of the users. It is also typically an easier approach in terms of skill required by the developer. DB Consulting Thames Court 1 Victoria Street Windsor SL4 1YB T: +44 (0) E: nhill@dbgroup.co.uk 5

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010

ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010 ASSURING SOFTWARE QUALITY USING VISUAL STUDIO 2010 QA2010 3 Days INTRODUCTION This three-day, instructor-led course provides students with the knowledge and skills to prevent, detect, manage and avoid

More information

Application Development at Congruent

Application Development at Congruent Application Services are the flagship of Congruent's service offerings. Our expertise in application development is signified by its completeness and excellence in delivery. Congruent covers the complete

More information

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013 Description This three-day, instructor-led course provides students with the knowledge and skills to effectively use the Application

More information

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download. Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on

More information

Real Time Embedded Software Development Using Agile Technology An Experience Report

Real Time Embedded Software Development Using Agile Technology An Experience Report Real Time Embedded Software Development Using Agile Technology An Experience Report Vincent Rivas Joseph N Frisina BAE SYSTEMS Information and Electronic Systems Integration Inc CNIR Agile Development

More information

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Course Code: QAALMS13 Vendor: Microsoft Course Overview Duration: 3 RRP: 2,009 Application Lifecycle Management Using Visual Studio 2013 (SCRUM) Overview This three-day, instructor-led course provides

More information

Test Driven Development with Continuous Integration: A Literature Review

Test Driven Development with Continuous Integration: A Literature Review Test Driven Development with Continuous Integration: A Literature Review Sheikh Fahad Ahmad Deptt. of Computer Science & Engg. Mohd. Rizwan Beg Deptt. of Computer Science & Engg. Mohd. Haleem Deptt. of

More information

Test-Driven Development

Test-Driven Development Test-Driven Development An Introduction Mattias Ståhlberg mattias.stahlberg@enea.com Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.

More information

a new generation software test automation framework - CIVIM

a new generation software test automation framework - CIVIM a new generation software test automation framework - CIVIM Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the

More information

The Importance of Continuous Integration for Quality Assurance Teams

The Importance of Continuous Integration for Quality Assurance Teams The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Architecture Rules Enforcement and Governance Using Aspects

Architecture Rules Enforcement and Governance Using Aspects Architecture Rules Enforcement and Governance Using Aspects Srini Penchikala SATURN 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ) Detroit Java User Group Leader Working with

More information

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice In this Lecture you will Learn: Development Chapter 5C About the Unified Software Development How phases relate to workflows in an iterative life cycle An approach to system development Major activities

More information

Automating Your Build Process Using FinalBuilder. 2008 Craig Murphy

Automating Your Build Process Using FinalBuilder. 2008 Craig Murphy Automating Your Build Process Using FinalBuilder 2008 Craig Murphy Session Overview Automated Builds and Continuous Integration are facets of extreme Programming (XP) Very much part of the agile approach

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

Agile Development Overview

Agile Development Overview Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

ALM: Continuous Integration. José Almeida, Microsoft

ALM: Continuous Integration. José Almeida, Microsoft ALM: Continuous Integration José Almeida, Microsoft Agenda Issues Addressed Getting Started What is CI? CI Practices About Continuous Integration What is Continuous Integration? CI is the thread that ties

More information

Building a Flexible Software Factory Using Partial Domain Specific Models

Building a Flexible Software Factory Using Partial Domain Specific Models Building a Flexible Software Factory Using Partial Domain Specific Models Jos Warmer 1, Anneke Kleppe 2 3 1 Ordina SI&D, The Netherlands Jos.Warmer@ordina.nl 2 University Twente, Netherlands a.kleppe@utwente.nl

More information

Fail early, fail often, succeed sooner!

Fail early, fail often, succeed sooner! Fail early, fail often, succeed sooner! Contents Beyond testing Testing levels Testing techniques TDD = fail early Automate testing = fail often Tools for testing Acceptance tests Quality Erja Nikunen

More information

The concrete impacts of BCBS principles on data value chains

The concrete impacts of BCBS principles on data value chains The concrete impacts of BCBS principles on data value chains Jean-Pierre Maissin Partner Technology & Enterprise Application Deloitte Jean-Philippe Peters Partner Governance, Risk & Compliance Deloitte

More information

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

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice Life-Cycle Model Software Life-Cycle Models Xiaojun Qi It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and

More information

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net

Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net 1 Two-Way Data Binding with WinJS By Marcin Kawalerowicz and Craig Berntson, authors of Continuous Integration in.net One of the keys to improving applications and productivity is to automate some of the

More information

TDD, Refactoring and Dependency Injection: Agile s answer to Big Up-Front Architecture (BUFA)

TDD, Refactoring and Dependency Injection: Agile s answer to Big Up-Front Architecture (BUFA) TDD, Refactoring and Dependency Injection: Agile s answer to Big Up-Front Architecture (BUFA) May 5th, 2006, Agile India Conference Paul Hammant, ThoughtWorks, Inc www.paulhammant.com The problem? Previous-era

More information

Accelerating software testing effectiveness using Agile methodologies..

Accelerating software testing effectiveness using Agile methodologies.. Accelerating software testing effectiveness using Agile methodologies.. How can testing be completed faster, and more efficiently, within short iterations? The Problem It is a painful paradox that while

More information

Unit & Live Testing for SSIS

Unit & Live Testing for SSIS Unit & Live Testing for SSIS SSIS Tester is the framework that makes unit and integration testing of SSIS packages possible Test implementation follows common methodology as seen in MS Test or Nunit Use

More information

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008 Who wants to be involved in a BI project or program that is labeled slow or inflexible? While I don t believe

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

Applying agile development practices to rich internet applications

Applying agile development practices to rich internet applications Applying agile development practices to rich internet applications Proposal in detail: Agile practitioners today are comfortable with applying practices such as behaviour-driven development (BDD) and test-driven

More information

Agile Testing: The Agile Test Automation Pyramid

Agile Testing: The Agile Test Automation Pyramid Agile Testing: The Agile Test Pyramid In this post, or perhaps truly an article, I want to explore a common approach for implementing an effective strategy for your overall agile automation development.

More information

Rapid Software Development

Rapid Software Development Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery

More information

How To Be Successful At An Agile Software Engineering

How To Be Successful At An Agile Software Engineering "Agile Software Engineering" Overview for external offering of ASE ABAP Juergen Heymann, CPO Software Engineering There are many ingredients for successful software projects Experienced Developers Domain

More information

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks Designing a Home Alarm using the UML And implementing it using C++ and VxWorks M.W.Richardson I-Logix UK Ltd. markr@ilogix.com This article describes how a simple home alarm can be designed using the UML

More information

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design Session # 3 Contents Systems Analysis and Design 2 1 Tiers of Software Development 10/4/2013 Information system development project Realistic behavior 3 Information system development project System Development

More information

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Enabling Continuous Delivery by Leveraging the Deployment Pipeline Enabling Continuous Delivery by Leveraging the Deployment Pipeline Jason Carter Principal (972) 689-6402 Jason.carter@parivedasolutions.com Pariveda Solutions, Inc. Dallas,TX Table of Contents Matching

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

DevOps for the Mainframe

DevOps for the Mainframe DevOps for the Mainframe Rosalind Radcliffe IBM Distinguished Engineer, Enterprise Modernization Solution Architect rradclif@us.ibm.com 1 Please note IBM s statements regarding its plans, directions, and

More information

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

How to Build Successful DSL s. Jos Warmer Leendert Versluijs How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint

More information

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

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Iteration Advantages: bringing testing into the development life

More information

Advanced Software Engineering. Software Development Processes

Advanced Software Engineering. Software Development Processes Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Advanced Software Engineering Software Development Processes Prof. Agostino Poggi Software Development

More information

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

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006 Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme

More information

Difference Between Model-Driven and Traditional Iterative Software Development

Difference Between Model-Driven and Traditional Iterative Software Development Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other

More information

What is Agile Software Development?

What is Agile Software Development? What is Agile Software Development? Introduction What is agile software development, and what changes does it require of a tester? How does a tester become more effective in an agile environment? This

More information

RPM Software. Enterprise application development with Agile and.net. Robin Dymond at www.innovel.net Jade Ohlhauser 12/05/2003

RPM Software. Enterprise application development with Agile and.net. Robin Dymond at www.innovel.net Jade Ohlhauser 12/05/2003 RPM Software Enterprise application development with Agile and.net Robin Dymond at www.innovel.net Jade Ohlhauser RPM Software overview! Calgary based startup software company! Spun out of Bandwidthplace,

More information

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto 30 September 2014 WHITEPAPER Delivery Maturity Model Releasing software is often a long, difficult and risky process. Defects and integration issues pop-up at the very last moment and cause dissatisfaction

More information

Continuous Delivery - is it from the Devil? Tamas Csako

Continuous Delivery - is it from the Devil? Tamas Csako Continuous Delivery - is it from the Devil? Tamas Csako August 25, 2015 1 Focus on the customer Continuous Delivery 2 About Me Tamas Csako, Ph.D. Lead Software Testing Engineer Experience: 6+ years in

More information

(Unit) Testing ios Apps. Paweł Dudek

(Unit) Testing ios Apps. Paweł Dudek (Unit) Testing ios Apps Paweł Dudek 1 Why do we want to write tests? 2 Reasons for testing Striving for better software Leads to better, more modularized codebase Faster development cycles Being confident

More information

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

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

Continuous Integration (CI)

Continuous Integration (CI) Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

How To Write Unit Tests In A Continuous Integration

How To Write Unit Tests In A Continuous Integration Continuous Integration bjorn.boisschot@ctg.com 1. It works on my machine. Risk 1 Lack of Deployable Software Risk 2 Lack of project visibility 2011 CTG, Inc. 9 2011 CTG, Inc. 10 Risk 3 Low quality

More information

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

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

How To Develop An Application

How To Develop An Application What is Application Lifecycle Management? David Chappell Sponsored by Microsoft Corporation Copyright 2014 Chappell & Associates Defining application lifecycle management (ALM) isn t easy. Different people

More information

Agile Austin Dev SIG. June 2013 - Continuous Integration (CI)

Agile Austin Dev SIG. June 2013 - Continuous Integration (CI) Agile Austin Dev SIG June 2013 - Continuous Integration (CI) Special thanks to: Our hosts, BancVue, for their hospitality and meeting facilities. And to Agile Austin for providing lunch. * For more SIGs

More information

Web Application Development for the SOA Age Thinking in XML

Web Application Development for the SOA Age Thinking in XML Web Application Development for the SOA Age Thinking in XML Enterprise Web 2.0 >>> FAST White Paper August 2007 Abstract Whether you are building a complete SOA architecture or seeking to use SOA services

More information

Agile Testing. 2015 Intelliware Development Inc. BC Holmes @bcholmesdotorg

Agile Testing. 2015 Intelliware Development Inc. BC Holmes @bcholmesdotorg Agile Testing BC Holmes @bcholmesdotorg What you ll learn in this presentation: Why do we use Agile testing? What Agile testing isn t What Agile testing is: unit testing and test-driven development (TDD)

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

INTRODUCING VISUAL STUDIO 2010

INTRODUCING VISUAL STUDIO 2010 INTRODUCING VISUAL STUDIO 2010 DAVID CHAPPELL MAY 2010 SPONSORED BY MICROSOFT CONTENTS Tools and Modern Software Development... 3 Understanding Visual Studio 2010... 3 The Components of Visual Studio 2010...

More information

Chapter 13 Configuration Management

Chapter 13 Configuration Management Chapter 13 Configuration Management Using UML, Patterns, and Java Object-Oriented Software Engineering Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software

More information

Human Aspects of Software Engineering: The Case of Extreme Programming

Human Aspects of Software Engineering: The Case of Extreme Programming 1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel oritha@tx.technion.ac.il

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Live Specifications: From Requirements to Automated Tests and Back

Live Specifications: From Requirements to Automated Tests and Back Live Specifications: From Requirements to Automated Tests and Back Paul Gerrard paul@gerrardconsulting.com @paul_gerrard gerrardconsulting.com We believe there are better ways to build software Intelligent

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

Agile Web Application Testing

Agile Web Application Testing Agile Web Application Testing Technologies and Solutions V. Narayan Raman Tyto Software Goals Rapid feedback on the quality of software Problem in Web App Testing Many Browsers Many Operating Systems Browsers

More information

Essential Visual Studio Team System

Essential Visual Studio Team System Essential Visual Studio Team System Introduction This course helps software development teams successfully deliver complex software solutions with Microsoft Visual Studio Team System (VSTS). Discover how

More information

Software Project Models

Software Project Models INTERNATIONAL JOURNAL OF TECHNOLOGY ENHANCEMENTS AND EMERGING ENGINEERING RESEARCH, VOL 1, ISSUE 4 135 Software Project Models Abhimanyu Chopra, Abhinav Prashar, Chandresh Saini Email-abhinav.prashar@gmail.com,

More information

High-Level Architecture v1. Overall Comments about Requirements. Some criticisms. Requirements Concerns. CMS DB Terminology

High-Level Architecture v1. Overall Comments about Requirements. Some criticisms. Requirements Concerns. CMS DB Terminology Admin High-Level Architecture v1 Admin Web Access Control Configuration Access Control Customer DB Configuration Overall Comments about Requirements Uniformly nicely done Provided Clients with a number

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Agile Testing. What Students Learn

Agile Testing. What Students Learn Agile Testing Transition sound traditional test practices into an Agile development environment. By using a step-by-step approach, this course documents how to transition from traditional test practices

More information

The Role of Software Quality in Agile Software Development Methodologies Osama Sohaib and Khalid Khan Abstract he various agile software development methodologies have promoted since their inception and

More information

An Agile Project Management Model

An Agile Project Management Model Agile Project Management Jim Highsmith Chapter 5 An Agile Project Management Model We improve effectiveness and reliability through situationally specific strategies, processes, and practices. One of the

More information

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation

More information

Testing for the web and some other stuff

Testing for the web and some other stuff Testing for the web and some other stuff A BIT ABOUT ME Jonathan Director at Ocellics Software Solutions Studied at UCT and have a Honours in Information Systems Been working as a software dev for 8 years

More information

Software Development Services

Software Development Services Software Development Services G-Cloud IV Service Definition Lot 4 - SCS Contact us: Danielle Pratt Email: G-Cloud@esynergy-solutions.co.uk About is a leading provider of IT Consultancy Services operating

More information

Axe in the Agile World

Axe in the Agile World Axe in the Agile World WHITE PAPER Executive Summary This paper explains the way in which Axe (Odin s Enterprise Test Automation Platform) allows the automated testing to take place in a range of project

More information

SYLLABUS. Software Engineering

SYLLABUS. Software Engineering SYLLABUS 1. Information regarding the programme 1.1 Higher education institution Babeş Bolyai University 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Department Department of Computer Science

More information

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.) Continuous Integration in.net MARGIN KAWALEROWICZ CRAIG BERNTSON M MANNING Greenwich (74 w. long.) contents preface xv acknowledgments xvii about this book xix about the authors xxii about the cover illustration

More information

Increasing frequency of releases to every week down from quarterly major releases

Increasing frequency of releases to every week down from quarterly major releases Continuous Delivery with Go enables an 87% improvement in release time, 85% reduction in test time and ROI of 6x in one of Germany s largest consumer portals. Increasing frequency of releases to every

More information

Environment Modeling for Automated Testing of Cloud Applications

Environment Modeling for Automated Testing of Cloud Applications Environment Modeling for Automated Testing of Cloud Applications Linghao Zhang, Tao Xie, Nikolai Tillmann, Peli de Halleux, Xiaoxing Ma, Jian Lv {lzhang25, txie}@ncsu.edu, {nikolait, jhalleux}@microsoft.com,

More information

Getting started with API testing

Getting started with API testing Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...

More information

Software Construction

Software Construction Software Construction Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can explain the importance of continuous integration

More information

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind.

Software Process. Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind. Software Process Process: A sequence of activities, subject to constraints on resources, that produce an intended output of some kind. Any process has these characteristics: The process prescribes all

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

More information

The Test Automation Journey

The Test Automation Journey The Test Automation Journey Challenges and Limits 10th Workshop on System Testing and Validation Dr. György Réthy, Ericsson About myself Graduated as Ph.D. in 1991 Hungarian Telekom (now T-Com company)

More information

Software Development Life-cycle Hygiene with Message Broker in end-to-end SOA

Software Development Life-cycle Hygiene with Message Broker in end-to-end SOA Software Development Life-cycle Hygiene with Message Broker in end-to-end SOA Tips for building and maintaining a working SOA implementation in MB Stuart Smith - Consultant, Smart421 ssmith@smart421.com

More information

Plan-Driven Methodologies

Plan-Driven Methodologies Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a

More information

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management? 11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 11: Managing the Software Process Project management encompasses all the

More information

Basic Unified Process: A Process for Small and Agile Projects

Basic Unified Process: A Process for Small and Agile Projects Basic Unified Process: A Process for Small and Agile Projects Ricardo Balduino - Rational Unified Process Content Developer, IBM Introduction Small projects have different process needs than larger projects.

More information

MO. 27. Feb 2006, 17:00 UHR

MO. 27. Feb 2006, 17:00 UHR 061 MO. 27. Feb 2006, 17:00 UHR AUTOMATED FUNCTIONAL TESTING QUALITÄTSSICHERUNG IN DER SOFTWARE- ENTWICKLUNG: NUR ROUTINIERTES TESTING FÜHRT ZUM ZIEL WIRD PRÄSENTIERT VON Slide 0 Automated Functional Testing

More information

General Problem Solving Model. Software Development Methodology. Chapter 2A

General Problem Solving Model. Software Development Methodology. Chapter 2A General Problem Solving Model Software Development Methodology These focus on understanding what the problem is about Chapter 2A Concerned with understanding more about the nature of the problem and possible

More information

Test (Automation) for Mobile Phone Applications for StarEast 2011

Test (Automation) for Mobile Phone Applications for StarEast 2011 Test (Automation) for Mobile Phone Applications for StarEast 2011 Julian Harty 05 Apr 2011 1 Introductions Julian Harty Tester At Large, ebay Testing Mobile Applications @Google 2 ½ years from 2006 Ongoing

More information

Software Configuration Management Best Practices for Continuous Integration

Software Configuration Management Best Practices for Continuous Integration Software Configuration Management Best Practices for Continuous Integration As Agile software development methodologies become more common and mature, proven best practices in all phases of the software

More information

Service Description - Testing

Service Description - Testing Service Description - Testing An overview of the G-Cloud Service (functional, non functional) Lockheed Martin provides a full range of testing services to the public sector including the provision of:

More information

Chapter 17 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For

More information

Software Development Process

Software Development Process Software Development Process 台 北 科 技 大 學 資 訊 工 程 系 鄭 有 進 教 授 2005 copyright Y C Cheng Software development process Software development process addresses requirements, expectations and realities simultaneously

More information

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality

More information

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,

More information