Intro; Trademarks; Preface; Why This Book?; What Is This Book Not About?; What Is This Book About?; Acknowledgements; Contents; List of Abbreviations; 1: Fundamentals of Software Testing; 1.1 Introduction; 1.2 The Beginning: What Is Testing Really About and Why Is It So Difficult?; 1.2.1 Testing as a Unique Activity. Why Testing Is So Hard?; Example; Example; 1.2.2 Testing Finds Bugs, But This Is Just the Tip of the Iceberg; 1.2.3 Quality Control vs. Quality Assurance; 1.2.4 Itś Not About the Working Code, But a Solution to the Business Problem; 1.2.5 Your Real Boss Is Your Client; Example.
Text of Note
1.2.6 Continuous Scale of Tests: From Confirmation to `Dirty ́TestingExample; 1.2.7 Test Redundancy Is Not Always Bad; 1.2.8 Disregarding Risk Is Risky; 1.2.9 Feedback for the Team; 1.2.10 It Is Not About Test Execution; 1.3 The Mythical Test Case; 1.3.1 A Primary Function of Test Cases; 1.3.2 When Should We Use Test Cases?; 1.3.3 Benefits from Test Cases; Example; 1.4 The Nature of Defects and the Myths About Them; 1.4.1 Defect Distribution in Time; 1.4.2 Cost of Defect Removal; 1.4.3 LOC Metric as a Defect Predictor; 1.4.4 Defect Grouping.
Text of Note
1.4.5 Defects Resulting from Interaction of Parameters1.4.6 Module Structure vs. Defect-Proneness; Example; 1.5 Exploratory vs. Scripted: An Apparent Problem; Example; 1.6 The Ideal Testerś Skill Set; Example; 1.7 Itś All About Communication; Example; 1.8 Testing Process: Pure Abstraction or Tangible Reality?; 1.9 Models in Testing; Example; 1.10 A Bit of Philosophy: Problem of Universals from the Testerś Perspective; 2: Testing Strategies: How to Become a Better Tester?; 2.1 Introduction; 2.2 Be Inspired: What Can a Tester Learn from; 2.2.1 Philosophy; 2.2.2 Psychology.
Text of Note
2.2.3 Economy and ManagementExample; 2.2.4 Mathematics and Logic; Example; 2.2.5 Probability and Statistics; Example; 2.2.6 Systems Science; 2.2.7 Ergonomics; 2.3 The Testerś Mind: Psychology of Testing; 2.3.1 Creativity; 2.3.2 Cognitive Bias; 2.3.3 Confirmation Bias and Wason Experiment: Software Testing as Hypothesis Testing; Example; 2.3.4 Wason Selection Test: Why Is Language So Important?; Example; 2.3.5 Cognitive Dissonance; 2.3.6 Conwayś Law; 2.3.7 Csíkszentmihlyiś Flow Model; 2.4 Useful Methodological Laws and Tools; 2.4.1 Occamś Razor.
Text of Note
2.4.2 Descartes ́Doubt as Methodological Skepticism2.4.3 Optimization and Prioritization: Pareto 80-20 Principle; 2.4.4 Time Management: Parkinsonś Law; 2.4.5 Burchś Four Stages of Competence; 2.4.6 More Eyeballs Is Better: Linusś Law; 2.4.7 Legacy Code: Eaglesonś Law; 2.4.8 How to Hire New People: Peter Principle; 2.4.9 Meeting Facilitation: Sayreś Law; 2.4.10 Data Centralization: Ellisonś Law of Data; 2.4.11 False Sense of Security: Spaffordś Law of False Alerts; 2.4.12 Beizerś Pesticide Paradox; 2.5 Standards and Norms: Best Practices or Pure Evil?; Example.
0
8
8
8
8
SUMMARY OR ABSTRACT
Text of Note
This book presents a new paradigm of software testing by emphasizing the role of critical thinking, system thinking and rationality as the most important skills for the tester. It thus approaches software testing from a different perspective than in past literature, as the vast majority of books describe testing in the context of specific tools, automation, documentation, particular test design techniques or test management. In addition, the book proposes a novel meta-approach for designing effective test strategies, which is based on recent advances in psychology, economics, system sciences and logic. Chapter 1 starts by introducing the fundamental ideas underlying software testing. Chapter 2 then describes meta-strategies in software testing, i.e. general approaches that can be adapted to many different situations that a software tester encounters. Next, Chapter 3 presents the concept of Thinking-Driven Testing (TDT). This approach utilizes the concepts discussed in the two previous chapters and introduces the main ideas that underlie a reasonable and optimal approach to software testing. Chapter 4 builds on this basis and proposes a specific approach to testing, called TQED, that makes it possible to increase creativity in the context of delivering effective, optimal test ideas. Chapter 5 provides an overview of different types of testing techniques in order to understand the fundamental concepts of test design, while Chapter 6 details various pitfalls a tester may encounter and that can originate from a wide range of testing process areas. Lastly, Chapter 7 puts all this into practice, as it contains several exercises that will help testers develop a number of crucial skills: logical thinking and reasoning, thinking out of the box, creativity, counting and estimating, and analytical thinking. By promoting critical, rational and creative thinking, this book invites readers to re-examine common assumptions regarding software testing and shows them how to become professional testers who bring added value to their company.