Agile Methods and Software Testing

Agile methods were developed as a response to the issues that waterfall and V-model methodologies had with defining requirements and delivering a product that turned out to be not what the end user actually wanted and needed.

From www.agiletesting.com.au

A software tester’s role in traditional software development methodology, a.k.a waterfall & the V-model can be generally summarized as:

  • Finding defects in development products, such as requirements and design documents
  • Proving that the software meets these requirements
  • Finding where the software under test breaks (whether that is through verification of requirements or validation that it is fit for purpose)

So, what are we really talking about when we use the term “Agile” and what are the implications for a software tester? A tester’s life in a waterfall or V-model based software project world is, for most traditionally trained testers, the basic process they steps they perform are similar to the following:

  • You receive a requirements document which you proceed to review
  • You eventually get a requirements document that is considered baseline or signed-off
  • You analyze these requirements to create test conditions and test cases
  • You write your test procedures
  • You then wait for a piece of software to miraculously appear in your test environment
  • You now start executing your tests
  • Oh and now you begin re-executing some of these tests as you now start iterating through new builds which are released to fix bugs or they may even include new functionality
  • You then reach the acceptable risk = enough testing point (or the fixed immovable deadline) and the software is released

Now, while all the above sounds logical and “easy” to do, the real world we live in makes it not quite so straight
forward! Requirements are never complete and there are always ambiguities to deal with. The worst case is the
software meets its specifications but doesn’t meet the user needs.

Wouldn’t it be better to build smaller parts of the system, have the business work with the developers and testers to confirm that what’s being built is indeed what they want and need? So let’s build the system in small increments, increasing the systems functionality in each release, and deliver a working system at the end of each increment that actually meets the end user needs. Say hello to “Agile”!

Software development is currently having a “passionate affair” with the term Agile. Unless you have been trekking in the Andes for the past 5 years, you will no doubt have heard somebody in your organization talking about Agile software development or read about some aspect of Agile on any number of software development and technology related web sites.

The trend in adoption of an Agile based methods has increased significantly and Forrester Research [2005] reported:

Agile software development processes are in use at 14% of North American and European enterprises, and another 19% of enterprises are either interested in adopting Agile or already planning to do so.

Agile software development methodologies appeared in the early 1990’s and since then a variety of Agile methodologies such as XP, SCRUM, DSDM, FDD and Crystal, to name but a few, have been developed.

The creators of many of these processes came together in 2001 and created the “Agile Manifesto” which summarized their views on a better way of building software.
Testing from the beginning of the start of the project and continually testing throughout the project lifecycle, is the foundation on which Agile testing is built. Every practice, technique or method is focused on this one clear goal.
So what does testing now need to know and do to work effectively within a team to deliver a system using an Agile method?

The concept of “the team being responsible for quality” i.e. “the whole team concept” and not just the testing team, is a key value of Agile methods.

Agile methods need the development team to write unit tests and/or following Test First Design (TDD) practices (don’t confuse TDD as a test activity as in fact it is a mechanism to help with designing the code). The goal here is to get as much feedback on code and build quality as early as possible.

The desire for information earlier in the development phase requires monitoring the current code and build quality of the latest checked code. This requirement leads to the use of continuous build and integration practices which provide feedback every time code is checked into the code repository and the system is built, usually on a daily basis.

Brett Pettichord defined the role of testing within Agile projects as:

  • Testing is the headlights of the project – where are you now? Where are you headed?
  • Testing provides information to the team – allowing the team to make informed decisions
  • A “bug” is anything that could bug a user – testers don’t make the final call
  • Testing does not assure quality – the team does (or doesn’t)
  • Testing is not a game of “gotcha” – find ways to set goals, rather than focusing on mistakes

The article, “Agile testing – changing the role of testers” looks at the difference between a tester on an Agile project, versus a tester on a traditional V-model project.

The key challenges for a tester on an Agile project are:

  • No traditional style business requirements or functional specification documents. We have small documents (story cards developed from the 4×4 inch cards) which only detail one feature. Any additional details about the feature are captured via collaborative meetings and discussions.
  • You will be testing as early as practical and continuously throughout the lifecycle so expect that the code won’t be complete and is probably still being written
  • Your acceptance test cases are part of the requirements analysis process as you are developing them before the software is developed
  • The development team has a responsibility to create automated unit tests which can be run against the code every time a build is performed
  • With multiple code deliveries during the iteration, your regression testing requirements have now significantly increased and without test automation support, your ability to maintain a consistent level of regression coverage will significantly decrease

The role of a tester in an Agile project requires a wider variety of skills:

  • Domain knowledge about the system under test
  • The ability to understanding the technology be used
  • A level of technical competency to be able to interact effective with the development team
