xUnit Test Patterns: Refactoring Test Code

Pearson Education
9
Free sample

Automated testing is a cornerstone of agile development. An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge.

xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testing framework in use today. Agile coach and test automation expert Gerard Meszaros describes 68 proven patterns for making tests easier to write, understand, and maintain. He then shows you how to make them more robust and repeatable--and far more cost-effective.

Loaded with information, this book feels like three books in one. The first part is a detailed tutorial on test automation that covers everything from test strategy to in-depth test coding. The second part, a catalog of 18 frequently encountered "test smells," provides trouble-shooting guidelines to help you determine the root cause of problems and the most applicable patterns. The third part contains detailed descriptions of each pattern, including refactoring instructions illustrated by extensive code samples in multiple programming languages.

Read more
Collapse

About the author

Gerard Meszaros is Chief Scientist and Senior Consultant at ClearStream Consulting, a Calgary-based consultancy specializing in agile development. He has more than a decade of experience with automated unit testing frameworks and is a leading expert in test automation patterns, refactoring of software and tests, and design for testability.
Read more
Collapse
4.7
9 total
Loading...

Additional Information

Publisher
Pearson Education
Read more
Collapse
Published on
May 21, 2007
Read more
Collapse
Pages
944
Read more
Collapse
ISBN
9780132797467
Read more
Collapse
Read more
Collapse
Read more
Collapse
Language
English
Read more
Collapse
Genres
Computers / Software Development & Engineering / General
Computers / Software Development & Engineering / Quality Assurance & Testing
Read more
Collapse
Content Protection
This content is DRM protected.
Read more
Collapse
Eligible for Family Library

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
This is the digital version of the printed book (Copyright © 2005).

Take Control of Your Project in the Final Stage of Software Development

In software development, projects are won or lost during the project endgame—that final stage of software development between release for testing and release to customers.

Software Endgames: Eliminating Defects, Controlling Change, and the Countdown to On-Time Delivery presents the core strategies for delivering working software to your customers. Focusing solely on the endgame, the book provides hard-won, hands-on strategies and practices for delivering real value.

In the endgame, effective management and repair of defects is crucial. Experienced project manager and consultant Robert Galen shows readers how to conduct effective defect triage -- analyzing, understanding, and categorizing defects—in preparation for scheduling repairs. Readers will learn how to transform the endgame from a time of rampant defects and utter chaos into a time of focused repairs, effective teamwork, and change management. You'll set release criteria, establish endgame release plans, and utilize a variety of change reduction and endgame management techniques.

Topics include

developing various forms of release criteria and leveraging them to guide your teams' efforts strategies for reducing the rate of change change control and triage techniques that lead to efficient and effective defect repair decisions alternative methods of defect repair for decision-making flexibility setting up a defect-tracking system, managing defects and gathering standard metrics for endgame defect trending techniques for repair planning and efficiency agile extensions -- how to apply these techniques to agile projects how to "mine" your endgames for overall software development improvements

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer–but only if you work at it.

What kind of work will you be doing? You’ll be reading code–lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.

Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code–of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Readers will come away from this book understanding
How to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
This is the digital version of hte printed book (Copyright © 1997).

Software testers require technical and political skills to survive what can often be a lose-lose relationship with developers and managers.

Whether testing is your specialty or your stepping stone to a career as a developer, there's no better way to survive the pressures put on testers than to meet the ten challenges described in this practical handbook.

This book goes beyond the technical skills required for effective testing to address the political realities that can't be solved by technical knowledge alone. Communication and negotiation skills must be in every tester's tool kit.

Authors Perry and Rice compile a "top ten" list of the challenges faced by testers and offer tactics for success. They combine their years of experience in developing testing processes, writing books and newsletters on testing, and teaching seminars on how to test.

The challenges are addressed in light of the way testing fits into the context of software development and how testers can maximize their relationships with managers, developers, and customers.


In fact, anyone who works with software testers should read this book for insight into the unique pressures put on this part of the software development process.

"Somewhere between the agony of rushed deadlines and the luxury of all the time in the world has got to be a reasonable approach to testing."—from Chapter 8

The Top Ten People Challenges Facing Testers

Challenge #10: Getting Trained in Testing
Challenge #9: Building Relationships with Developers
Challenge #8: Testing Without Tools
Challenge #7: Explaining Testing to Managers
Challenge #6: Communicating with Customers—And Users
Challenge #5: Making Time for Testing
Challenge #4: Testing What's Thrown Over the Wall
Challenge #3: Hitting a Moving Target
Challenge #2: Fighting a Lose-Lose Situation
Challenge #1: Having to Say No

Janet Gregory and Lisa Crispin pioneered the agile testing discipline with their previous work, Agile Testing. Now, in More Agile Testing, they reflect on all they’ve learned since. They address crucial emerging issues, share evolved agile practices, and cover key issues agile testers have asked to learn more about.

Packed with new examples from real teams, this insightful guide offers detailed information about adapting agile testing for your environment; learning from experience and continually improving your test processes; scaling agile testing across teams; and overcoming the pitfalls of automated testing. You’ll find brand-new coverage of agile testing for the enterprise, distributed teams, mobile/embedded systems, regulated environments, data warehouse/BI systems, and DevOps practices.

You’ll come away understanding

• How to clarify testing activities within the team

• Ways to collaborate with business experts to identify valuable features and deliver the right capabilities

• How to design automated tests for superior reliability and easier maintenance

• How agile team members can improve and expand their testing skills

• How to plan “just enough,” balancing small increments with larger feature sets and the entire system

• How to use testing to identify and mitigate risks associated with your current agile processes and to prevent defects

