Resources

Our notable partnerships give us access to the best resources and tools for the job.

Get software testing training resources:

Below are resources for agile software testing. In software development, agile refers to approaches of project management that strive to unite teams around the principles of collaboration, flexibility, simplicity, transparency, and responsiveness to feedback throughout the entire process of developing a new program or product.


Resources for “Agile”

Articles

A Story about User Stories and Test-Driven Development

By Gertrud Bjørnvig, James O. Coplien, and Neil Harrison

Test-Driven Development, or TDD, is a term used for a popular collection of development techniques in wide use in the Agile community. While testing is part of its name, and though it includes tests, and though it fits in that part of the life cycle usually ascribed to unit testing activity, TDD pundits universally insist that it is not a testing technique, but rather a technique that helps one focus one’s design thinking. The idea is that you write your tests first, and your code second.

Read this article to explore some subtle pitfalls of TDD that have come out of our experience, our consultancy on real projects (all of the conjectured problems are things we have actually seen in practice), and a bit of that rare commodity called common sense.

The original two-part version of this article  about Test Driven Development was published in Better Software Testing.

Continue reading →

A popular article translated into Polish! A number of our clients have adopted Scrum and other Agile methodologies. Every software development lifecycle model, from sequential to spiral to Agile, has  testing implications. Some of these implications ease the testing process. We don't need to worry about these implications here.

Some of these testing implications challenge testing. In this case study, I discuss those challenges so that our client can understand the issues created by the Scrum methodology, and distinguish  those from other types of testing issues that our client faces. 

Continue reading →

Why Most Unit Testing is Waste

By James O Coplien

Unit testing was a staple of the FORTRAN days, when a function was a function and was sometimes worthy of functional testing. Computers computed, and functions and procedures represented units of computation. In those days the dominant design process composed complex external functionality from smaller chunks, which in turn orchestrated yet smaller chunks, and so on down to the level of well-understood primitives. Each layer supported the layers above it. You actually stood a good chance that you could trace the functionality of the things at the bottom, called functions and procedures, to the requirements that gave rise to them out at the human interface. There was hope that a good designer could understand a given function’s business purpose. And it was possible, at least in well-structured code, to reason about the calling tree. You could mentally simulate code execution in a code review. 

Object orientation slowly took the world by storm, and it turned the design world upside-down. First, the design units changed from things-that-computed to small heterogeneous composites called objects that combine several programming artefacts, including functions and data, together inside one wrapper. The object paradigm used classes to wrap several functions together with the specifications of the data global to those functions. The class became a cookie cutter from which objects were created at run time. In a given computing context, the exact function to be called is determined at run-time and cannot be deduced from the source code as it could in FORTRAN. That made it impossible to reason about run-time behaviour of code by inspection alone. You had to run the program to get the faintest idea of what was going on.

So, testing became in again. And it was unit testing with a vengeance. The object community had discovered the value of early feedback, propelled by the increasing speed of machines and by the rise in the number of personal computers. Design became much more data-focused because objects were shaped more by their data structure than by any properties of their methods. The lack of any explicit calling structure made it difficult to place any single function execution in the context of its execution. What little chance there might have been to do so was taken away by polymorphism. So integration testing was out; unit testing was in. System testing was still somewhere there in the background but seemed either to become someone else’s problem or, more dangerously, was run by the same people who wrote the code as kind of a grown-up version of unit testing.

Classes became the units of analysis and, to some degree, of design. CRC cards (popularly representing Classes, Responsibilities, and Collaborators) were a popular design technique where each class was represented by a person. Object orientation became synonymous with anthropomorphic design. Classes additionally became the units of administration, design focus and programming, and their anthropomorphic nature gave the master of each class a yearning to test it. And because few class methods came with the same contextualization that a FORTRAN function did, programmers had to provide context before exercising a method (remember that we don’t test classes and we don’t even test objects — the unit of functional test is a method). Unit tests provided the drivers to take methods through their paces. Mocks provided the context of the environmental state and of the other methods on which the method under test depended. And test environments came with facilities to poise each object in the right state in preparation for the test.

Continue reading →

Seque

By James O Coplien

