Agile ppt

Post on 22-Oct-2014

116 views 0 download

Tags:

Transcript of Agile ppt

Agile Testing Methodology

AGENDA

• AGILE• SCRUM • XTREME PROGRAMMING• AGILE TESTING

AGILE-In Briefby

Introducing Agile

• Software development Life cycle model that focus on customers.

• Iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.

Why Agile????

3 KEYSIncremental, Iterative, Adaptive

Incremental •Build a system gradually •Demonstrating progressIterative •Multiple releases or check points , closer to the target •Iterations include requirements, development and testing Adaptive •Goals change based on lessons from prior iterations, feedback and business opportunities

Process

Prioritize

• How people spend their time in Agile:– Analysis 16%– Design 17%– Code/Unit Test 34%– System/Integration Test 18%– Documentation 8%– Implementation/Install 7%

7 Principles

• Satisfy the customer through early and continuous delivery of valuable software.

• Working software is the primary measure of progress.

• Deliver working software frequently, from a couple of weeks to a couple of months.

• Welcome changing requirements, even late in development.

• The most efficient method of conveying information to and within a development team is face-to-face conversation.

• Business people and developers must work together daily throughout the project.

• Simplicity--the art of maximizing the amount of work not done--is essential.

Benefits• Empirical (relies on observation and experience)• Lightweight• Adaptive• Fast – but never hurried• Exposes wastefulness• Customer-centric• Pushes decision making to lower levels• Fosters trust, honesty and courage• Encourages self-organization

Scrum by,

JASS 2006 Agile Project Management - Scrum 12

Scrum - an agile process• SCRUM is an agile, lightweight

process for managing and controlling software and product development in rapidly changing environments.

– Team-based approach– Controls the chaos of conflicting

interest and needs– Improve communication and

maximize cooperation– A way to maximize productivity

JASS 2006 Agile Project Management - Scrum 13

History of Scrum• 1995:

– analysis of common software development processes not suitable for empirical, unpredictable and non-repeatable processes

– Design of a new method: Scrum by Jeff Sutherland & Ken Schwaber– Enhancement of Scrum by Mike Beedle & combination of Scrum with Extreme

Programming

• 1996:introduction of Scrum at OOPSLA conference

• 2001:publication “Agile Software Development with Scrum” byKen Schwaber & Mike Beedle

Successful appliance of Scrum in over 50 companiesFounders are members in the Agile Alliance

JASS 2006 Agile Project Management - Scrum 14

Functionality of Scrum

component View

3 Men Army

• Scrum Master -> a Project Manager or Team Leader and is responsible for enacting scrum values and practices

• Scrum Team -> 5-10 people who are Cross-functional, Working full-time and self-organizing

• Product Owner -> product manager works on what needs to be build and in what sequence this should be done

Process

• Sprint Planning Meeting

Meeting in the beginning of each Sprint between the stake holders where the goal is determined and the

project kickoff is done.

• SprintA month-long iteration,

during which is incremented a product functionality

Contd…

• Daily Scrum Meeting to track the progress of the Team

• Sprint Review MeetingBusiness functionality created during the Sprint is demoed

to the Product Owner

JASS 2006 Agile Project Management - Scrum 19

Scrum Artifacts

• Product Backlog

Requirements and outcomes for a system, expressed as a prioritized list of Backlog Items in Spread Sheets.

• Sprint BacklogDefine the work for a Sprint, created and updated every day by Team members

• Burn down ChartsDepicts the total Sprint Backlog hours remaining per dayShows the estimated amount of time to release

Sample Burn Down Chart

XTREME PROGRAMMING by,

XTREME PROGRAMMING

• lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly changing requirements.

• promises to reduce project risk, improve responsiveness to business changes, improve productivity throughout the life of a system, and add fun to building software in teams…

NEED

• Software project failures are legendary• Traditional software methodologies are

unable to:– Handle faster delivery cycles– Nor able to embrace frequent change– They can’t live in web world

4 principles

• Communication• Simplicity• Feedback• Courage

eXtreme programming - principles & practices

Basic Activities

• Coding• Testing• Listening• Designing

Release cycle

Break downstories to tasks

Select userstories for this

releasePlan release

Releasesoftware

Evaluatesystem

Develop/integrate/test software

Practices 1

Incremental planning Requirements are recorded on Story Cards and the Stories to beincluded in a release are determined by the time available andtheir relative priority. The developers break these Stories intodevelopment ÔTasksÕ.

Small Releases The minimal useful set of functionality that provides businessvalue is developed first. Releases of the system are frequent andincrementally add functionality to the first release.

Simple Design Enough design is carried out to meet the current requirementsand no more.

Test first development An automated unit test framework is used to write tests for a newpiece of functionality before that functionality itself isimplemented.

