Software Testing Strategies A Testing Guide for The 2020s

Unlock the true potential of software testing to achieve seamless software performance with this comprehensive guide Key Features Gain a solid understanding of software testing and master its multifaceted strategies Empower yourself to effectively overcome software testing challenges Develop actiona...

Descripción completa

Detalles Bibliográficos
Otros Autores: Heusser, Matthew, author (author), Larsen, Michael, author
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England : Packt Publishing Ltd [2023]
Edición:First edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009790335906719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright
  • Dedication
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: The Practice of Software Testing
  • Chapter 1: Testing and Designing Tests
  • Jumping into testing
  • The impossibility of complete testing
  • What is the EVP asking for?
  • Toward a theory of error
  • Testing software - an example
  • Testing software - an analysis
  • Quick attacks - the airdropped tester
  • Test design - input space coverage
  • Equivalence classes and boundaries
  • Decision tables
  • Decision trees
  • All-pairs and pairwise testing
  • High volume automated approaches
  • Other approaches
  • Data and predictability - the oracle problem
  • Summary
  • Further reading
  • Chapter 2: Fundamental Issues in Tooling and Automation
  • Technical requirements
  • No silver bullets - you can't radically fix the test cycle
  • The minefield regression problem
  • Coverage model
  • The Battleships problem - testing versus checking
  • Comparing Battleships to bugs
  • Automation rarely beats human intuition
  • The maintenance problem
  • The dangers of comprehensive tests
  • The money problem
  • Lessons from the fundamental issues
  • Summary
  • Chapter 3: Programmer-Facing Testing
  • Technical requirements
  • The programmer's view
  • Testing and reliability
  • The hexagonal architecture
  • Introducing FizzBuzz
  • Unit tests
  • TDD
  • Consequences of TDD
  • Unit test and unit code design
  • Using test doubles to create seams
  • Mutation testing
  • Web APIs from a test perspective
  • Web API testing strategy
  • Testing functional and legacy code
  • A Roman Numerals Kata
  • Summary
  • Chapter 4: Customer-Facing Tests
  • Technical requirements
  • A word of warning
  • Human Or Tooling-is it either/or?
  • GUI test automation patterns
  • Eliminating redundancy with domain-specific libraries
  • Eliminating redundancy through object locators.
  • Do you need conditionals, looping structures, and variables?
  • The tradeoff between assertion and image recognition
  • Designing your own system
  • Toward specification by example
  • Specification by example
  • Low-code and no-code test automation
  • Batch- and model-driven test automation
  • This chapter is completely wrong
  • Summary
  • Chapter 5: Specialized Testing
  • Technical requirements
  • Understanding load and performance testing
  • Getting to know the basics of load testing
  • Setting up a load test
  • Exploring security testing
  • Security concepts
  • Checking out common security vulnerabilities
  • Learning about industry standards
  • Investigating some security testing tools
  • Delving into accessibility testing
  • What is accessibility?
  • Advocating for accessibility
  • Investigating the distinctions between accessibility and inclusive design
  • Learning about the WCAG standard
  • Investigating some accessibility testing tools
  • Internationalization and localization
  • Preparing for internationalization and localization
  • Investigating tools for internationalization and localization
  • CI
  • CI and the pipeline
  • Getting involved with build management as a tester
  • Investigating CI tools
  • Regulated testing
  • Navigating regulatory requirements
  • Summary
  • Chapter 6: Testing Related Skills
  • Technical requirements
  • Finding bugs
  • Oracles in software testing
  • Inattentional blindness and Oracles
  • About the word bug
  • Writing bug reports
  • Effective bug reports
  • Effective reproduction steps
  • Planning testing - cases and plans
  • Test cases in practice
  • Metrics and measurement
  • Metric dysfunction
  • Project projections
  • Influencing change
  • Summarizing information
  • Summary
  • Chapter 7: Test Data Management
  • Technical requirements
  • The test data problem
  • Test data and database apps.
  • The standard data seed
  • Table-driven - when test data drives behavior
  • Scriptable users and structure
  • Exploring synthetic users
  • Leveraging production refreshes
  • Exploring development, test, and production environments
  • Understanding the regulatory issues in test data management
  • The user spy feature
  • Summary
  • Part 2: Testing and Software Delivery
  • Chapter 8: Delivery Models and Testing
  • Technical requirements
  • Waterfall
  • The advantages of and place for the waterfall
  • The V-Model
  • Iterative, incremental, and mini waterfalls
  • Extreme Programming (XP)
  • The context of XP
  • Scrum and SAFe
  • The context of Scrum
  • SAFe and its context
  • House-rules software development
  • The Agile Manifesto
  • Context-driven testing
  • Illustrations of the principles in action
  • Kanban as a house rule
  • Continuous delivery and deployment
  • DevOps, Platform Engineering, SRE
  • Summary
  • Further reading
  • Chapter 9: The Puzzle Pieces of Good Testing
  • Technical requirements
  • Recipes - how to do hard things
  • Defining recipes
  • Shouldn't recipes just be automated?
  • Do recipes overlap with technical documentation?
  • Coverage - did we test the right things well enough?
  • Precise code coverage measures
  • Closing out coverage
  • Defects - what is the status of the software?
  • Schedule and risk - too many test ideas, not enough time
  • Iterative testing
  • Strategy - what are our risks and priorities?
  • Dashboard - how do we communicate what we know?
  • Summary
  • Chapter 10: Putting Your Test Strategy Together
  • What are we doing now?
  • Getting the form filled out
  • The elevator pitch
  • A census of risk
  • Defining a real risk census
  • Setting priorities, time management, and scope
  • Today's strategy versus tomorrow's goals
  • Summary
  • Chapter 11: Lean Software Testing
  • Lean software testing defined.
  • From ideas in practice to the term "Lean"
  • The seven wastes
  • Waste #1 - transport
  • Waste #2 - inventory
  • Waste #3 - motion
  • Waste #4 - waiting
  • Waste #5 - overprocessing
  • Waste #6 - overproduction
  • Waste #7 - defects
  • (New) waste #8 - ability
  • Removing waste in testing
  • Flow
  • Visualizing flow - an example
  • Multitasking
  • Measurement - lead time versus cycle time
  • Efficiency and congestion
  • Metric - touch time
  • Batch size
  • Queues and efficiency
  • Arrival time pacing
  • Limiting work in progress to create a pull system
  • Release cadence
  • One-piece flow and CD
  • Summary
  • Part 3: Practicing Politics
  • Chapter 12: Case Studies and Experience Reports
  • RCRCRC at scale
  • The 1-day test plan
  • RCRCRC in the enterprise
  • A coverage dashboard
  • Test coverage blinders
  • Pair and tri-programming
  • Discovering the expertise paradox
  • Making expertise transparent
  • The evolution of the test strategy
  • The alternative to evolution - information hiding
  • Professional pushback - dealing with bullies
  • Power in the workplace
  • One way to say it
  • Boundaries in the enterprise
  • Narcissistic communication
  • Boundary enforcement - the power move
  • If you choose to stay
  • Summary
  • Chapter 13: Testing Activities or a Testing Role?
  • Technical requirements
  • The cultural conflict with a testing role
  • How we got here - the bad news
  • How we got here - developing at internet speed
  • Building a risk mitigation team
  • The purpose of the risk exercise
  • Faith-based versus empirical test automation
  • The math behind faith-based test automation
  • Possible outcomes
  • Shift left and shift right
  • (Actually) continuous testing
  • Summary
  • Chapter 14: Philosophy and Ethics in Software Testing
  • Philosophy and why it matters in testing
  • Sprint Length: it depends
  • Shu Ha Ri: learning by osmosis.
  • A tough question: what do you want?
  • Ethics and ethical reasoning in testing
  • Ethical frameworks
  • Classic ethical challenges
  • Practical ethical issues in testing
  • Skipping test steps and the good news
  • Decisions are not made in meetings
  • Scientific thinking and logical fallacies
  • Logical fallacies
  • How we wind up in hell and how to escape
  • Put the responsibility in the right place
  • Summary
  • Additional readings for the serious philosopher
  • Chapter 15: Words and Language About Work
  • Context-driven testing and the other schools
  • The Agile school
  • The DevOps or CD school
  • The analytical school
  • The factory school
  • The quality school
  • The context-driven school
  • Precise language
  • Wordsmatter
  • The benefits of being imprecise
  • Process versus skill
  • Testing and checking
  • Yes, we can assure quality
  • Summary
  • Further reading
  • Chapter 16: Testing Strategy Applied
  • A mobile test strategy example
  • Our sample mobile app
  • Designing a test program
  • Mobile system coordination and deployment
  • The human element
  • AI in software testing
  • The state of AI tools
  • Possible ways to use AI for testing
  • Other forms of AI in testing
  • The bottom line for AI testing
  • A few thoughts to leave with
  • Thoughts on documentation
  • Summary
  • Index
  • About PACKT
  • Other Books You May Enjoy.