I guess it’s time for the second installment. My earlier essay started just as a casual reply to a client, but when Rex Black posted it on his web site, it went viral — going to #3 on Reddit and appearing prominently on other social networking amalgamation sites. Since then I’ve had the pleasure of watching the dialog unfold. It’s ranged from profound to just silly and, sadly, the majority of it falls into the latter category. It appears as though there is a very wide mythology, perhaps propelled by industry hope and fuelled by academic programs and consultants desperate to justify their reason to exist.

There have been precious few real arguments against the positions I laid out in the earlier essay, but a lot of emotive disagreement. In this second round I take inspiration from the dialog that ensued from the first round and offer a few more insights and opinions. Forgive me for opining a bit more in this round than in the first, but I had already covered most of the substantial groundings earlier.

Here, I’ll present a very few fundamental arguments against unit testing that in theory should have been in the first article, such as Weinberg’s Law of Decomposition (An Introduction toGeneral Systems Thinking by Gerald Weinberg, 2001). I’ll offer some models that help us reason about QA in general, such as the Venn diagram on testing opportunity. And I’ve looked further into my contacts to find other smells in unit testing, such as the work-in-progress from Magne Jørgensen, and the broader perspective at Toyota that challenges the very idea of testing as we usually think of it. Last, I’ll look at some of the more archetypical responses that the gallery offered on the first round, together with my analysis. These provide a good cross-section of the typical misunderstandings that flood our industry.

Please refer back to Chapter 1 before launching into social media discussions on Chapter 2. You can find the earlier chapter here.

Continue reading →

Mission Made Possible

By Rex Black and Greg Kubaczkowski

Your mission should you choose to accept it: A client needs to implement an integrated, automated unit, component, and integration testing process. The system development teams are spread across 3 continents. They use multiple platforms. Their system architecture is interdependent and complex. Some tests need to be run on an application server. Both static and dynamic testing is required. The process you design must be simple to use, not an additional burden for busy developers. It should be automated and easily integrated. By the way, only 3 designers have been assigned to this mission. You have 6 weeks. Good luck. This message will self-destruct in 20 seconds… 

Continue reading →

Agile Software Development

By Gerry Coleman, edited by Rex Black

As the demand for new technological products grows apace, many companies have adopted Agile methodologies for their software development activity.

The demands on a tester working on projects using Agile methodologies are different to those faced on a traditional software project. Testers on Agile projects, in addition to excellent testing skills, must be able to communicate effectively, interact and collaborate constantly with colleagues, liaise closely with business representatives and work as part of a whole-team responding to early and frequent customer feedback.

To work as part of an Agile software team, testers must first understand the principles and values underpinning the Agile development approach. This section looks at the essential components of Agile software development, explains the advantages of the whole-team approach used in Agile projects and demonstrates the benefits of receiving early and frequent customer feedback.

An excerpt from Agile Testing edited by Rex Black due to be published by BCS Learning & Development in Spring 2017 (subject to change). Section 1.1 by Gerry Coleman. All material is provisional and may be subject to change.

Continue reading →

Project Retrospective

By Rex Black

An excerpt from The Expert Test Manager: Guide to the ISTQB Expert Level Certification book by Rex Black, Jim Rommens and Leo Van Der Aalst due to be published by Rocky Nook. All material is provisional and may be subject to change
 
As a colleague told me once, a good motto for software teams is: "Make interesting new mistakes." His explanation was, since you are human, you'll make mistakes. But you should make interesting ones, ones you can learn from, and you should only make a mistake once.  How do you ensure that you make only interesting new mistakes? By learning from each mistake that you make. How to you learn from each mistake? In this short article, you'll read about a proven technique for learning from mistakes, retrospectives. Useful in both Agile and traditional lifecycles, this simple technique can make you and your colleagues a process improvement machine!
 

Continue reading →

"Back in 2010, at the launch of Core Magazine, http://www.coremag.eu/, I wrote a series of columns to welcome people to the magazine. As a sort of Throw-Back-December, here they are, as they appeared in the original magazine issues. I hope you enjoy them."
-Rex Black
 
Greetings, and welcome to my quarterly column on software testing best practices.  When I was asked to write this column, I had to choose the approach, the theme.  The writers' aphorism says, "Write what you know." So, what do I know?
 
Well, if you know me and my consulting company, RBCS, you know that we spend time with clients around the world, in every possible industry, helping people improve their testing with training or consulting services, or doing testing for them with our outsourcing services.  Our work gives me insights into what goes on, the actual day-to-day practice of software testing.
 

