Limit search to available items
Book Cover
Author Paranj, Bala, author

Title Test driven development in Ruby : a practical introduction to TDD using problem and solution domain analysis / Bala Paranj
Published [United States] : Apress, 2017
New York, NY : Distributed to the Book trade worldwide by Springer
Online access available from:
Safari O'Reilly books online    View Resource Record  


Description 1 online resource
Contents At a Glance; Contents; About the Author; About the Technical Reviewer; Foreword; Acknowledgments; Introduction; Chapter 1: The Basics; Terminology; Kata; Coding Kata; Domain; Problem Domain; Solution Domain; Domain Expert; Domain Knowledge; Defining the Problem Domain and the Solution Domain; Learning TDD; Learning by Coding Kata; Learning Retrospective; Intent vs. Implementation; Intent; Implementation; Intent and Implementation; Music; Lyrics; Home Plan; Separate Intent from Implementation; Sheep Example; Test API Example; Bowling Game Example; Precision in Language and Meaning
Mocking as a Design TechniqueAbstraction Levels in a System; Testing Random Behavior; Testing Time-Dependent Behavior; Simulating User Input; Seams in a System; Dealing with User Input; Open Closed Principle; Difference Reduction; Defect Localization; Mutation Testing; Stack; Basic Stack; Test Precisely and Concretely; Make Your Code Robust; The Sieve of Eratosthenes; Algorithm; Prime Factors; Problem Statement; Problem Domain Analysis; Solution Domain Analysis; Summary; Chapter 3: Techniques in TDD; Obvious Implementation; Fake It Till You Make It; Triangulation; Addition
Problem Domain AnalysisSolution Domain Analysis; Alternative Representations; Divide and Conquer Strategy; Designing Test Cases; Sum a List of Numbers; Sequence of Test Cases; Starter Test; Next Test ; Story Test ; Assertion; Test Driving Calculator; Canonical Test Structure; Given; When; Then; Arrange, Act, Assert; Calculator; Addition; Subtraction; Common Mistakes; Common Mistakes in the TDD Cycle; Mistakes in Step One; Mistakes in Step Two; Mistakes in Step Three; Mistakes in Step Four; Mistakes in Step Five; Base Conversion; Problem Statement; Problem Domain Analysis
Solution Domain AnalysisAlgorithm; Code; Code Reflecting Test Data; Multiple Assertions; Vowel Checker; Forgetting to Test the Negative Case; Not Testing the Boundary Conditions; Not Updating the Tests; Implementation-Aware Tests; Summary; Chapter 2: Katas; Fibonacci Sequence; Problem Statement; Problem Domain Analysis; Solution Domain Analysis; Assumptions; Test-Driven Fibonacci; Fizz Buzz; Problem Statement; Problem Domain Analysis; Solution Domain Analysis; Test-Driven FizzBuzz; No if-else Constraint; No if Constraint; Implementation-Independent Tests; Crossing the System Boundary
Tests Are Executable DocumentationShift in Mental State; Overview of TDD; Test Driven Development; The Five Steps of TDD; Failing Test; Writing a Failing Test; Minimal Implementation; Autonomous Discovery Learning; Devil's Advocate; Refactoring; Separation of Intent from Implementation; Ping Pong Pair Programming Technique; Black Box Perspective; Shift in System and Mental States; Importance of Discipline; Overcoming Difficulty ; Problem-Solving Skills; Four Phases of Problem Solving; Understand the Problem; Devise a Plan; Carry Out the Plan; Look Back; Subskills of Test Driven Development
Summary Learn the basics of test driven development (TDD) using Ruby. You will carry out problem domain analysis, solution domain analysis, designing test cases, and writing tests first. These fundamental concepts will give you a solid TDD foundation to build upon. Test Driven Development in Ruby is written by a developer for developers. The concepts are first explained, then a coding demo illustrates how to apply the theory in practice. At the end of each chapter an exercise is given to reinforce the material. Complete with working files and code samples, you'll be able to work alongside the author, a trainer, by following the material in this book. You will: Carry out problem domain analysis, solution domain analysis, designing test cases, and writing tests first Use assertions Discover the structure of a test and the TDD cycle Gain an understanding of minimal implementation, starter test, story test, and next test Handle refactoring using Ruby Hide implementation details Test precisely and concretely Make your code robust
Notes Includes index
Online resource; title from PDF title page (SpringerLink, viewed March 29, 2017)
Subject Application software -- Development.
Computer software -- Testing.
Ruby (Computer program language)
Form Electronic book
ISBN 1484226372
1484226380 (electronic bk.)
9781484226384 (electronic bk.)