International Agile Tester Foundation

Steen Lerche-Jensen

3.4 Tools in Agile Projects

Figure: Many different tools are used in Agile projects...

Many different tools are used in Agile Projects, also the tools we know from traditional testing, but sometimes they are used in a different way. On some Agile projects, an all-inclusive toolbox is chosen, such as Application Lifecycle Management or a Task Management solution. They provide a generic package of relevant tool features. Other useful tools available are Task Boards, Burndown Charts and User Stories Backlogs. However, traditional tools like Test Management tools, Requirements tools, and Defect Management tools are still used by many Agile Teams with good results.
There are also some special tools that Agile Teams who do lots of automated tests will value, and they include a Configuration Management tool, which will support the automation of tests in their proper environment. Tools to help with team collaboration are also important, as they facilitate the sharing of information within the Agile Team, which is fundamental to the Agile approach.
Let us have a look at some key features of selected tools.

3.4.1 Task Management and Tracking Tools

Figure: Kanban process. For Key, see earlier.

Some teams use physical task boards to manage and track the User Stories during the Sprint, other Agile projects use tools to support the process, and some teams even have electronic task boards connected to an application. However, no matter how fancy your solution, the Agile Team using it has to achieve the following outputs [ISTQB syllabus]:

  • Record stories and their relevant development and test tasks, to ensure that nothing gets lost during a Sprint
  • Capture team members’ estimates of their tasks and automatically calculate the effort required to implement a story, to support efficient iteration planning sessions
  • Associate development tasks and test tasks with the same story, to provide a complete picture of the team’s effort required to implement the story
  • Aggregate developer and tester updates to the task status as they complete their work, automatically providing a current calculated snapshot of the status of each story, the iteration, and the overall release
  • Provide a visual representation (via metrics, charts, and dashboards) of the current state of each User Story, the iteration, and the release, allowing all stakeholders, including people on geographically distributed teams, to quickly check status
  • Integrate with configuration management tools, which can allow automated recording of code check-ins and builds against tasks, and, in some cases, automated status updates for tasks.

3.4.2 Communication and Information Sharing Tools

Information sharing is very important in Agile Teams so they can collaborate in an effective way. Agile Teams use verbal communication, email, and chat solutions like Skype, Messenger, Lync and Instant Messaging, but also wikis and desktop sharing.

Figure: A Wiki is a useful tool.

  • Wikis: used for diagrams, discussions, photos of whiteboard drawings; a scrapbook of useful tools and techniques; metrics, charts, and dashboards on product status; recording conversations.
  • Instant messaging: used for direct communication between teams, groups, and pairs; support for distributed teams; saving money via VOIP.
  • Desktop sharing: used for product demonstrations, code reviews, and pairing; recording product demonstrations.

3.4.3 Software Build and Distribution Tools

Daily build and deployment are a key factor for success in Agile projects, and as we have described earlier, also Continuous Integration tools and Build Distribution tools are used.

Example of Continuous Integration (CI), showing Source Control, Initiate CI Process, Build, Test, Testing, Report, Development, Commit.

  • Continuous Integration tools provide:
    • Quick feedback code quality
    • Stepwise integration of systems
    • Visibility on build status and history
    • Automatic reporting
  • Automatic deployment tools can:
    • Locate and install appropriate build in test environment
    • Reduce errors and delays of hand installation.

3.4.4 Configuration Management Tool

Configuration Management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, the functional and physical attributes within its requirements, and design and operational information throughout its lifecycle. For this process, we use:

  • Configuration management tools:
    • Store source code, automated tests, manual tests, and other test work products
    • Provide traceability between versions of software and the tests used
    • Allow rapid change while saving historical information

3.4.5 Test Design, Implementation, and Execution Tools

Tools used by Agile Testers for these purposes include:

  • Mind maps for test design tools: This tool helps organizing a mind map. A mind map is a diagram used to visually organize information. A mind map is often created around a single concept, drawn as an image in the center of a blank landscape page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those. This can be a very useful in connection with exploratory testing.

How to Create a Mindmap. For Key, see earlier.

  • Application lifecycle management or task management for test case management tools: These tools are used by the tester for management of test cases, and can be part of the whole team’s management toolbox.

Application Lifecycle Management (ALM), called also Application Development Lifecycle Management (ADLM), involves the product lifecycle management of application software― including governance, development, and maintenance. In Agile we will see lightweight solutions for this in the tools. They include requirements management, software architecture, computer programming, software testing, software maintenance, change management, Continuous Integration, project management, and release management.

  • Test data preparation, generation, load, validation, and tools for making data anonymous: These tools generate data for testing purposes and in Agile projects that is important because you test and build daily, and the lifecycle for the iteration is normally short. Therefore, the team need good tools to help with the constant stream of data generation tasks.
  • Automated test execution tool: These tools support behavior-driven development, test-driven development, and acceptance test-driven development.

Figure: Test-driven Development. For Key, see earlier.

  • Exploratory test tools: These tools, which capture and log activities performed on an application during an exploratory test session, are beneficial to the tester and developer, as they record the actions taken.

Agile Teams can use many other tools for test design, implementation and execution, and there are many open-source options available.

3.4.6 Cloud Computing and Virtualization Tools

Figure: Computing in the Cloud.

These tools are used for:

  • Virtualization can increase the test resources available
  • Setting up a new test environment can be quick and sometimes cheap
  • Known good configurations can be saved prior to installing a new release.

In addition to server virtualization, service virtualization, client virtualization, and data virtualization can be useful for testers.

Previous Chapter Next Chapter

Use the promo code: atfacademy10 and get 10% discount for the International Agile Tester Foundation Certification