Home > Computing and Information Technology > Databases > Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)
10%
Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)

Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)

          
5
4
3
2
1

Out of Stock


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Notify me when this book is in stock
Add to Wishlist

About the Book

The practice of Test-Driven Development (TDD) has helped thousands of software developers improve quality, agility, productivity, and speed. In Test-Driven Database Development, Max Guernsey, III shows how to adapt TDD to achieve the same powerful benefits in database design and development. Guernsey first explains why TDD offers so much potential to database practitioners, and how to overcome obstacles such as the lack of conventional “testable classes.” You’ll learn how to use “classes of databases” to manage change more effectively; how to define testable database behaviors; how to maximize long-term maintainability by limiting a database’s current scope; and how to use “emergent design” to simplify future expansion. Building on this foundation, the author guides you through implementing modern TDD processes and database refactoring. He presents practical techniques for improving legacy databases; for deviating from strict TDD when necessary; and for adapting TDD to applications that persist data in file systems, XML, or serialized objects. Guernsey shows how to •  Build a simple infrastructure to track and standardize scripts and databases •  Define a sustainable TDD process for database design •  Safely change a design without losing data •  Design new databases that are lighter, leaner, simpler, more testable, and easier to change •  Reduce design costs by eliminating duplication •  Gradually bring the benefits of TDD, agility, and modern design to legacy databases •  Remediate errors that find their way into database designs •  Isolate behaviors and avoid unwanted dependencies that cause tests to fail With this book as a guide, you will learn how to apply the proven practice of TDD to your database needs, and organize and optimize your organization’s data for a significant competitive advantage.   Test-Driven Database Development is the newest title in the highly respected NetObjectives Lean-Agile Series.