LogiGear Corporation

LogiGear Corporation provides global solutions for software testing, and offers public and corporate software-testing training programs worldwide through LogiGear University. LogiGear is a leader in the integration of test automation, offshore resources and US project management for fast and cost-effective results. Since 1994, LogiGear has worked with hundreds of companies from the Fortune 500 to early-stage startups, creating unique solutions to exactly meet their needs. With facilities in the US and Vietnam, LogiGear helps companies double their test coverage and improve software quality while reducing testing time and cutting costs.

For more information, contact Joe Hughes + 01 650.572.1400

LogiGear Corporation
LogiGear Corporation provides global solutions for software testing, and offers public and corporate software testing training programs worldwide through LogiGear University. LogiGear is a leader in the integration of test automation, offshore resources and US project management for fast, cost-effective results. Since 1994, LogiGear has worked with Fortune 500 companies to early-stage start-ups in, creating unique solutions to meet their clients’ needs. With facilities in the US and Viet Nam, LogiGear helps companies double their test coverage and improve software quality while reducing testing time and cutting costs.

The Related Post

The sprint is almost over; the burn-down chart has not budged. The test team sits around waiting. They hear about all kinds of issues, obstacles and impediments at the daily stand-up but there is no code to test. Closing in on the demo and sprint review… then at Wednesday’s stand up: the heroes arrive and ...
Video narrated by MICHAEL HACKETT – Certified ScrumMaster This is Part Four of a Four Part Video on “New Roles for Traditional Testers in Agile Development” Michael shares his thoughts on “A Primer – New Roles for Traditional Testers in Agile”   LogiGear Corporation  LogiGear Corporation LogiGear Corporation provides global solutions for software testing, and ...
Agile is a philosophy focused on delivering constant value to customers incrementally and frequently, based on communication and feedback. These two ingredients are vital to a successful Agile recipe. Agile is no longer a buzzword or an unknown territory in the industry. Agile has progressed leaps and bounds the last few years and has matured to ...
Agile, in terms of software development, has incorrectly and for too long come to mean fast and “getting product out the door quicker.” But Agile is not about speed; it is about being flexible. I always begin my discussions on Agile development by getting a definition for the word Agile. Agile, in terms of software development, ...
In the decade since the Agile Manifesto, the movement has encouraged a number of best practices like test-driven development, user-centered design, iterative development, clean code, refactoring, continuous integration, and—arguably—cloud computing. I’m a card-carrying Agile zealot, and to me its benefits are unarguable. Is your IT organization ready to be Agile, seriously? Score yourself on these ...
Janet Gregory draws from her own experience in helping agile teams address alternative ways to cope with roadblocks including projects without clear documentation, testers with limited domain knowledge and dealing with either black box or white box testing. For testing on projects without clear documentation, is exploratory the only method? I often make “tester errors” ...
To begin this article, it would be a good idea to, remember this key point: Agile Manifesto Value #1 Individuals and interactions over processes and tools Tools work at the service of people. People, particularly intelligent people, can never be slaves to tools. People talking to each other, working together and solving problems is much ...
SKILLS Agile teams need training! One of the missing links in the implementation of Agile development methods is the lack of training for teams. I noticed in our recent survey on Agile that only 47% of the respondents answered “Yes” that they had been trained in the Agile development process, with over half responding “No.” ...
Video narrated by MICHAEL HACKETT – Certified ScrumMaster This is Part Two Continued of a Four Part Video on “New Roles for Traditional Testers in Agile Development” Michael shares his thoughts on “A Primer – New Roles for Traditional Testers in Agile” LogiGear Corporation LogiGear Corporation LogiGear Corporation provides global solutions for software testing, and ...
There is a multitude of Agile testing techniques that are quite sophisticated. The DAD process can help guide your process of tailoring decisions. Agile developers are said to be quality infected, and disciplined agilists strive to validate their work to the best of their ability. As a result they are finding ways to bring testing and ...
Video narrated by MICHAEL HACKETT – Certified ScrumMaster This is Part Two of a Four Part Video on “New Roles for Traditional Testers in Agile Development” Michael shares his thoughts on “A Primer – New Roles for Traditional Testers in Agile”  LogiGear Corporation LogiGear Corporation LogiGear Corporation provides global solutions for software testing, and offers ...
Video narrated by MICHAEL HACKETT – Certified ScrumMaster This is Part Three of a Four Part Video on “New Roles for Traditional Testers in Agile Development” Michael shares his thoughts on “A Primer – New Roles for Traditional Testers in Agile”   LogiGear Corporation  LogiGear Corporation LogiGear Corporation provides global solutions for software testing, and ...

Leave a Reply

Your email address will not be published.

Stay in the loop with the lastest
software testing news

Subscribe