Skip to Content
Quality Code: Software Testing Principles, Practices, and Patterns
book

Quality Code: Software Testing Principles, Practices, and Patterns

by Stephen Vance
December 2013
Intermediate to advanced
256 pages
6h 56m
English
Addison-Wesley Professional
Content preview from Quality Code: Software Testing Principles, Practices, and Patterns

Example: Injecting Synchronization through Logging

Although I quite melodramatically warned against exploiting logging frameworks for testing, some race conditions require their use. Let’s look at a real-life example I encountered.

Consider the code in Listing 13-11. At first blush, it may appear that this code is thread-safe. Java guarantees that the individual operations of the Vector class are thread-safe. The retrieval of the first element and its removal are in a synchronized block. However, small though it may be, the time between the test for whether logRecords is empty in the while condition and the synchronized block in which that test is acted on represents a classic check-and-modify race condition. When this method in invoked in high ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Unit Testing Principles, Practices, and Patterns

Unit Testing Principles, Practices, and Patterns

Vladimir Khorikov
Software Testing: Principles and Practices

Software Testing: Principles and Practices

Srinivasan Desikan, Gopalaswamy Ramesh

Publisher Resources

ISBN: 9780133017007Purchase book