Refactoring All developers are expected to refactor the code continuously assoon as possible code improvements are found. This keeps thecode simple and maintainable.

Practices 2

Pair Programming Developers work in pairs, checking each otherÕs work andproviding the support to always do a good job.

Collective Ownership The pairs of developers work on all areas of the system, so thatno islands of expertise develop and all the developers own all thecode. Anyone can change anything.

Continuous Integration As soon as work on a task is complete it is integrated into thewhole system. After any such integration, all the unit tests in thesystem must pass.

Sustainable pace Large amounts of over-time are not considered acceptable as thenet effect is often to reduce code quality and medium termproductivity

On-site Customer A representative of the end-user of the system (the Customer)should be available full time for the use of the XP team. In anextreme programming process, the customer is a member of thedevelopment team and is responsible for bringing systemrequirements to the team for implementation.

Key Ideas

• Code in Pairs• Stay in Contact with the Customer• Create Tests before Coding then Test Heavily• Short Iterations• Keep it Simple• Don’t Anticipate: Code for Current Needs• Collective Ownership

Advantages

• Built-In Quality• Overall Simplicity• Programmer Power• Customer Power• Synergy Between Practices

Agile Testing by,

Agile Testing

• An iterative approach of software development involving all the stake holders right from the requirement phase of the development cycle.

• Test Driven Development – test cases are developed, and often automated, before the software is developed to run the test cases.

In+

1

Performance Tester

Test Manager

Security Tester

Marketing

$$

KeyStakeholders

I0

Business Rep / Customer

I1

Concept(Inception)

Deploy

FinalAcceptance

Test

DevelopmentManager

SeniorTester

TestToolsmith

Business Analyst

ProjectManager

SeniorDeveloper

DevelopmentTeam

Architect

SeniorDeveloper

Analysis

Develop& Unit Test

Design(TDD)

StoryAcceptance

Test

Integration /System Test

Showcase Tests

Business Rep / Customer

Test Team

RegressionTests

SeniorTester

$$

KeyStakeholders

IterationManager

3 Models

Business Analyst

Business Rep / Customer

ProjectManager

Performance Tester

Test Manager

SeniorDeveloper

Security Tester

Marketing

$$

KeyStakeholders

Concept

Analysis

Design

Develop

Test

Deploy

Business Rep / Customer

SeniorTester

Test Team

DevelopmentTeam

Architect

Business Analyst

Business Rep / Customer

ProjectManager

Performance Tester

Test Manager

SeniorDeveloper

Security Tester

Marketing

$$

KeyStakeholders

Business Rep / Customer

SeniorTester

DevelopmentTeam

Architect

Unit Test

Concept

Analysis

Develop

Deploy

AcceptanceTest

DesignIntegration/

SystemTest

DevelopmentManager

SeniorTester

Test Team

Test Team

Test Team

SeniorTester

TestToolsmith

Performance Tester

Test Manager

Security Tester

Marketing

$$

KeyStakeholders

Business Rep / Customer

Concept(Inception)

Deploy

FinalAcceptance

Test

DevelopmentManager

Test TeamSeniorTester

TestToolsmith

Business Analyst

Business Rep / Customer

ProjectManager

SeniorDeveloper

DevelopmentTeam

Architect

AcceptanceTest

Analysis

Develop& Unit Test

Design(TTD)

SeniorDeveloper

Slide 34 Slide 34

Testing Roles Traditional Roles• Test Manager• Senior Tester / Test Lead• Test Analyst• Technical Tester• Performance Tester• Test Toolsmith• Security Tester

Agile Roles

Test Manager

Senior Tester / Test Lead

Test Analyst

Technical Tester

Performance Tester

Test Toolsmith

Security Tester

Iteration Manager

Showcase Tester

Slide 35 Slide 35

Risks 1 Risk SolutionRequirements changing. Acceptance of change – that

is what Agile is about. Clear understanding of the features and stories by the entire team.

No documentation. Early team involvement in meetings, Wall ware – all can see it. “Just Enough” documentation.

Testers not involved early in iteration lack of knowledge of testing = using Exploratory Testing.

Automated unit tests. Skilled testers using Exploratory Testing.

Slide 36 Slide 36

Risks 2 Risk SolutionLittle or no unit testing. Education of developers,

experience and team maturity.

REGRESSION! More unit testing – with tester involvement, more points allocated to testing. Provision for Smoke Tests

No clear definition of “Done” – Burn charts not accurate.

Regular involvement of and reporting to the Business.

Slide 37 Slide 37

Benefits

• Early delivery of working software• Quality is built into the products – everyone

involved in quality• Defect prevention (stopping them from

getting beyond the requirements)• Clear acceptance criteria• Early involvement of all key players• No surprises to the business on delivery