Continue reading →

This is an excerpt from my book, Expert Test Manager, written with James Rommens and Leo van der Aalst. I hope it helps you think more clearly about the test strategies you use.

A test policy contains the mission and objectives of testing along with metrics and goals associated with the effectiveness, efficiency, and satisfaction with which we achieve those objectives. In short, the policy defines why we test. While it might also include some high-level description of the fundamental test process, in general the test policy does not talk about how we test.

The document that describes how we test is the test strategy. In the test strategy, the test group explains how the test policy will be implemented. This document should be a general description that spans multiple projects. While the test strategy can describe how testing is done for all projects, organizations might choose to have separate documents for various types of projects. For example, an organization might have a sequential lifecycle test strategy, an Agile test strategy, and a maintenance test strategy.

Continue reading →

Webinars

Agile Risk based Testing A How to Guide

Recorded November 12, 2014

Agile Testing in the Real World

Recorded December 10, 2013

Agile Testing in the Real World

Recorded February 26, 2013

Agile Testing Opportunities

Recorded March 21, 2012

Agile Testing Challenges

Recorded April 30, 2009

Podcast Episodes

Software testing challenges with Agile 11/16/2009


Length: 1h 30m 21s

Is your company going Agile? What does that mean for testing? What should you expect? Are you curious? Are you excited? A number of companies have adopted Agile methodologies, for various reasons ranging from speed of delivery, flexibility in rapidly changing situations, or just plain trendiness. Every software development lifecycle model, sequential or spiral, incremental or Agile, has testing implications. Some of these implications ease the testing process. Some of these testing implications challenge testing. In this Webinar, Rex Black discusses the key Agile testing challenges, so that you can recognize and resolve these challenges if your company adopts an Agile approach.

Listen now →

Software Testing: Agile Testing Opportunities 3/21/12


Length: 1h 30m 50s

Every lifecycle affects testing, and Agile is no exception. A number of elements of the Agile methodologies can create opportunities for testing, when properly implemented. In this webinar, we'll discuss how nine characteristics of Agile methodologies can turbo-charge your testing, specifically examining: the obvious and not-so-obvious benefits of automated unit testing; how the re-birth of static code analysis makes removing bugs cheap and easy; the use of code coverage metrics to help quantify confidence; the testing benefits of continuous integration; Agile contributions for automated functional testing; how Agile supports high-quality, lightweight requirements; the benefits of stakeholder review of test conditions; reducing the dreaded test crunch with a sustainable workload; and, how Agile methodologies control technical debt and why that matters for testing. In this free webinar, Rex Black discusses the key testing opportunities created by the Agile approach, so that you can recognize and take advantage of them.

Listen now →

Agile Testing Challenges Four Years Later: 9/20/12


Length: 1h 32m 43s

Earlier this year, Rex gave a webinar on how Agile lifecycles create opportunities for testing. Four years ago, Rex gave a presentation on the testing challenges of Agile, first in Auckland, New Zealand and later at various locations around the world. So, what’s changed in the last four years? In this webinar, Rex will revisit his presentation on Agile testing challenges. How are we, as testing professionals, doing in terms of surmounting these challenges? What remains to be done? How can you recognize and manage these challenges in your Agile projects? In this free webinar, Rex will discuss these points and more, helping you be more effective in Agile projects.

Listen now →

Agile Testing in Real World 02/26/13


Length: 1h 31m 10s

Lots of organizations are adopting Agile. Some of these organizations are finding practical ways to integrating testing into Agile lifecycles. In this presentation, Rex will address challenges and opportunities associated with Agile, different ways of adapting Agile lifecycles and the testing within those lifecycles, and how Agile differs from traditional lifecycles. We’ll examine tools and metrics for Agile projects. We’ll address whether Agile can be used for outsourced projects. We’ll look at different options for organizing test teams on Agile projects, and why only some of these options can work. Rex will offer his thoughts on Agile and quality, and what skills and personalities work best in Agile projects. In this free webinar, Rex will discuss these points and more, giving you a better shot at Agile testing success.

Listen now →

Webinar: Agile Testing in the Real World: 12/10/13


Length: 1h 35m 37s

