Better Software Magazine Articles

Oh, When Will They Ever Learn?

After reading the book The Day the Phones Stopped, which was published in 1991, Lee began wondering why the poor software quality and complaints about development and testing documented in this book are the same complaints we hear today.

Lee Copeland's picture Lee Copeland
Crowdsourced Software Testing

In response to shrinking budgets and tight launch deadlines, crowdsourced software testing is a growing trend. Here are six ways an on-demand testing team can complement your in-house QA efforts.
 

Doron Reuveni
Virtual Labs in the Cloud

Learn how to overcome infrastructure management challenges using virtual lab automation, and discover which cloudprivate, public, or hybridbest meets your organization's needs.

Ravi Gururaj
Critical Incidents While Testing in Scrum

Scrum frameworks deliver working code in time-boxed sprints. Many communities find Scrum to be a wonderful balance between discipline and agility because it tames turbulence and focuses teams. However, Scrum requires dramatic rethinking of the traditional role of testing in a development project. Rob Sabourin explores critical testing incidents in Scrum projects-key turning points, difficult decisions, major problems, brilliant successes, and dismal failures. Rob identifies key skills, practices, and techniques used to confidently deliver working code each sprint. Rob shows how testing is implemented by teams in different organizational, business, and technical contexts. His findings raise important questions and identify some novel solutions. Do we really need testers in Scrum? Learn how teams solve tough security, performance, reliability, scalability, usability and regression testing challenges.

Robert Sabourin, Amibug.com
Peer Code Review: An Agile Process

Peer code review is one of the most effective ways to find defects-but is it agile? Because agile teams loathe heavy process, code review practices can easily fail. However, lightweight peer code review aligns well with the central tenets of agile-keeping feedback close to the point of creation, increasing team velocity by finding defects faster, and improving collective code ownership through frequent collaboration. Gregg Sporar shares recent research on code review practices and describes an agile code review approach-how much time to spend, which code to review, how much code to review at a time, how to set goals, the value of annotation, and more. After comparing four styles of code review-pair programming, over-the-shoulder, email, and tool-assisted-Gregg gives specific advice for creating review checklists and dealing with the social effects of code review in an agile environment.

Gregg Sporar, Smart Bear Software
Focused Continuous Testing

Continuous testing is a practice that involves automatically running tests after every program change. Just as modern IDEs provide instant feedback about the code's syntactic correctness, continuous testing gives you instant feedback about the semantic correctness of the code. Continuous testing has a profound impact on the way you use test-driven development (TDD) and continuous integration (CI). TDD provides rapid feedback through the frequent execution of a small set of related tests. CI provides broader feedback on a less frequent basis. Continuous testing combines the immediacy of TDD with the breadth of CI to redefine the experience of developer testing. Rod Coffin describes the history, theory, practice, and daily application of continuous testing, including its application on different platforms, and his ongoing experiences with continuous testing on real-world systems.

Rod Coffin, Improving Enterprises
Source Code Analysis in the Agile World

Agile practitioners know that achieving high velocity in iterations requires a pinpoint focus on code quality. The death of many projects can be traced to an out-of-control defect queue being pushed uphill from one iteration into the next. Source Code Analysis has emerged as an effective technology that plays an integral role in achieving defect-free code within a contained cost and effort. However, the actual benefits achieved are dependent on when and how the technology is applied, and how broadly it is used by team members. Gwyn Fisher describes how developers can make automated code inspection and other related technologies such as regular refactoring and peer review part of their daily routine, resulting in more stable iterations, increased team velocity, and more predictable delivery.

Gwyn Fisher, Klocwork, Inc
Dealing With Defects: The Agile Way

In agile development, software defects are everyone's responsibility. One tenet of agile is that defects should be fixed "as soon as possible" rather than documented as an inventory of "stuff" that doesn't work yet. Janet Gregory examines the sometimes vexing question agile teams have for dealing with a defect-should we "fix it now and forget it," "fix it now and track it," or "record and track it?" She explores why, regardless of which choice is made, you should write a test case to verify the fix is correct. Find out how those test cases can become a valuable record about defect history. Learn ways to track defects in a simple system to help the agile team discover process problems and potential improvement opportunities. By dealing with defects effectively, your team will be able to shift its focus from defect repair toward defect prevention.

Janet Gregory, DragonFire Inc.
Agile Development Practices 2009: Seven Key Factors for Agile Testing Success

Agile development presents unique challenges for testers and test teams. Working in short iterations, often with limited written requirements, agile development teams can leave traditional testers behind. Common testing-related activities-such as user acceptance testing, testing inter-product relationships, and installation testing-require different approaches to work within agile projects. Lisa Crispin presents seven key factors for testing success within agile projects – using a whole team approach, adopting an agile mindset, automating regression testing, collaborating with customers, providing and obtaining feedback, looking at the big picture, and building a foundation of core agile practices. Learn how to overcome cultural and organizational obstacles to successful testing and discover the critical factors for delivering maximum value to your business.

Lisa Crispin, Ultimate Software
Testing Without Constraints: Service Virtualization

While today's distributed software architectures such as SOA, Software-as-a-Service, and Cloud Computing offer organizations increased agility and new reuse opportunities, they also increase the risk of costly software problems due to constant change and increasing complexity. System testing is constrained by dependency on critical services, systems, and data that may be unavailable or too costly to use. A new approach, Service Virtualization (SV), allows test teams to create “virtual worlds” that emulate software behavior and model functional, data, and performance characteristics in the target production environment. Testers can capture, model, and configure target environments while decreasing their need to access production systems and costly "pay as you go" services.

Rajeev Gupta, iTKO Lisa

Pages

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.