• How to address challenges within your product or organizational context

• How to perform exploratory testing using “personas” and “tours”

• Exploratory testing approaches that engage the whole team, using test charters with session- and thread-based techniques

• How to bring new agile testers up to speed quickly–without overwhelming them

The eBook edition of More Agile Testing also is available as part of a two-eBook collection, The Agile Testing Collection (9780134190624).

In 1994, Design Patterns changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, Refactoring revolutionized design by introducing an effective process for improving code. With the highly anticipated Refactoring to Patterns , Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutionary process of refactoring.

This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs to, towards, or away from pattern implementations. Using code from real-world projects, Kerievsky documents the thinking and steps underlying over two dozen pattern-based design transformations. Along the way he offers insights into pattern differences and how to implement patterns in the simplest possible ways.

Coverage includes:

A catalog of twenty-seven pattern-directed refactorings, featuring real-world code examples Descriptions of twelve design smells that indicate the need for this book’s refactorings General information and new insights about patterns and refactoring Detailed implementation mechanics: how low-level refactorings are combined to implement high-level patterns Multiple ways to implement the same pattern–and when to use each Practical ways to get started even if you have little experience with patterns or refactoring

Refactoring to Patterns reflects three years of refinement and the insights of more than sixty software engineering thought leaders in the global patterns, refactoring, and agile development communities. Whether you’re focused on legacy or “greenfield” development, this book will make you a better software designer by helping you learn how to make important design changes safely and effectively.

Testing is a key component of agile development. The widespread adoption of agile methods has brought the need for effective testing into the limelight, and agile projects have transformed the role of testers. Much of a tester’s function, however, remains largely misunderstood. What is the true role of a tester? Do agile teams actually need members with QA backgrounds? What does it really mean to be an “agile tester?”

Two of the industry’s most experienced agile testing practitioners and consultants, Lisa Crispin and Janet Gregory, have teamed up to bring you the definitive answers to these questions and many others. In Agile Testing, Crispin and Gregory define agile testing and illustrate the tester’s role with examples from real agile teams. They teach you how to use the agile testing quadrants to identify what testing is needed, who should do it, and what tools might help. The book chronicles an agile software development iteration from the viewpoint of a tester and explains the seven key success factors
of agile testing.

Readers will come away from this book understanding
How to get testers engaged in agile development Where testers and QA managers fit on an agile team What to look for when hiring an agile tester How to transition from a traditional cycle to agile development How to complete testing activities in short iterations How to use tests to successfully guide development How to overcome barriers to test automation This book is a must for agile testers, agile teams, their managers, and their customers.

With Acceptance Test-Driven Development (ATDD), business customers, testers, and developers can collaborate to produce testable requirements that help them build higher quality software more rapidly. However, ATDD is still widely misunderstood by many practitioners. ATDD by Example is the first practical, entry-level, hands-on guide to implementing and successfully applying it.

ATDD pioneer Markus Gärtner walks readers step by step through deriving the right systems from business users, and then implementing fully automated, functional tests that accurately reflect business requirements, are intelligible to stakeholders, and promote more effective development.

Through two end-to-end case studies, Gärtner demonstrates how ATDD can be applied using diverse frameworks and languages. Each case study is accompanied by an extensive set of artifacts, including test automation classes, step definitions, and full sample implementations. These realistic examples illuminate ATDD’s fundamental principles, show how ATDD fits into the broader development process, highlight tips from Gärtner’s extensive experience, and identify crucial pitfalls to avoid. Readers will learn to

Master the thought processes associated with successful ATDD implementation Use ATDD with Cucumber to describe software in ways businesspeople can understand Test web pages using ATDD tools Bring ATDD to Java with the FitNesse wiki-based acceptance test framework Use examples more effectively in Behavior-Driven Development (BDD) Specify software collaboratively through innovative workshops Implement more user-friendly and collaborative test automation Test more cleanly, listen to test results, and refactor tests for greater value

If you’re a tester, analyst, developer, or project manager, this book offers a concrete foundation for achieving real benefits with ATDD now–and it will help you reap even more value as you gain experience.

Software test automation has moved beyond a luxury to become a necessity. Applications and systems have grown ever larger and more complex, and manual testing simply cannot keep up. As technology changes, and more organizations move into agile development, testing must adapt—and quickly. Test automation is essential, but poor automation is wasteful—how do you know where your efforts will take you?

Authors Dorothy Graham and Mark Fewster wrote the field’s seminal text, Software Test Automation, which has guided many organizations toward success. Now, in Experiences of Test Automation, they reveal test automation at work in a wide spectrum of organizations and projects, from complex government systems to medical devices, SAP business process development to Android mobile apps and cloud migrations. This book addresses both management and technical issues, describing failures and successes, brilliant ideas and disastrous decisions and, above all, offers specific lessons you can use.

Coverage includes

Test automation in agile development

How management support can make or break successful automation

The importance of a good testware architecture and abstraction levels

Measuring benefits and Return on Investment (ROI)

Management issues, including skills, planning, scope, and expectations

Model-Based Testing (MBT), monkey testing, and exploratory test automation

The importance of standards, communication, documentation, and flexibility in enterprise-wide automation

Automating support activities

Which tests to automate, and what not to automate

Hidden costs of automation: maintenance and failure analysis

The right objectives for test automation: why “finding bugs” may not be a good objective

Highlights, consisting of lessons learned, good points, and helpful tips

Experiences of Test Automation

will be invaluable to everyone considering, implementing, using, or managing test automation. Testers, analysts, developers, automators and automation architects, test managers, project managers, QA professionals, and technical directors will all benefit from reading this book.
©2019 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.