Download - 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