Go beyond basic testing! Great software testing makes the entire development process more efficient, from understanding your code before you write it to catching bugs in tricky corner cases.
In Effective Software Testing
you will learn how to:
Effective Software Testing
- Engineer tests with a much higher chance of finding bugs
- Read code coverage metrics and use them to improve your test suite
- Understand when to use unit tests, integration tests, and system tests
- Use mocks and stubs to simplify your unit testing
- Think of pre-conditions, post-conditions, invariants, and contracts
- Implement property-based tests
- Utilize coding practices like dependency injection and hexagonal architecture that make your software easier to test
- Write good and maintainable test code
teaches you a systematic approach to software testing. You’ll master easy-to-apply techniques to create strong test suites that are specifically engineered for your code. Following real-world use cases and detailed code samples, you’ll soon be engineering tests that find the bugs hiding in edge cases and the parts of code you would never think of testing! Along the way, you’ll develop an intuition for testing that can save years of learning by trial and error.
about the technology
When software fails, we all suffer. A properly designed suite of tests ensures that critical bugs are caught before your code reaches production, helping you deliver software of the highest quality and avoid late nights fixing broken systems.
about the book
Effective Software Testing
is a hands-on guide to creating high quality tests, from your first line of code through pre-delivery checks. It’s full of techniques drawn from proven research in software engineering. You’ll learn to efficiently engineer tests specifically for your software and end reliance on generic testing practices that may be right for every project. Each chapter puts a new technique into practice with source code samples, real-world tradeoffs, and answers to the common questions developers pose about testing. You’ll learn how to scrutinize your requirements for potential tests, generate tests from your code structure, and engineer rigorous suites of unit, integration, and system tests.
about the reader
For readers who know an object-oriented language. This tool-agnostic guide contains examples in Java and can be used with any testing stack.
about the author
Dr. Maurício Aniche
leads the Tech Academy of Adyen, and is also an Assistant Professor in Software Engineering at Delft University of Technology in the Netherlands. He researches on how to make developers more productive during testing and maintenance and his teaching efforts in software testing have awarded him the Teacher of Year 2021 award and the TU Delft Education Fellowship. Maurício holds MSc and PhD degrees in Computer Science from the University of São Paulo, Brazil. He also co-founded Alura, one of the most popular e-learning platforms for software engineers in Brazil.