Lots of organizations are adopting agile. Some of these organizations are finding practical ways to integrating testing into agile lifecycles. In this presentation, Rex will address challenges and opportunities associated with agile, different ways of adapting agile lifecycles and the testing within those lifecycles, and how agile differs from traditional lifecycles. We’ll examine tools and metrics for agile projects. We’ll address whether agile can be used for outsourced projects. We’ll look at different options for organizing test teams on agile projects, and why only some of these options can work. Rex will offer his thoughts on agile and quality, and what skills and personalities work best in agile projects. In this free webinar, Rex will discuss these points and more, giving you a better shot at agile testing success.

Listen now →

Is the V model dead, crushed by the onset of agile methods? In the age of agile, are those who talk about the V model anachronistic dinosaurs? Or was the V model actually ahead of its time, illuminating best practices that now form the core of agile testing? In this talk, Rex will show how the fundamental principles of the V model can be successfully applied in the context of an agile development effort, and how the application of those principles make agile software development even more agile. Sure to stir some controversy, attend Rex’s webinar, submit questions and comments, and make up your own mind.

Listen now →

Webinar: Agile Risk-based Testing: A How-to Guide 11/12/14


Length: 1h 35m 53s

Perhaps you, like many software testers and test managers, are enjoying the benefits of incorporating a lightweight analytical risk-based testing strategy such as RBCS’s Pragmatic Risk Analysis and Management (PRAM) technique into your test approach. What if your organization is adopting an agile methodology? Can you still use PRAM and other similar analytical risk-based testing strategies? Absolutely. In this webinar, Rex will explain the process for integrating quality risk identification and assessment into the release and iteration planning processes, and for integrating quality risk mitigation into each iteration. You’ll return to work with a proven method for injecting risk-based testing into your agile processes.

Listen now →

Some people use the terms “verification” and “validation” interchangeably, but there are significant differences between them. Some people disparage verification, or deny that it’s even involved in testing. However, you can’t adequately build confidence and reduce risk in the software you test without using the proper mix of both. In this webinar, Rex will clarify the meaning of these two terms, give examples, and explain why both are essential to proper software testing.

Listen now →

Webinar - Agile Testing in the Real World (Update)


Length: 0h 41m 37s

A majority of software development organizations have adopted Agile methods, but testing in Agile projects remains a major challenge. However, some of these organizations have found practical ways to integrating testing into Agile lifecycles.  In this webinar, Rex will address challenges and opportunities associated with Agile, different ways of adapting Agile lifecycles and the testing within those lifecycles, and how Agile differs from traditional lifecycles.  We’ll examine tools and metrics for Agile projects.  We’ll address whether Agile can be used for outsourced projects.  We’ll look at different options for organizing test teams on Agile projects, and why only some of these options can work.  Rex will offer his thoughts on Agile and quality, and what skills and personalities work best in Agile projects. In this updated free webinar, Rex will discuss these points and more, giving you a better shot at Agile testing success.

Listen now →

Training

ISTQB Foundation Level Extension Agile Tester

This course provides testers and test managers with an understanding of the fundamentals of testing on agile projects. This hands-on course covers the major agile testing techniques via a virtual classroom and assigned exercises. This course was accredited by the ASTQB July 2014. The course follows the ISTQB Foundation Level Extension Agile Tester Syllabus 2014.

View details →

ISTQB Virtual Foundation Level Extension Agile Tester

This course provides testers and test managers with an understanding of the fundamentals of testing on agile projects. This hands-on course covers the major agile testing techniques via a virtual classroom and assigned exercises. This course was accredited by the ASTQB July 2014. The course follows the ISTQB Foundation Level Extension Agile Tester Syllabus 2014.

View details →

ISTQB Virtual Advanced Test Automation Engineer Boot Camp

The Advanced Test Automation Engineer Boot Camp, created by Rex Black, past President of the International Software Testing Qualifications Board (ISTQB), past President of the American Software Testing Qualifications Board (ASTQB) and co-author of a number of International Software Testing Qualifications Board syllabi, is ideal for testers and test teams preparing for certification in a short timeframe with time and money constraints.

View details →


Copyright ® 2017 Rex Black Consulting Services.
All Rights Reserved.
ISTQB Logo ASTQB Logo IREB Logo PMI Logo ISTQB Logo
PMI is a registered mark of the Project Management Institute, Inc.