test i agile projekter af gitte ottosen, sogeti
DESCRIPTION
Oplægget blev holdt ved et seminar i InfinIT-interessegruppen Softwaretest den 11. februar 2014. Læs mere om interessegruppen her: http://infinit.dk/dk/interessegrupper/softwaretest/softwaretest.htmTRANSCRIPT
© Sogeti
Sogeti Profile
• Sogeti is a leading provider of structured testing solutions
• Part of the Sogeti Group, which brings together more than 20,000 professionals in 15 countries and is present in over 100 locations in Europe, USA and India
• Creators of the globally recognized methodologies TMap NEXT ® and TPI NEXT®
• Well established cooperation with HP, IBM and Microsoft
© Sogeti
Agenda
1. The agile world
2. The proces – short presentation of SCRUM and Kanban
3. The test role in agile
4. Testing in agile
The Agile World
© Sogeti
One Way of Looking at Agile
© Sogeti
The Agile Manifest
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools Working software over comprehensive doc. Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Reference Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
© Sogeti
The Agile Perspective
OVER
• Individuals & interactions
• Working software
• Customer collaboration
• Responding to change
• Processes and tools
• Comprehensive documentation
• Contract negotiation
• Following a plan
© Sogeti
The Agile Principles
• Highest priority is to satisfy the customer through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
© Sogeti
The Agile Principles cont.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity--the art of maximizing the amount of work not done--is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Implementations
SCRUM and KANBAN
© Sogeti
Major Agile Methods
Scrum
• Iterative and incremental
• Focus on change
• Continous improvement
Kanban
• Similar to Scrum, but no iterations
• Focus on flow
• Minimizes work in progres
XP
• More technical than Scrum and Kanban
• Frequent "releases" in short development cycles
• Test Driven Development
© Sogeti
SCRUM in a Slide
Product Backlog Prioritized by customer
3-4 weeks
24 hours
Testet product ready for release
Sprint Backlog Broken down by SCRUM team.
© Sogeti
Key Roles and Responsibilities
• Owns the business case and there by the profitability of the product • Decides what features to implement • Prioritizes features according to the business case • Provides input to the planning and on a day to day basis • Accepts or rejects work results
Product Owner
• Helps the team do the best work it possibly can • Owns the process and organizes ceremonies • Removes any impediments to progress • Shields the team from external interferences • Works with Product owner on maintaining the Product Backlog
Scrum Master
• Cross-functional, seven plus/minus two members • Responsible for planning iterations and committing to assignments • Selects the best possible way to reach the iteration goal (with in project
guidelines) • Self organizing
Team Member
© Sogeti
Scrum Artifacts
• Features • Bugs • Technical work
Product Backlog
• Features • Stories • Tasks
Sprint Backlog
• Remaining work • Completed tasks • Ideal burndown
Burndown Charts
© Sogeti
A Couple of Important Words
• Definition of ready
• Definition of done
© Sogeti
SCRUM Board
© Sogeti
Kanban
Next (4)
Analysis (3)
Development (3)
Acceptance (2)
Production
Ongoing Done Ongoing Done Ongoing Done
Definition of Done: - nnn
Definition of Done: - nnn
Definition of Done: - nnn
Help work to
flow
© Sogeti
What Changes With Agile
•Faster delivery of business benefits
•Reduced risk through early delivery Feedback
•Higher quality of deliverables through continuous testing
Quality
•Continuous learning and improvement
•Iterative planning and communication Adaption
•Improved teamwork and morale through empowerment and self organisation Empowerment
•Business have control over priorities through continuous collaboration
•More accurate reporting through delivery of working product Visibility
© Sogeti
Traditional vs Agile Projects
Plan driven Agile
Change Manage & control it Change is inevitable – embrace and expect it
Planning/test design Comprehensive upfront plans/test design
Plan/design as you go
Documentation Can be heavy Minimised - Only as much as necessary
Handoffs Formal entry/exit criteria
Team Collaboration
Test Automation System level built by tool specialists, created after code is ‘done’
All levels, built by anyone, an integral part of the project
Source: Elizabeth Hendrickson
Test in an Agile Context
© Sogeti
The word on the web!
…We need to step away from the nagging position we have in a waterfall process and
become more active in the process of developing the software. Active does not mean
that we should be sitting down hammering in code, but we should
be involved from the beginning and be giving the developers feedback instantly on
how the new feature works,instead of complaining at the end when everything is
built….
…in agile testing you need to start to execute tests fast. Having working software
early is a key aspect, and this means you have to have testable software early…
…testing has to become a natural part of an agile project and not just a phase after
The developers have stopped coding and before customers receives their software.
It’s about reaching the same goal as a team, i.e. to deliver working software within
as short a space of time as possible…
….testing, quality is the team’s responsibility. The test analysts now have a different
role. In addition to testing, they have to coach business representatives and
developers.
© Sogeti
Role of the Tester – Challenges and Experiences
• Full Integration of testers into development team – Just another role in the team – Clarify roles (tester define) – collaborative – Co-locate – Consult on good testing – Early involvement – a very positive experience!
• Testing without detailed requirements – Communicate, communicate, communicate – Early test design - ‘Test Driven Development’? – Experienced based techniques -Exploratory testing
• Minimising test documentation – Lightweight, minimise unnecessary detail and duplication,
multipurpose, checklists, risk lists, Wikis,
• Tester skillset – May need to develop programming skills or – Developers automate the tests on testers behalf – Opportunities for testers – analysis, programming, etc.
© Sogeti
Role of Tester
• Involved continuously from start…e.g.
– Facilitate communication between the technical & business stakeholders
– Support early validation of requirements
– Help the Customer/business stakeholders define acceptance criteria
– Create automated acceptance tests
• Or define for developers to script
– Expand scope of ‘acceptance’ tests
– Advise the team about overall risks and trends
– Perform manual/exploratory tests
© Sogeti
Testing Within a Sprint
Automated acceptance/story based
tests
Automated Unit Tests
Manual Exploratory
Tests
Represent Executable requirements
Represent Executable design specifications
Provides supplementary feedback
© Sogeti
Automation
Unit Test
Unit Test
Acceptance Test (api)
GUI Test
Manual testing
Manual testing
© Sogeti
Context is Everything…
Configura
tion
Data
inte
gri
ty
File s
tructu
re
Perm
issio
ns
Component Integration Test
End to End Test
Unit Test
Accept Test (api lag)
GUI Test
Manuel test
Adapt the Test Pyramid to you needs
Source: Lisa Crispin
© Sogeti
Technology-facing
Business-facing
Support
s t
he t
eam
Critiq
ue p
roduct
Functional test Story test
Proto types Simulations
Q2
Unit test Component test
Q1
Explorative test Scenario test Usability test
UAT Pilot test
Q3
Non-functional (response,
load…) Security
Q4
Manual
Automatic
Manual& automatic
Tools
Source: Brian Marick
© Sogeti
Is It Enough? – Remember the Big Picture
Functional test Story test
Proto types Simulations
Unit test Component test
Explorative test Scenario test Usability test
UAT Pilot test
Non-functional (response,
load…) Security
Feature
Existing System
Feature
Think about the testing quarants
© Sogeti
Is It Enough? – Remember the Big Picture
Functional test Story test
Proto types Simulations
Unit test Component test
Explorative test Scenario test Usability test
UAT Pilot test
Non-functional (response,
load…) Security
Feature
Existing System
Feature
Think about the testing quarants
© Sogeti
Typical agile test/quality related challenges
Non-functional issues
Testing bottleneck
Integration Testing
Developer buy-in for shared
quality ownership
Distributed development
Role of the tester and test
manager
Quality of unit tests
Ineffective incremental test
strategy
Insufficient focus on working software –
stories not ‘done’
‘Agile’ without sufficient customer
involvement
Effectiveness of automation
strategy
Effectiveness of automated tests
Lack of technical expertise in test
team
Hybrid implementations
© Sogeti
Success Factors
Key Success Factors
Look at the Big Picture
Use the Whole Team
Approach
Automate Regression
Testing
Provide and Obtain Feedback
Build a Foundation
of Core Agile
Practices
Collaborate with
Customers
Adopt an Agile
Testing Mindset
Source: Janet Gregory, Dragonfire
© Sogeti
Common Pitfalls
• Modify the models to fit your context, but be aware of, what elements that are essential for the model.
• If you are implementing a model for the first time, then get help from someone who has tried it before.
• Don’t forget to have a structured approach to testing and QA – and do it up front.
• Test automation is essential – but should not replace manual testing.
© Sogeti
REMEMBER
There is no ”best practice” – only good practice in a certain context.
Thank you