As discussed in the article of Continuous Integration, we studied that daily build and deployment of software is a key practice in Agile teams which requires continuous integration of tools and builds automation tools. Here we will take a look at how build and distribution tools are used in Agile development.
Configuration Management Tools
The configuration management tools in Agile teams for storing and versioning the source code, automated tests, manual test and other test work products. Hence it establishes a transparency and traceability between the versions of software tested in specific environments to help teams habituated to rapid change and they don’t step over each other code. There are 2 types of version control systems – centralized source control systems and distributed version control systems. Based on the team size, structure, location and its necessity for third part integration will determine the right version control to use.
Example of Version Control Tools: SVN, Clear Case, GIT
Test Design, Implementation, and Execution Tools
Tools provide important capabilities of Agile testers given the continuous change in agile projects. There are not many testing tools that only specific to Agile, many of these tools can be used for non-Agile projects as well.
- Test design tools: Usage of tools like mind maps to design and define tests for new feature.
- Test case management tools: The life cycle management tool serves as a good source for test case management tool.
- Test data preparation and generation tools: Tools that generate test data to an application database. They are helpful to re-define the database structure. There are few test data preparation tools that pull raw data from production and remove sensitive data that affects the confidentiality.
- Test data load tools: To load Test data into the application there may be some specific tools needed to save time from manual data entry. Moreover manual data entry is prone to errors. There are some cross data base load techniques like bulk-loading are available using the database management systems.
- Automated test execution tools: Test execution records map the test environment information to the test case. They specify the hardware and software environment for execution. They basically say: Run the test case in this environment, for example, on this particular hardware platform, running this particular operating system, and using this particular browser. To ensure that test case passes when it runs in four different test environments, we can create a test execution automation.
- Exploratory test tools: There is a need for tools that capture and log transactions of an application during exploratory testing and record the actions undertake. For example logging a defect after reproducing it and providing steps to reproduce it in teams environment is very much helpful for the teams to fix the defect quickly.
Cloud Computing and Virtualization Tools
Virtualization is software that separates physical infrastructures to create various dedicated small resources. This software makes it possible to run multiple operating systems and multiple applications on the same server at the same time. This in turn avoids the delay caused due to physical severs, which operates on intelligent load balancing factors. The fundamental technology of Virtualization powers cloud computing. There are few test management tools now utilize operate on cloud computing, which helps testers to share the sever snapshots at the point where a defect/fault is detected, and pass it to the developers to investigate the defect.