Category Archives: Articles

Agile Software Testing with James Bach

James Bach is seen as one the key Thought Leaders in the Software Industry and is one very interesting guy to listen to. In this insightful video he discusses Agile Software Testing.

Agile Software Testing

“Agile development recognises that testing is not a separate phase, but an integral part of software development, along with coding. Agile teams use a “whole-team” approach to “baking quality in” to the software product. Testers on agile teams lend their expertise in eliciting examples of desired behaviour from customers, collaborating with the development team to turn those into executable specifications that guide coding. Testing and coding are done incrementally and iteratively, building up each feature until it provides enough value to release to production. Agile testing covers all types of testing. The Agile Testing Quadrants provide a helpful taxonomy to help teams identify and plan the testing needed.” –

For more on Agile Software check out the Agile Software Development manifesto.

“What is Software Testing” Chapter 2

Software testing isn’t just about finding bugs, or surprisingly about giving developers headaches (those poor developers). As we’ve mentioned before, there’s much more to testing than uncovering those creepy-crawlies.

In short, here are the objectives of testing:

1.  Identification: Identify defects in the software.

canada goose down mittens for women canada goose authentic outlet 2 cialis apothekenpreis.  Confidence: Enable stakeholders to gain confidence in the system’s level of quality.

3.  Decision-making: Provide information for decision-making.

4.  Prevention: Prevent future bugs by improving the development process and standards.

These “whys” of software testing can be remembered with the acronym ICDP (Identification, Confidence, Decision-making, Prevention). The other three are fairly self-explanatory, but decision-making merits a bit more discussion.

So how can software testing help with decision-making?

Think about a software project that almost everyone has considered: building a website. You want something nice, so you hire a team of professionals to make one for you. When you get to testing the new site, everything looks great… but it takes 30 seconds to load. The results of the performance test now prompt you to do some decision-making. In this case, you decide to buy a dedicated server to host your website.

Take a popular social media site for example. They got as far as beta testing with their face-search feature. The reaction from initial users then provided the feedback necessary for them to pull the feature. Beta testing here lead directly to a decision to drop the new feature.

After those examples, hopefully you have a pretty good idea of how software testing contributes to decision-making, the “D” of ICDP. And if you’ve got your head wrapped around ICDP, then you have a pretty good idea of the “why” of software testing. In the next chapter we’ll look at the “what”.

When most people think about software testing, they’ll think of running tests on the software code. While that’s part of the process, we need more to get the whole picture. Software testing activities also include:

*                Planning the approach to software testing

*                Manually reviewing project documents like specifications and code

*                Using automated tools to scan for defects

*                Setting up test conditions like sample data, Internet access, etc.

*                Designing and coding test cases that try out particular features of the system

*                Verifying results

*                Evaluating results to determine whether the project can progress to the next phase, should stay where it is, or whether it even needs to go back a step or two

*                Reporting test results about the software under scrutiny, and about the testing process itself (such as feedback on the appropriateness of testing, recommendations for future tests, etc.)

*                Housekeeping activities like sign-offs that are part of the test phase finalization


You may have noticed that debugging is not on the list. Debugging is not actually a software testing activity (although FINDING bugs and their causes is); it’s a development activity. In a perfect world, testers would find the bugs and developers would fix them as part of the normal process for addressing defects. Software testers just need to figure out what, exactly, needs to be fixed – which is often quite a tricky problem in itself.

With that we conclude our overview of the “what” of software testing.

What is Software Testing?

This article is Chapter 2 from “What is Software Testing?”, the Software Testing and ISTQB Foundation companion guide from