Table of Contents:
Foreword      xvii Preface      xix Acknowledgments      xxv About the Authors      xxvii Chapter 1  Why, Who, and What      1 Why      1    Agility Progressively Invades Domains Every Day     2    Agility Cannot Work Without TDD     2    TDD in the Database World Is a Challenge     3 Who     3    TDD and OOP     4    Applications and Databases     4 What     4    Databases Are Objects     5    TDD Works on Classes, Not Objects     5    We Need Classes of Databases     6 Summary     7 Chapter 2  Establishing a Class of Databases     9 The Class’s Role in TDD     9    A Reliable Instantiation Process     10    Tests Check Objects     10 Classes in Object-Oriented Programming Languages     11    Making Classes Is Easy: Just Make New Objects     11    One Path: Destroy If Necessary     11 Classes of Databases     12    Two Paths: Create or Change     12    The Hard Part: Unifying the Two Paths     13    Real Database Growth     13    How About Making Every Database Build Like Production Databases?     14    All DBs Would Follow the Exact Same Path     15 Incremental Build     15    Document Each Database Change     15    Identify Current Version     16    Apply Changes in Order as Needed     16 Implementation     16    Requirements     16    Pseudocode Database Instantiation Mechanism     17    Pseudocode Input     17 Summary     18 Chapter 3  A Little TDD     19 The Test-First Technique     19    Write the Test     20    Stub Out Enough to See a Failure     22    See the Test Pass     22    Repeat     23 Tests as Specifications     24    “Tests Aren’t Tests, They Are Specifications”     24    “Tests Aren’t Specifications, They Are Tests”     25    Tests Are Executable Specifications     26    Incremental Design     27 Building Good Specifications     28    Specify Behavior, Not Structure     28    Drive Design In from Without, Not the Other Way Around     29    Defining the Design Inside Out     30    Defining the Design Outside In     32 Summary     34 Chapter 4  Safely Changing Design     37 What Is Safe?     38    Breaking a Contract Is a Little Bad     38    Losing Data Will Probably Get You Fired     39    Not Changing Design Is Also Dangerous     40 Solution: Transition Testing     44    Test-Driving Instantiation     44    Transition Testing Creation     44    Transition Testing Addition     47    Transition Testing Metamorphosis     51    Why Not Use the Public Interface?     56 Transition Safeguards     56    Read/Read Transition Tests     56    Run by the Class of Databases on Every Upgrade     60    Backup and Rollback on Fail     60    Making Transition Tests Leverage Transition Safeguards     60 Summary     61 Chapter 5  Enforcing Interface     63 Interface Strength     64    Stronger Coupling Languages     64    Weaker Coupling Languages     65    The Common Thread     66    Coupling to Database Classes     66    The Problem Is Duplication     66 Client-Object-Like Enforcement     67    Creating Demand for a DatabaseDesign Class     67 Specifying the DatabaseDesign Class     68    Getting Rid of Duplication with Multiple Client Platforms     70    What Happens When Coupling Goes Bad?     71    Eliminating Duplication Between Database Build and Client Code    71    Decoupling Implementation from Design     72 Sticking Point: Change    73    Designs Change Over Time     74    Document All Versions of Design     75    Couple to the Correct Version of the Design     77 Sticking Point: Coupling     78    Various Clients Couple to Various Versions     78    Having to Change Everything All the Time Is Duplication, Too     79    Introducing the Lens Concept     83    Virtual Lenses     85    The “Current” Lens     89    The “New” Lens     89 Summary     93 Chapter 6  Defining Behaviors     95 A New Group of Problems     96    No Encapsulation     96    Hide Everything     97    Business Logic in the Database     97 Knowledge, Information, and Behavior     98    Information     99    Knowledge     102    Behavior     102 Outside-In Development     106    Defining the Test     106    Growing Interface     108    Growing Behavior and Structures     109 Justification by Specification     111    Work Against Present Requirements, Not Future     111    Build in Increments     112    Limit Access to What Is Specified     112 Summary     113 Chapter 7  Building for Maintainability     115 Never Worry About the Future     116    Look for Opportunities in the Now     116    Design to Information     117    Translate Info and Knowledge with Behavior     121 Guard Knowledge with Fervor and Zeal     124    Not Changing Is the Most Dangerous Choice     124    Keep Your Design Natural     126 Deal with the Future When It Happens     127    Define New Design     128    Introduce Minimal Changes     129    Get Tests Passing     131    Stop, Think, Refactor     133 Summary     136 Chapter 8  Error and Remediation     137 Kinds of Errors     137    Axis: Is the Error Good or Bad?     138    Axis: Is the Error Released or Not?     140 Dealing with Good Errors     142    Just Fix It     142    Document Behavior Now     143    Trace Feature Back to Its Genesis     145 Dealing with Bad Errors     146    Unreleased Errors     147    Released Errors     150    Catastrophic Errors     156 Summary     157 Chapter 9  Design     159 Structures Versus Design     160    Structures: Execution Details     160    Tests and Class Information     162 What Is Design?     163    Buckets of Concepts     163    Mandatory Part of True TDD     166 Composition and Aggregation     167    Composition: One Thing with Multiple Parts     168    Aggregation: Connecting Distinct Things     172 Reuse     175    Avoid Developing the Same Thing Twice     175    Reuse by Composition or Aggregation     177 Abstraction     178    Identifying Opportunities for Abstraction     178    Encapsulating Behaviors     179    Finding Ways to Allow Variation in Dependencies     185    Dealing with the Time Problem     186 Summary     190 Chapter 10  Mocking     191 Testing Individual Behaviors     191    Why Encapsulate     192    Tests Test Everything Not Under Their Control     193    Controlling Irrelevant Behaviors from Tests     194    Mocking Controls Behaviors     194 Mocking in Object-Oriented Programming     195    Setup     195    Decoupling     199    Isolation     202    Integration     202 Mocking in Database Design     203    Example Problem     204    Example Solution     205    Composition     208    Aggregation     210    Designing for Testability     210 Summary     210 Chapter 11  Refactoring     213 What Refactoring Is     214    Changing Design Without Changing Behavior     214    In the Context of Passing Tests     215 Lower and Higher Risk Design Changes     222    Lower Risk: Changing Class-Level Design     222    Medium Risk: Rearranging Behavior Logic     223    Higher Risk: Altering Knowledge Containers     225    This Is Not an Invitation to Skip Testing     226 Summary     226 Chapter 12  Legacy Databases     227 Promoting to a Class     228    Deducing Initial Version     228    Pinning the Transition Behavior with Tests     231 Controlling Coupling     231    Identifying and Locking Down to Existing Uses     232    Encapsulating on Demand     234 Controlling Change     235    Test-Driving New Behaviors     235    Pinning Construction on Demand     237    Pinning Behavior on Demand     238    Implementing New Behavior     239 Finding Seams and Components     240    Finding Seams     240    Encapsulating Components     243 Summary     247 Chapter 13  The Façade Pattern     249 Encapsulation with a Façade     249    Explanation of Façade Pattern     250    New Test-Driven Façade Database     254    Compositional Alternative     261    To Encapsulate or Not    261 Strangling the Old Interface     262    Transferring Changing Behaviors to Façade     262    Removing Access and Features When No Longer Needed     263 Test-Driving Behaviors in the Façade Database     264    Exposing Legacy Behaviors     265    Another Way to Do It     265    New Behaviors     266 Summary     266 Chapter 14  Variations     269 Having a Class Is Important—Implementation Is Not     270 Scenario: Skipping Steps     270    Problem     271    Solution     272    The Right Amount of Work     273 Scenario: Deviations     274    Problem     274    Solution     275    Solution Applied     277 Common Solution     281 Summary     281 Chapter 15  Other Applications     283 XML     284    Encapsulation     284    XSD Schemas     284    XSLT Transitions     286    Transition Test XSLT Changes     287 File Systems and Other Object Directories      288    Transition Test File System Manipulations     289    Shell Script Transitions     291 Data Objects     292    Class Definitions Are Schemas     292    Transition Test the Ugrader Class     294    Code Transitions     296 Summary and Send Off     300 Index     301


Best Sellers


Product Details
  • ISBN-13: 9780132776455
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Language: English
  • Sub Title: Unlocking Agility
  • ISBN-10: 0132776456
  • Publisher Date: 13 Feb 2013
  • Binding: Digital download
  • Series Title: Net Objectives Lean-Agile Series
  • Weight: 1 gr


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)
Pearson Education (US) -
Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Test-Driven Database Development: Unlocking Agility(Net Objectives Lean-Agile Series)

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA