Купить бумажную книгу и читать
По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".
Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.
Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.
Название: Agile Testing A Practical Guide for Testers and Agile Teams
Год: 2009
Автор: Lisa Crispin, Janet Gregory
Издательство: Addison-Wesley
ISBN: 9780321534460
Язык: английский
Формат: PDF
Количество страниц: 533
Размер: 2 МБ
Testing is a key component of agile development. The widespread adoption of agile methods has brought the need for effective testing into the limelight, and agile projects have transformed the role of testers. Much of a tester’s function, however, remains largely misunderstood. What is the true role of a tester? Do agile teams actually need members with QA backgrounds? What does it really mean to be an “agile tester?”
Two of the industry’s most experienced agile testing practitioners and consultants, Lisa Crispin and Janet Gregory, have teamed up to bring you the definitive answers to these questions and many others. In Agile Testing, Crispin and Gregory define agile testing and illustrate the tester’s role with examples from real agile teams. They teach you how to use the agile testing quadrants to identify what testing is needed, who should do it, and what tools might help. The book chronicles an agile software development iteration from the viewpoint of a tester and explains the seven key success factors of agile testing.
Readers will come away from this book understanding
* How to get testers engaged in agile development
* Where testers and QA managers fit on an agile team
* What to look for when hiring an agile tester
* How to transition from a traditional cycle to agile development
* How to complete testing activities in short iterations
* How to use tests to successfully guide development
* How to overcome barriers to test automation
This book is a must for agile testers, agile teams, their managers, and their customers.
Chapter 1 What Is Agile Testing, Anyway? 3
Agile Values 3
What Do We Mean by “Agile Testing”? 4
A Little Context for Roles and Activities on an Agile Team 7
Customer Team 7
Developer Team 7
Interaction between Customer and Developer Teams 8
How Is Agile Testing Different? 9
Working on Traditional Teams 9
Working on Agile Teams 10
Traditional vs. Agile Testing 12
Whole-Team Approach 15
Summary 17
Chapter 2 Ten Principles for Agile Testers 19
What’s an Agile Tester? 19
The Agile Testing Mind-Set 20
x CONTENTS
Applying Agile Principles and Values 21
Provide Continuous Feedback 22
Deliver Value to the Customer 22
Enable Face-to-Face Communication 23
Have Courage 25
Keep It Simple 26
Practice Continuous Improvement 27
Respond to Change 28
Self-Organize 29
Focus on People 30
Enjoy 31
Adding Value 31
Summary 33
Part II Organizational Challenges 35
Chapter 3 Cultural Challenges 37
Organizational Culture 37
Quality Philosophy 38
Sustainable Pace 40
Customer Relationships 41
Organization Size 42
Empower Your Team 44
Barriers to Successful Agile Adoption by Test/QA Teams 44
Loss of Identity 44
Additional Roles 45
Lack of Training 45
Not Understanding Agile Concepts 45
Past Experience/Attitude 48
Cultural Differences among Roles 48
Introducing Change 49
Talk about Fears 49
Give Team Ownership 50
Celebrate Success 50
Management Expectations 52
Cultural Changes for Managers 52
Speaking the Manager’s Language 55
Change Doesn’t Come Easy 56
Be Patient 56
Let Them Feel Pain 56
CONTENTS xi
Build Your Credibility 57
Work On Your Own Professional Development 57
Beware the Quality Police Mentality 57
Vote with Your Feet 57
Summary 58
Chapter 4 Team Logistics 59
Team Structure 59
Independent QA Teams 60
Integration of Testers into an Agile Project 61
Agile Project Teams 64
Physical Logistics 65
Resources 66
Tester-Developer Ratio 66
Hiring an Agile Tester 67
Building a Team 69
Self-Organizing Team 69
Involving Other Teams 69
Every Team Member Has Equal Value 70
Performance and Rewards 70
What Can You Do? 71
Summary 71
Chapter 5 Transitioning Typical Processes 73
Seeking Lightweight Processes 73
Metrics 74
Lean Measurements 74
Why We Need Metrics 75
What Not to Do with Metrics 77
Communicating Metrics 77
Metrics ROI 78
Defect Tracking 79
Why Should We Use a Defect Tracking System (DTS)? 80
Why Shouldn’t We Use a DTS? 82
Defect Tracking Tools 83
Keep Your Focus 85
Test Planning 86
Test Strategy vs. Test Planning 86
Traceability 88
xii CONTENTS
Existing Processes and Models 88
Audits 89
Frameworks, Models, and Standards 90
Summary 93
Part III The Agile Testing Quadrants 95
Chapter 6 The Purpose of Testing 97
The Agile Testing Quadrants 97
Tests that Support the Team 98
Tests that Critique the Product 101
Knowing When a Story Is Done 104
Shared Responsibility 105
Managing Technical Debt 106
Testing in Context 106
Summary 108
Chapter 7 Technology-Facing Tests that Support the Team 109
An Agile Testing Foundation 109
The Purpose of Quadrant 1 Tests 110
Supporting Infrastructure 111
Why Write and Execute These Tests? 112
Lets Us Go Faster and Do More 112
Making Testers’ Jobs Easier 114
Designing with Testing in Mind 115
Timely Feedback 118
Where Do Technology-Facing Tests Stop? 119
What If the Team Doesn’t Do These Tests? 121
What Can Testers Do? 121
What Can Managers Do? 122
It’s a Team Problem 123
Toolkit 123
Source Code Control 123
IDEs 124
Build Tools 126
Build Automation Tools 126
Unit Test Tools 126
Summary 127
CONTENTS xiii
Chapter 8 Business-Facing Tests that Support the Team 129
Driving Development with Business-Facing Tests 129
The Requirements Quandary 132
Common Language 134
Eliciting Requirements 135
Advance Clarity 140
Conditions of Satisfaction 142
Ripple Effects 143
Thin Slices, Small Chunks 144
How Do We Know We’re Done? 146
Tests Mitigate Risk 147
Testability and Automation 149
Summary 150
Chapter 9 Toolkit for Business-Facing Tests that
Support the Team 153
Business-Facing Test Tool Strategy 153
Tools to Elicit Examples and Requirements 155
Checklists 156
Mind Maps 156
Spreadsheets 159
Mock-Ups 160
Flow Diagrams 160
Software-Based Tools 163
Tools for Automating Tests Based on Examples 164
Tools to Test below the GUI and API Level 165
Tools for Testing through the GUI 170
Strategies for Writing Tests 177
Build Tests Incrementally 178
Keep the Tests Passing 179
Use Appropriate Test Design Patterns 179
Keyword and Data-Driven Tests 182
Testability 183
Code Design and Test Design 184
Automated vs. Manual Quadrant 2 Tests 185
Test Management 186
Summary 186
Chapter 10 Business-Facing Tests that Critique the Product 189
Introduction to Quadrant 3 190
Demonstrations 191
xiv CONTENTS
Scenario Testing 192
Exploratory Testing 195
Session-Based Testing 200
Automation and Exploratory Testing 201
An Exploratory Tester 201
Usability Testing 202
User Needs and Persona Testing 202
Navigation 204
Check Out the Competition 204
Behind the GUI 204
API Testing 205
Web Services 207
Testing Documents and Documentation 207
User Documentation 207
Reports 208
Tools to Assist with Exploratory Testing 210
Test Setup 211
Test Data Generation 212
Monitoring Tools 212
Simulators 213
Emulators 213
Summary 214
Chapter 11 Critiquing the Product Using Technology-
Facing Tests 217
Introduction to Quadrant 4 217
Who Does It? 220
When Do You Do It? 222
“ility” Testing 223
Security 223
Maintainability 227
Interoperability 228
Compatibility 229
Reliability 230
Installability 231
“ility” Summary 232
Performance, Load, Stress, and Scalability Testing 233
Scalability 233
Performance and Load Testing 234
Performance and Load-Testing Tools 234
Baseline 235
CONTENTS xv
Test Environments 237
Memory Management 237
Summary 238
Chapter 12 Summary of Testing Quadrants 241
Review of the Testing Quadrants 241
A System Test Example 242
The Application 242
The Team and the Process 243
Tests Driving Development 244
Unit Tests 244
Acceptance Tests 245
Automation 245
The Automated Functional Test Structure 245
Web Services 247
Embedded Testing 248
Critiquing the Product with Business-Facing Tests 248
Exploratory Testing 248
Testing Data Feeds 249
The End-to-End Tests 249
User Acceptance Testing 250
Reliability 250
Documentation 251
Documenting the Test Code 251
Reporting the Test Results 251
Using the Agile Testing Quadrants 252
Summary 253
Part IV Automation 255
Chapter 13 Why We Want to Automate Tests and What
Holds Us Back 257
Why Automate? 258
Manual Testing Takes Too Long 258
Manual Processes Are Error Prone 259
Automation Frees People to Do Their Best Work 259
Automated Regression Tests Provide a Safety Net 261
Automated Tests Give Feedback, Early and Often 262
Tests and Examples that Drive Coding Can Do More 262
xvi CONTENTS
Tests Are Great Documentation 263
ROI and Payback 264
Barriers to Automation—Things that Get in the Way 264
Bret’s List 264
Our List 265
Programmers’ Attitude—“Why Automate?” 265
The “Hump of Pain” (The Learning Curve) 266
Initial Investment 267
Code that’s Always in Flux 269
Legacy Code 269
Fear 269
Old Habits 270
Can We Overcome These Barriers? 270
Summary 271
Chapter 14 An Agile Test Automation Strategy 273
An Agile Approach to Test Automation 274
Automation Test Categories 274
Test Automation Pyramid 276
What Can We Automate? 279
Continuous Integration, Builds, and Deploys 280
Unit and Component Tests 282
API or Web Services Testing 282
Testing behind the GUI 282
Testing the GUI 282
Load Tests 283
Comparisons 283
Repetitive Tasks 284
Data Creation or Setup 284
What Shouldn’t We Automate? 285
Usability Testing 285
Exploratory Testing 286
Tests that Will Never Fail 286
One-Off Tests 286
What Might Be Hard to Automate? 287
Developing an Automation Strategy—Where Do We Start? 288
Where Does It Hurt the Most? 289
Multi-Layered Approach 290
Think about Test Design and Maintenance 292
Choosing the Right Tools 294
CONTENTS xvii
Applying Agile Principles to Test Automation 298
Keep It Simple 298
Iterative Feedback 299
Whole-Team Approach 300
Taking the Time to Do It Right 301
Learn by Doing 303
Apply Agile Coding Practices to Tests 303
Supplying Data for Tests 304
Data Generation Tools 304
Avoid Database Access 306
When Database Access Is Unavoidable or Even Desirable 307
Understand Your Needs 310
Evaluating Automation Tools 311
Identifying Requirements for Your Automation Tool 311
One Tool at a Time 312
Choosing Tools 313
Agile-Friendly Tools 316
Implementing Automation 316
Managing Automated Tests 319
Organizing Tests 319
Organizing Test Results 322
Go Get Started 324
Summary 324
Part V An Iteration in the Life of a Tester 327
Chapter 15 Tester Activities in Release or Theme Planning 329
The Purpose of Release Planning 330
Sizing 332
How to Size Stories 332
The Tester’s Role in Sizing Stories 333
An Example of Sizing Stories 334
Prioritizing 338
Why We Prioritize Stories 338
Testing Considerations While Prioritizing 339
What’s in Scope? 340
Deadlines and Timelines 340
Focus on Value 341
xviii CONTENTS
System-Wide Impact 342
Third-Party Involvement 342
Test Planning 345
Where to Start 345
Why Write a Test Plan? 345
Types of Testing 346
Infrastructure 346
Test Environments 347
Test Data 348
Test Results 349
Test Plan Alternatives 350
Lightweight Test Plans 350
Using a Test Matrix 350
Test Spreadsheet 353
A Whiteboard 353
Automated Test List 354
Preparing for Visibility 354
Tracking Test Tasks and Status 354
Communicating Test Results 357
Release Metrics 358
Summary 366
Chapter 16 Hit the Ground Running 369
Be Proactive 369
Benefits 370
Do You Really Need This? 372
Potential Downsides to Advance Preparation 373
Advance Clarity 373
Customers Speak with One Voice 373
Story Size 375
Geographically Dispersed Teams 376
Examples 378
Test Strategies 380
Prioritize Defects 381
Resources 381
Summary 382
Chapter 17 Iteration Kickoff 383
Iteration Planning 383
Learning the Details 384
Considering All Viewpoints 385
CONTENTS xix
Writing Task Cards 389
Deciding on Workload 393
Testable Stories 393
Collaborate with Customers 396
High-Level Tests and Examples 397
Reviewing with Customers 400
Reviewing with Programmers 400
Test Cases as Documentation 402
Summary 403
Chapter 18 Coding and Testing 405
Driving Development 406
Start Simple 406
Add Complexity 407
Assess Risk 407
Coding and Testing Progress Together 409
Identify Variations 410
Power of Three 411
Focus on One Story 411
Tests that Critique the Product 412
Collaborate with Programmers 413
Pair Testing 413
“Show Me” 413
Talk to Customers 414
Show Customers 414
Understand the Business 415
Completing Testing Tasks 415
Dealing with Bugs 416
Is It a Defect or Is It a Feature? 417
Technical Debt 418
Zero Bug Tolerance 418
It’s All about Choices 419
Decide Which Bugs to Log 420
Choose When to Fix Your Bugs 421
Choose the Media You Should Use to Log a Bug 423
Alternatives and Suggestions for Dealing with Bugs 424
Start Simple 428
Facilitate Communication 429
Testers Facilitate Communication 429
Distributed Teams 431
xx CONTENTS
Regression Tests 432
Keep the Build “Green” 433
Keep the Build Quick 433
Building a Regression Suite 434
Checking the “Big Picture” 434
Resources 434
Iteration Metrics 435
Measuring Progress 435
Defect Metrics 437
Summary 440
Chapter 19 Wrap Up the Iteration 443
Iteration Demo 443
Retrospectives 444
Start, Stop, and Continue 445
Ideas for Improvements 447
Celebrate Successes 449
Summary 451
Chapter 20 Successful Delivery 453
What Makes a Product? 453
Planning Enough Time for Testing 455
The End Game 456
Testing the Release Candidate 458
Test on a Staging Environment 458
Final Nonfunctional Testing 458
Integration with External Applications 459
Data Conversion and Database Updates 459
Installation Testing 461
Communication 462
What If It’s Not Ready? 463
Customer Testing 464
UAT 464
Alpha/Beta Testing 466
Post-Development Testing Cycles 467
Deliverables 468
Releasing the Product 470
Release Acceptance Criteria 470
Release Management 474
Packaging 474
CONTENTS xxi
Customer Expectations 475
Production Support 475
Understand Impact to Business 475
Summary 476
Part VI Summary 479
Chapter 21 Key Success Factors 481
Success Factor 1: Use the Whole-Team Approach 482
Success Factor 2: Adopt an Agile Testing Mind-Set 482
Success Factor 3: Automate Regression Testing 484
Success Factor 4: Provide and Obtain Feedback 484
Success Factor 5: Build a Foundation of Core Practices 486
Continuous Integration 486
Test Environments 487
Manage Technical Debt 487
Working Incrementally 488
Coding and Testing Are Part of One Process 488
Synergy between Practices 489
Success Factor 6: Collaborate with Customers 489
Success Factor 7: Look at the Big Picture 490
Summary 491
Glossary 493
Bibliography 501
Index 509
Скачать:
Купить бумажную книгу или электронную версию книги и скачать
По кнопке выше можно купить бумажные варианты этой книги и похожих книг на сайте интернет-магазина "Лабиринт".
Using the button above you can buy paper versions of this book and similar books on the website of the "Labyrinth" online store.
Реклама. ООО "ЛАБИРИНТ.РУ", ИНН: 7728644571, erid: LatgCADz8.
Дата создания страницы: