Testing in Scrum

Book description

These days, more and more software development projects are being carried out using agile methods like Scrum. Agile software development promises higher software quality, a shorter time to market, and improved focus on customer needs.

However, the transition to working within an agile methodology is not easy. Familiar processes and procedures change drastically. Software testing and software quality assurance have a crucial role in ensuring that a software development team, department, or company successfully implements long-term agile development methods and benefits from this framework.

This book discusses agile methodology from the perspective of software testing and software quality assurance management. Software development managers, project managers, and quality assurance managers will obtain tips and tricks on how to organize testing and assure quality so that agile projects maintain their impact. Professional certified testers and software quality assurance experts will learn how to work successfully within agile software teams and how best to integrate their expertise.

Topics include:

  • Agile methodology and classic process models
  • How to plan an agile project
  • Unit tests and test first approach
  • Integration testing and continuous integration
  • System testing and test nonstop
  • Quality management and quality assurance
Also included are five case studies from the manufacturing, online-trade, and software industry as well as test exercises for self-assessment.

This book covers the new ISTQB Syllabus for Agile Software Testing and is a relevant resource for all students and trainees worldwide who plan to undertake this ISTQB certification.

Table of contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Acknowledgments
  5. Contents
  6. 1 Introduction
    1. 1.1 Target Audience
    2. 1.2 Book Contents
    3. 1.3 Case Study
    4. 1.4 Website
  7. 2 Agile vs. Traditional Approaches
    1. 2.1 Scrum
    2. 2.2 Kanban
    3. 2.3 Traditional Process Models
    4. 2.4 Comparing Process Models
  8. 3 Planning an Agile Project
    1. 3.1 Product Vision
    2. 3.2 Architecture Vision
    3. 3.3 Product Backlog
    4. 3.4 Story Map
    5. 3.5 Sprint Backlog
    6. 3.6 Team Charter
    7. 3.7 Test Planning and Test Management
      1. 3.7.1 Traditional Test Management
      2. 3.7.2 Test Management in Scrum
      3. 3.7.3 Test Levels in Scrum
    8. 3.8 Introducing Agile Planning
    9. 3.9 Questions and Exercises
      1. 3.9.1 Self-Assessment
      2. 3.9.2 Methods and Techniques
      3. 3.9.3 Other Exercises
  9. 4 Unit Testing and Test First
    1. 4.1 Unit Testing
      1. 4.1.1 Classes and Objects
      2. 4.1.2 Testing the Methods of a Class
      3. 4.1.3 Object State Testing
      4. 4.1.4 State-Based Coverage Criteria
      5. 4.1.5 Testing with Method Permutations
    2. 4.2 Test First
      1. 4.2.1 Test First and Scrum
      2. 4.2.2 Implementing Test First
      3. 4.2.3 Using Test First
    3. 4.3 Unit Testing Frameworks
    4. 4.4 Stubs, Mocks and Dummies
    5. 4.5 Unit Test Management
      1. 4.5.1 Unit Test Planning
    6. 4.6 Questions and Exercises
      1. 4.6.1 Self-Assessment
      2. 4.6.2 Methods and Techniques
      3. 4.6.3 Other Exercises
  10. 5 Integration Testing and Continuous Integration
    1. 5.1 Integration Testing
      1. 5.1.1 Typical Integration Failures and Their Causes
      2. 5.1.2 Designing Integration Test Cases
      3. 5.1.3 The Differences between Unit and Integration Tests
    2. 5.2 The Role Played by System Architecture
      1. 5.2.1 Dependencies and Interfaces
      2. 5.2.2 Testability and Testing Effort
    3. 5.3 Integration Levels
      1. 5.3.1 Class Integration
      2. 5.3.2 Subsystem Integration
      3. 5.3.3 System Integration
    4. 5.4 Traditional Integration Strategies
    5. 5.5 Continuous Integration
      1. 5.5.1 The CI Process
      2. 5.5.2 Implementing CI
      3. 5.5.3 Optimizing CI
    6. 5.6 Integration Test Management
    7. 5.7 Questions and Exercises
      1. 5.7.1 Self-Assessment
      2. 5.7.2 Methods and Techniques
      3. 5.7.3 Other Exercises
  11. 6 System Testing and Testing Nonstop
    1. 6.1 System Testing
    2. 6.2 The System Testing Environment
    3. 6.3 Manual System Testing
      1. 6.3.1 Exploratory Testing
      2. 6.3.2 Session-Based Testing
      3. 6.3.3 Acceptance Testing
    4. 6.4 Automated System Testing
      1. 6.4.1 Record/Playback Testing
      2. 6.4.2 Keyword-Driven Testing
      3. 6.4.3 Behavior-Driven Testing
    5. 6.5 Using Test First for System Testing
      1. 6.5.1 System Test Repository
      2. 6.5.2 Pair Programming
    6. 6.6 Non-functional Testing
    7. 6.7 Automated Acceptance Testing
    8. 6.8 When Should System Testing Take Place?
      1. 6.8.1 System Testing in a Final Sprint
      2. 6.8.2 System Testing at the End of a Sprint
      3. 6.8.3 System Testing Nonstop
    9. 6.9 The Release Sprint and Deployment
    10. 6.10 System Test Management
    11. 6.11 Questions and Exercises
      1. 6.11.1 Self-Assessment
      2. 6.11.2 Methods and Techniques
      3. 6.11.3 Other Exercises
  12. 7 Quality Management and Quality Assurance
    1. 7.1 Traditional Quality Management
      1. 7.1.1 The ISO 9000 Standard
      2. 7.1.2 The Principles of PDCA
      3. 7.1.3 Strengths and Weaknesses
      4. 7.1.4 Process Modeling and Software Development
    2. 7.2 Agile Quality Management
      1. 7.2.1 Simplifying QM Documentation
      2. 7.2.2 Changing QM Culture
      3. 7.2.3 Retrospectives and Process Improvement
    3. 7.3 Dealing with Compliance Requirements
      1. 7.3.1 Requirements of Software Development Processes
      2. 7.3.2 Traceability Requirements
      3. 7.3.3 Product Attribute Requirements
    4. 7.4 Traditional Quality Assurance
      1. 7.4.1 QA Tools
      2. 7.4.2 Organization
    5. 7.5 Agile Quality Assurance
      1. 7.5.1 Principles and Tools
      2. 7.5.2 Strengths and Weaknesses
    6. 7.6 Agile Testing
      1. 7.6.1 Critical Factors for Successful Agile Testing
      2. 7.6.2 Test Planning in Scrum
    7. 7.7 Skills, Training, Values
    8. 7.8 Questions and Exercises
      1. 7.8.1 Self-Assessment
      2. 7.8.2 Methods and Techniques
      3. 7.8.3 Other Exercises
  13. 8 Case Studies
    1. 8.1 Using Scrum to Develop Video and Audio Production Software
    2. 8.2 Nonstop System Testing—Using Scrum to Develop the TestBench Tool
    3. 8.3 Using Scrum to Develop an Online Store
    4. 8.4 Introducing Scrum at ImmobilienScout24
    5. 8.5 Scrum in a Medical Technology Environment
    6. 8.6 Testing in Scrum at GE Oil & Gas
  14. Appendix
    1. A Glossary
    2. B References
      1. B.1 Literature
      2. B.2 Websites
      3. B.3 Standards
  15. Index

Product information

  • Title: Testing in Scrum
  • Author(s): Tilo Linz
  • Release date: March 2014
  • Publisher(s): Rocky Nook
  • ISBN: 9781492001539