Better Software Magazine Articles

Reports of the Death of Testing Have Been Greatly Exaggerated

Some say testing is dead. Others argue that it's indispensable. Lee Copeland says that both sides are valid—if you keep their contexts in mind.

Lee Copeland's picture Lee Copeland
The Four Horsemen of the Testing Apocalypse

Much like the biblical horsemen of Pestilence, War, Famine, and Death, the "Four Horsemen of the Testing Apocalypse" ride into our lives and work bearing great challenges. If the software of tomorrow is to be better than the software of today, we must face these foes directly.

James Whittaker's picture James Whittaker
From One Expert to Another: Dan Wellman

Steve Berczuk speaks with Dan Wellman about the agile practice of test-driven development (TDD), including prerequisites to instituting TDD, the technical and cultural challenges to using it, and some ideal (and not-so-ideal) contexts for it.

Steve Berczuk's picture Steve Berczuk
New Skills for Software Testers and Software QA Engineers: 2013 … and Beyond!

Let's take a look into the future—all the way to the year 2013! As a software tester or software quality engineer, are you planning to learn a new skill in the new year. If you are, make sure you approach it in a way that will make that skill stick.

Matthew Heusser's picture Matthew Heusser
7 Core Practices of Agile Test Automation

Software test automation has been around for a while, but it faces some specific challenges in an agile environment. Here are seven practices that will help you get the most out of your test automation within agile's short development cycles.

Rajini  Padmanaban's picture Rajini Padmanaban
Specification-by-Example: A Cucumber Implementation
Slideshow

We've all been there. You work incredibly hard to develop a feature and design tests based on written requirements. You build a detailed test plan that aligns the tests with the software and the documented business needs. When you put the tests to the software, it all falls apart because the requirements were updated without informing everyone. But help is at hand. Enter business-driven development and Cucumber, a tool for running automated acceptance tests. Join Mary Thorn as she explores the nuances of Cucumber and shows you how to implement specification-by-example, behavior-driven development, and agile acceptance testing. By fostering collaboration for implementing active requirements via a common language and format, Cucumber bridges the communication gap between business stakeholders and implementation teams.

Mary Thorn, Deutsche Bank
Test Automation on Large Agile Projects: It's Not a Cakewalk

Automating regression testing on large-scale agile projects with multiple independent Scrum teams is not a cake walk. Because there is no single "test team" that performs all the testing-each Scrum team develops and runs independent tests, gaps arise as different automation implementations spring up. One team adds a new function which breaks automated tests, setting back the progress of other teams. Scott Schnier reviews one organization's journey developing a "test community of practice" to coordinate test development and maintenance across Scrum teams. Scott shares the lessons they learned, particularly selecting tools compatible with other developer and tester needs. Learn how Scott extended the JUnit framework to support automated functional testing and how his teams keep the standard that a user story is not really done until all its tests are "green" in the continuous integration, regression test pipeline.

Scott Schnier, Agilex Technologies
Orthogonal Defect Classification: An Agile Test/QA Primer
Slideshow

Can defect root cause analysis be made agile? Can we transform a multi-hour task from the classical world of software engineering into one that takes minutes and yields greater insights? Learn how Orthogonal Defect Classification (ODC) extracts semantics from defects and turns them into insights on the development process using analytics. After a quick overview of ODC, Ram Chillarege presents a case study to illustrate the method using real-world data on an agile project. They used ODC Triggers to measure test effectiveness at the end of every sprint to evaluate the effectiveness of testing compared to earlier sprints. This ODC process takes just minutes and brings its insight into the realm of the agile development practices. Put a powerful analytical technique in your agile toolbox to increase the velocity of your agile project and find new ways to reduce defects while measuring the quality of testing.

Ram Chillarege, Chillarege Inc.
Tune Agile Test Strategies to Project and Product Maturity
Slideshow

For optimum results, you need to tune agile project's test strategies to fit the different stages of project and product maturity. Testing tasks and activities should be lean enough to avoid unnecessary bottlenecks and robust enough to meet your testing goals. Exploring what "quality" means for various stakeholder groups, Anna Royzman describes testing methods and styles that fit best along the maturity continuum. Anna shares her insights on strategic ways to use test automation, when and how to leverage exploratory testing as a team activity, ways to prepare for live pilots and demos of the real product, approaches to refine test coverage based on customer feedback, and techniques for designing a production "safety net" suite of automated tests. Leave with a better understanding of how to satisfy your stakeholders’ needs for quality-and a roadmap for tuning your agile test strategies.

Anna Royzman, Liquidnet Holdings, Inc.
Mock Objects: From Concept to Code
Slideshow

Mock objects are simulated objects that mimic the behavior of real objects in controlled ways. Because many code modules interact with external entities-things like databases, networks, file systems, third-party frameworks, and even the clock-these entities often cause us big-time trouble during unit testing. These entities can slow down our unit tests, produce unpredictable results, and have dangerous side effects. The best unit tests are decoupled from these external entities. Rather than try to control the entities, you can create mock objects to simulate their functionality. With a tangible example in the form of a short play, Rob Myers introduces mock objects and provides a brief history of their "relatives"-stubs and fakes. Then, with an animated, nearly-worst-case example, Rob presents code he developed to "mock out" nasty dependencies and create safe, predictable unit tests.

Rob Myers, Agile Institute

Pages

AgileConnection is a TechWell community.

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