TL;DR
Software testing is a practical engineering activity. We will introduce you to software testing based on the remarkable book, Introduction To Software Testing by Paul Ammann and Jeff Offutt.
Introduction To Software Testing is recommended in the BBST Foundation course, in part about coverage in software testing. I decided that it is time to read it and share with you my learning path.
I like the definition of software testing in the preface of this book:
Software testing is a practical engineering activity, essential to producing high-quality software.
Nothing about assuring, gatekeeping, and owning the quality of software.
On a technical level, software testing is satisfying coverage criteria. Authors categorize coverage criteria in four categories:
- Graphs
- Logical Expressions
- Input Space
- Syntax Structures
The book is based on examples, problems, and technical materials.
Testing is a collection of objective and quantitive activities that can be measured and repeated.
Activity that could be measured and repeated. Those are critical software testing properties. Repeating activity means that we can explain our testing activity to other testers (teaching). If we can measure activity, we can grade the effectiveness of a software tester.
Testing is part of mental discipline. It is not an anti-engineering activity and it is not an inherently destructive process. Neither is only for specialists who know little about programming and math.
This is very important, we do not test to break, but to reveal important information. Software testing is not an exclusive activity, developers could also be successful software testers.
These was very exciting preface introduction, words like activity, exclusive, coverage, anti-engineering make me very exciting about this learning path.