Test driven development in Ruby a practical introduction to TDD using problem and solution domain analysis

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...

Full description

Bibliographic Details
Main Author: Paranj, Bala
Format: eBook
Language:English
Published: [United States], New York, NY Apress, Distributed to the Book trade worldwide by Springer 2017
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 05919nmm a2200541 u 4500
001 EB001947674
003 EBX01000000000000001110576
005 00000000000000.0
007 cr|||||||||||||||||||||
008 210123 ||| eng
020 |a 1484226372 
020 |a 9781484226377 
020 |a 1484226380 
020 |a 9781484226384 
050 4 |a QA76.76.T48 
100 1 |a Paranj, Bala 
245 0 0 |a Test driven development in Ruby  |b a practical introduction to TDD using problem and solution domain analysis  |c Bala Paranj 
260 |a [United States], New York, NY  |b Apress, Distributed to the Book trade worldwide by Springer  |c 2017 
300 |a 1 online resource 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
505 0 |a 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 
653 |a Ruby (Computer program language) / fast 
653 |a Logiciels d'application / Développement 
653 |a Programming & scripting languages: general / bicssc 
653 |a Ruby (Langage de programmation) 
653 |a Ruby (Computer program language) / http://id.loc.gov/authorities/subjects/sh00000128 
653 |a Computer programming / software development / bicssc 
653 |a Application software / Development / fast 
653 |a COMPUTERS / Software Development & Engineering / Quality Assurance & Testing / bisacsh 
653 |a Computer software / Testing / fast 
653 |a Computer software / Testing 
653 |a Software Engineering / bicssc 
653 |a Application software / Development / http://id.loc.gov/authorities/subjects/sh95009362 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a Includes index 
028 5 0 |a 10.1007/978-1-4842-2638-4 
015 |a GBB8L6639 
776 |z 9781484226384 
776 |z 1484226380 
776 |z 9781484226377 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781484226384/?ar  |x Verlag  |3 Volltext 
082 0 |a 005.1/4 
082 0 |a 620 
520 |a 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