Below you will find the answers to some of the most frequently asked questions on configuration management, CM software, and CM in both IT and software testing.
Configuration management (CM) is a technical management discipline used to track changes during the development or use of complex systems. The goal of configuration management is to establish and maintain consistent product performance, function, and operation, throughout the product's life.
Put more concisely, configuration management seeks to make sure all parts of a system are performing as they should be until they are updated, removed, or replaced.
Configuration management is important because it allows you to know crucial information about any system or part of a system at any given time. This enables you to pinpoint configuration changes, new software or hardware, or other events that might have positive or negative impact on performance, function, or operation of the system.
The industries that most commonly use configuration management are the civil and industrial engineering, military, and information technology (IT) industries.
Originally developed for the military in the early 1950s, CM is still used by military engineers to manage changes throughout the lifecycle of complex weapon, vehicle, and information systems.
Today however, configuration management most commonly refers to the information technology (IT) space and is also known as Service Asset and Configuration Management.
In addition, the configuration management discipline is also commonly found in non-military engineering domains of both civil and industrial engineering.
For the purpose of this article we will be focusing on IT related configuration management and tools.
When it comes to Information Technology (IT), configuration management is the process by which the IT team tracks and monitors every individual configuration item (CI) that makes up an IT system.
Sounds complicated? It honestly is not as complex as it sounds.
But before we simplify this definition, we first must clarify what a configuration item (or CI) is (see below).
A configuration item (CI) is any IT asset or combination of IT assets that depend on and/or interact with other IT assets or processes.
Again, this may sound more complicated than it is, so we will explain by example: A modem (an IT asset) connects an organization's network to the Internet, a router (an IT asset) connects an employee’s laptop (an IT asset) to both the network as well as the printer (another IT asset).
So in this example a configuration item would include: the modem, the router, the laptop, and the printer. They interact with, or are dependent on, each other because: If the printer or laptop is not connected to the router, the laptop will not be able to print. Likewise if the modem is not connecting the network to the Internet, the laptop will not be able to access the Internet.
In this example, configuration management would be monitoring each CI that makes up the network system.
Configuration items are inventoried, recorded, and tracked in what is known as a configuration management database (CMDB). The database tracks both the CI itself as well as any relationship with other CIs in the database.
A CMBD is a database that companies use to track information about configuration items as well as the relationship between, and configurations of, these items. A CMDB tracks hardware, software, systems, facilities, and people, to get a snapshot of their given configurations at specific points in time.
For example: If a CI stops working on Wednesday, IT can look to see if anything changed in the CI or other CIs interacting with it, prior to that date to pinpoint a root cause.
CMDBs are critical when it comes to IT analysis and decision making, as they allow IT professionals to quickly determine dependencies that exist between processes, people, hardware, software, and infrastructure both for the purpose of optimization as well as for error prevention and problem resolution.
In other words, CMDB makes it easier for IT teams to identify potential issues before they occur and fix those issues if they do occur.
1. Technical Data:
Technical data that fully describe the configuration item such as software settings, software version, model numbers, manufacturer, operating system, network connection speed and type, and other details like hardware are all recorded. Is the printer a Canon, or a Brother, or a Lexmark, what make/model etc., would all be recorded.
2. Ownership Data:
Ownership information such as purchase date and time, warranty information, point of sale (where it was purchased), cost of the item, and who is responsible for the item are all tracked.
3. Relationship Data:
This is data that describes the relationship between CIs, and tracks the hardware (printer), the software (drivers) and the user (John).
Configuration management software is any application or program that aids the IT team in ensuring that all CI in a system is working as intended. This could include network monitoring software which makes sure the network is functioning as it should.
Configuration management software is the software (or application) used to track changes in the configuration management system.
Although they sound the same, they are actually quite different.
Software configuration management is the process by which changes in software are tracked and controlled by a software engineering team, this is a type of configuration management.
Configuration management in software testing seeks to ensure that all software to be tested (also known as testware) are clearly identified, version control systems are in place (to monitor and track source code changes), and that any changes to development items can be traced easily throughout the testing process. Also proper documentation is key so that it is clear what changes were made and when.
There are many reasons to use CM in software testing, including but not limited to:
1. To clearly understand what source code, scripts, third-party software, and hardware may be impacted by any changes during development.
2. To allow testers to manage and test all changes in a controlled environment, making sure that systems have the same configuration to fully test before deployment.
3. To facilitate the delivery of test items during the build process. Rather than sharing test items via email or other inappropriate methods.
To have detailed records of all changes made so that if something breaks, the breakpoint can be quickly identified and fixed.
Remote configuration management is when an engineer or technician can check a product or configuration item without being onsite, so that they can identify particular issues. For example, when you have problems with your Internet, technicians can usually check setting such as your browser, modem type, and more without coming to your house.
Put simply, it is when CM is done remotely.