Test i agile projekter af Gitte Ottosen, Sogeti


Published on

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.htm

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Test i agile projekter af Gitte Ottosen, Sogeti

  1. 1. Testing and Agile Gitte Ottosen Gitte.ottosen@sogeti.dk @godtesen
  2. 2. 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
  3. 3. Agenda 1. 2. 3. 4. © Sogeti The agile world The proces – short presentation of SCRUM and Kanban The test role in agile Testing in agile
  4. 4. The Agile World
  5. 5. One Way of Looking at Agile  © Sogeti
  6. 6. 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 Working software Customer collaboration Responding to change over over over over processes and tools comprehensive doc. contract negotiation 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
  7. 7. The Agile Perspective • Processes and tools • Comprehensive documentation • Contract negotiation • Individuals & interactions • Working software • Customer collaboration • Responding to change © Sogeti • Following a plan OVER
  8. 8. 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-toface conversation. © Sogeti
  9. 9. 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. © Sogeti
  10. 10. Implementations SCRUM and KANBAN
  11. 11. 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
  12. 12. SCRUM in a Slide 24 hours 3-4 weeks Product Backlog Prioritized by customer © Sogeti Sprint Backlog Broken down by SCRUM team. Testet product ready for release
  13. 13. Key Roles and Responsibilities Product Owner • • • • • 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 Scrum Master • • • • • 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 Team Member • • • • 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 © Sogeti
  14. 14. Scrum Artifacts Product Backlog • • • Features Bugs Technical work Sprint Backlog • • • Features Stories Tasks Burndown Charts • • • Remaining work Completed tasks Ideal burndown © Sogeti
  15. 15. A Couple of Important Words • Definition of ready • Definition of done © Sogeti
  16. 16. SCRUM Board © Sogeti
  17. 17. Help work to flow Kanban Next (4) Analysis (3) Ongoing Development (3) Done Definition of Done: - nnn © Sogeti Acceptance (2) Ongoing Ongoing Done Definition of Done: - nnn Done Definition of Done: - nnn Production
  18. 18. What Changes With Agile Feedback Quality Adaption Empowerment Visibility © Sogeti •Faster delivery of business benefits •Reduced risk through early delivery •Higher quality of deliverables through continuous testing •Continuous learning and improvement •Iterative planning and communication •Improved teamwork and morale through empowerment and self organisation •Business have control over priorities through continuous collaboration •More accurate reporting through delivery of working product
  19. 19. 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 © Sogeti
  20. 20. Test in an Agile Context
  21. 21. 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
  22. 22. 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 • Minimising test documentation • Tester skillset – Communicate, communicate, communicate – Early test design - ‘Test Driven Development’? – Experienced based techniques -Exploratory testing © Sogeti – Lightweight, minimise unnecessary detail and duplication, multipurpose, checklists, risk lists, Wikis, – May need to develop programming skills or – Developers automate the tests on testers behalf – Opportunities for testers – analysis, programming, etc.
  23. 23. 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
  24. 24. Testing Within a Sprint Automated acceptance/ story based tests Manual Exploratory Tests Represent Executable requirements © Sogeti Automated Unit Tests Represent Executable design specifications Provides supplementary feedback
  25. 25. Automation Manual testing GUI Test Manual testing Acceptance Test (api) Unit Test © Sogeti Unit Test
  26. 26. Context is Everything… Manue l test GUI Test Adapt the Test Pyramid to you needs Accept Test (api lag) End to End Test Unit Test Configuration File structure Permissions Data integrity Component Integration Test Source: Lisa Crispin © Sogeti
  27. 27. Automatic Business-facing Explorative test Scenario test Usability test UAT Pilot test Q2 Q3 Functional test Story test Proto types Simulations Q1 Q4 Unit test Component test Non-functional (response, load…) Security Technology-facing Manual Critique product Supports the team Manual& automatic Tools Source: Brian Marick © Sogeti
  28. 28. Is It Enough? – Remember the Big Picture Existing System Feature Feature Think about the testing quarants Unit test Component test © Sogeti Functional test Story test Proto types Simulations Explorative test Scenario test Usability test UAT Pilot test Non-functional (response, load…) Security
  29. 29. Is It Enough? – Remember the Big Picture Existing System Feature Feature Think about the testing quarants Unit test Component test © Sogeti Functional test Story test Proto types Simulations Explorative test Scenario test Usability test UAT Pilot test Non-functional (response, load…) Security
  30. 30. Typical agile test/quality related challenges Non-functional issues 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 © Sogeti Testing bottleneck Hybrid implementations
  31. 31. Success Factors Look at the Big Picture Adopt an Agile Testing Mindset Collaborate with Customers Use the Whole Team Approach Key Success Factors Build a Foundation of Core Agile Practices Automate Regression Testing Provide and Obtain Feedback Source: Janet Gregory, Dragonfire © Sogeti
  32. 32. 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
  33. 33. REMEMBER There is no ”best practice” – only good practice in a certain context. Thank you © Sogeti