You are on page 1of 70

CH 4 - Test Management

Test organization
• A test organization defines who is responsible for what activity in the test
process.

• The organization defines the test functions, test facilities and test activities.

• It defines the competencies and knowledge of the people involved.


Test organization

Test manager/Lead

Tester Technical
Expert

Test Automation Test


Test Designer
Engineer Administrator
Test Manager/Lead
He/she plans , monitors and controls the test project.
Skills :
- S/W test and quality management
- Test planning and control
- Experience as project leader.

Test Designer
Designs the necessary test cases and sets up the
order of execution.
Skills :
- Development and testing knowledge
- Knowledge on specification based techniques
- Knowledge on functional requirements
Test Automation Tester
Evaluates the possibility and necessity of the test
automation.
Skills :
- Experience as a tester
- Programming skills
- Excellent skills in operating the applied tools.

Test System administrator


Set up test environment so that it meets the system
requirements.
Skills :
- System administration experience.
- Knowledge on development and testing tools.
- Installation and operation of various system
softwares.
Tester

Executes tests in accordance with test case specifications.

Skills :

- Basic knowledge of software and testing knowledge

- Operation of testing tools

- Experience in conducting tests

Technical Expert

Support the test team where necessary.

Skills :

- Database Administration

- Networking Experts

- Security experts
Test Planning
Test Plan
• A Test Plan is a detailed document that describes the test strategy, objectives, schedule,
estimation, deliverables, and resources required to perform testing for a software
product. Test Plan helps us determine the effort needed to validate the quality of the
application under test.
• The test plan serves as a blueprint to conduct software testing activities as a defined
process, which is minutely monitored and controlled by the test manager.
• Test Plan is A document describing the scope, approach, resources, and schedule of
intended test activities.
In a meeting, you want to discuss the Test Plan with the
Test Plan scenario:
team members, but they are not interested

Manager Employee

In such case, what will you do? Select your


answer as following figure
Importance of Test Plan

• Help people outside the test team such as developers, business


managers, customers understand the details of testing.

• Test Plan guides our thinking. It is like a rule book, which needs
to be followed.

• Important aspects like test estimation, test scope, Test


Strategy are documented in Test Plan, so it can be reviewed by
Management Team and re-used for other projects.
Test planning process :
1. Analyze the product
How can you test a product without any information about it? The answer is Impossible.
You must learn a product thoroughly before testing it.
• Who will use the product?
• What is it used for?
• How will it work?
• What are software/ hardware the product
uses?
2. Develop Test Strategy

Test Strategy is a critical step in making a Test Plan in Software Testing. A Test Strategy
document, is a high-level document, which is usually developed by Test Manager.
This document defines:
• The project’s testing objectives and the means to achieve them
• Determines testing effort and costs

For example, you need to develop Test Strategy for testing that banking website. You
should follow steps below
Step 2.1) Define Scope of Testing

• Before the start of any test activity, scope of the testing should be known. You must
think hard about it.

• The components of the system to be tested (hardware, software, middleware, etc.) are
defined as “in scope“

• The components of the system that will not be tested also need to be clearly defined as
being “out of scope.”

• Defining the scope of your testing project is very important for all stakeholders. A
precise scope helps you

- Give everyone a confidence & accurate information of the testing you are doing
- All project members will have a clear understanding about what is tested and
what is not
Step 2.2) Identify Testing Type
• A Testing Type is a standard test procedure that gives an expected test outcome.
• Each testing type is formulated to identify a specific type of product bugs.
• But, all Testing Types are aimed at achieving one common goal “Early detection of all
the defects before releasing the product to the customer”
• The commonly used testing types are described as following figure
Step 2.3) Document Risk & Issues
Risk is future’s uncertain event with a probability of occurrence and a potential for loss.
When the risk actually happens, it becomes the ‘issue’.

Risk Mitigation

Team member lack the required skills Plan training course to skill up your
for website testing. members

The project schedule is too tight; it’s Set Test Priority for each of the test
hard to complete this project on time activity.

Test Manager has poor management Plan leadership training for manager
skill

A lack of cooperation negatively Encourage each team member in his


affects your employees’ productivity task, and inspire them to greater
efforts.

Establish the scope before beginning


Wrong budget estimate and cost work, pay a lot of attention to project
overruns planning and constantly track and
measure the progress
Step 2.4) Create Test Logistics
In Test Logistics, the Test Manager should answer the following questions:
•Who will test?
•When will the test occur?

Who will test?


Person having the following skills is most ideal for performing software testing:
• Ability to understand customers point of view
• Strong desire for quality
• Attention to detail
• Good cooperation
When will the test occur?
Test activities must be matched with associated development activities.
You will start to test when you have all required items shown in following figure
3. Define Test Objective

• Test Objective is the overall goal and achievement of the test execution.

• The objective of the testing is finding as many software defects as possible; ensure
that the software under test is bug free before release.

To define the test objectives, you should do 2 following steps:

1. List all the software features (functionality, performance, GUI…) which may need to
test.
2. Define the target or the goal of the test based on above features
4. Define Test Criteria

Test Criteria is a standard or rule on which a test procedure or test judgment can be
based.
There’re 2 types of test criteria as following :
1. Suspension Criteria

• Specify the critical suspension criteria


for a test.
• If the suspension criteria are met
during testing, the active test cycle
will be suspended until the criteria
are resolved.

Test Plan Example: If your team members


report that there are 40% of test cases
failed, you should suspend testing until
the development team fixes all the failed
cases.
2. Exit Criteria

• It specifies the criteria that denote a successful completion of a test phase.


• The exit criteria are the targeted results of the test and are necessary before
proceeding to the next phase of development.
• Example: 95% of all critical test cases must pass.

Some methods of defining exit criteria are by specifying a targeted run


rate and pass rate.

• Run rate is ratio between number test cases executed/total test


cases of test specification. For example, the test specification has total
120 TCs, but the tester only executed 100 TCs, So the run rate is
100/120 = 0.83 (83%)

• Pass rate is ratio between numbers test cases passed / test cases
executed. For example, in above 100 TCs executed, there’re 80 TCs that
passed, so the pass rate is 80/100 = 0.8 (80%)

This data can be retrieved in Test Metric documents.


Run rate is mandatory to be 100% unless a clear reason is given.
Pass rate is dependent on project scope, but achieving high pass rate is a goal.
5. Resource Planning
Resource plan is a detailed summary of all types of resources required to complete project
task. Resource could be human, equipment and materials needed to complete a project
The resource planning is important factor of the test planning because helps
in determining the number of resources (employee, equipment…) to be used for the
project. Therefore, the Test Manager can make the correct schedule & estimation for the
project. Member Tasks
• Manage the whole project
Test Manager • Define project directions
• Acquire appropriate resources

• Identifying and describing appropriate test techniques/tools/automation


Human Resource architecture
• Verify and assess the Test Approach
• Execute the tests, Log results, Report the defects.
Tester
• Tester could be in-sourced or out-sourced members, base on the project
budget
• For the task which required low skill, I recommend you
choose outsourced members to save project cost.

Developer in Test • Implement the test cases, test program, test suite etc.

• Builds up and ensures Test Environment and assets


Test Administrator are managed and maintained
• Support Tester to use the test environment for test execution

• Take in charge of quality assurance


SQA members • Check to confirm whether the testing process is meeting specified
requirements
For example, testing a web application, you should plan the resources as following tables:

Resources Descriptions

Install the web application under test


Server This includes a separate web server, database
server, and application server if applicable

System Resource
The testing tool is to automate the testing,
simulate the user operation, generate the test
Test tool results
There are tons of test tools you can use for this
project such as Selenium, QTP…etc.

You need a Network include LAN and Internet


Network to simulate the real business and user
environment
The PC which users often use to connect the
Computer
web server
6. Plan Test Environment

Test Environment :

• A testing environment is a setup of software and hardware on which the testing team
is going to execute test cases.

• The test environment consists of real business and user environment, as well as
physical environments, such as server, front end running environment.
How to setup the Test Environment
Need a strong cooperation between Test Team and Development Team

• What is the maximum user


connection which this website can
handle at the same time?

• What are hardware/software


requirements to install this
website?

• Does the user’s computer need any


particular setting to browse the
website?
7. Schedule & Estimation

Test Estimation

In the Test Estimation phase, suppose you break out the whole project into
small tasks and add the estimation for each task as below

Task Members Estimate effort

Create the test


Test Designer 170 man-hour
specification

Perform Test Tester, Test


80 man-hour
Execution Administrator

Test Report Tester 10 man-hour


Test Delivery 20 man-hour
Total 280 man-hour
Test schedule
Making schedule is a common term in project management. By creating a solid schedule
in the Test Planning, the Test Manager can use it as tool for monitoring the project
progress, control the cost overruns.
To create the project schedule, the Test Manager needs several types of input as below:
• Employee and project deadline: The working days, the project deadline, resource
availability are the factors which affected to the schedule
• Project estimation: Base on the estimation, the Test Manager knows how long it takes
to complete the project. So he can make the appropriate project schedule
• Project Risk : Understanding the risk helps Test Manager add enough extra time to the
project schedule to deal with the risks
Suppose the boss wants to complete the project in one month, you already
estimated the effort for each tasks in Test Estimation. You can create the schedule
as below
8. Test Deliverables
• Test Deliverables is a list of all the documents, tools and other components
that has to be developed and maintained in support of the testing effort.
• There are different test deliverables at every phase of the software
development lifecycle.

Test deliverables are Test deliverables are Test deliverables are


provided before testing provided during the testing provided after the testing
phase. cycles is over.
• Test plans document. • Test Scripts • Test Results/reports
• Test cases documents • Simulators. • Defect Report
• Test Design specifications. • Test Data • Installation/ Test
• Test Traceability Matrix procedures guidelines
• Error logs and execution logs. • Release notes
Test Management
• Test Management is a set of activities from the start of the testing to the end
of the testing.

• It gives a discipline to testing. When follow a test process it gives us the plan at
the initial.

• Test process provides the facility to plan and control the testing throughout
the project cycle. It helps to track and monitor the testing throughout the
project.

• Provides transparent of testing among stakeholders and maintains the


conducted test for future reference.

• Gives clear understanding of testing activities of prior project and post project
to all the stakeholders.

• There are many tools (Tools such as qTest, JIRA, Team Service, TestLink.)
available to manage the test process.
Test Management Process

The complete test management process can be


divided into two parts :

1. Planning Phase :

• Risk Analysis
• Test Estimation
• Test Planning
• Test Organization

2. Execution Phase :

• Test Monitoring and Control


• Issue Management
• Test Report and Evaluation
Risk Analysis and Solution

• Risk is the potential loss (an undesirable outcome, however not necessarily so)
resulting from a given action or an activity.

• Risk Analysis is the first step which Test Manager should consider before starting any
project.

• Because all projects may contain risks, early risk detection and identification of its
solution will help Test Manager to avoid potential loss in the future & save on
project cost.

Test Estimation

An estimate is a forecast or prediction. Test Estimation is approximately determining how


long a task would take to complete.
Estimating effort for the test is one of the major and important tasks in Test Management.
Benefits of correct estimation:
1.Accurate test estimates lead to better planning, execution and monitoring of tasks under a
test manager’s attention.
2.Allow for more accurate scheduling and help realize results more confidently.
Test Planning

A Test Plan can be defined as a document describing the scope, approach, resources,
and schedule of intended Testing activities.

A project may fail without a complete Test Plan.

Test planning is particularly important in large software system development.

In software testing, a test plan gives detailed testing information regarding an upcoming testing
effort, including:

•Test Strategy
•Test Objective
•Exit /Suspension Criteria
•Resource Planning
•Test Deliverables
Test Organization

• Test Organization in Software Testing is a procedure of defining roles in the testing


process.

• It defines who is responsible for which activities in testing process.

• Test functions, facilities and activities are also explained in the same process.

• The competencies and knowledge of the people involved are also defined however
everyone is responsible for quality of testing process.
Test Monitoring and Control

What will you do when your project runs out of resource or exceeds the time schedule?
You need to Monitor and Control Test activities to bring it back on schedule.

Test Monitoring and Control is the process of overseeing all the metrics necessary to
ensure that the project is running well, on schedule, and not out of budget.

Monitoring

Monitoring is a process of collecting, recording, and reporting information about the


project activity that the project manager and stakeholder needs to know

To Monitor, Test Manager does following activities :

•Define the project goal, or project performance standard


•Observe the project performance, and compare between the actual and the planned
performance expectations
•Record and report any detected problem which happens to the project
Controlling

Project Controlling is a process of using data from monitoring activity to bring


actual performance to planned performance.

In this step, the Test Manager takes action to correct the deviations from the plan. In
some cases, the plan has to be adjusted according to project situation.
Issue Management

As mentioned in the beginning of the topics, all projects may have potential risk.
When the risk happens, it becomes an issue.

In the life cycle of any project, there will be always an unexpected problems and questions
that crop up.

For an example:

•The company cuts down your project budget


•Your project team lacks the skills to complete project
•The project schedule is too tight for your team to finish the project at the deadline.

Risk to be avoided while testing:


•Missing the deadline
•Exceed the project budget
•Lose the customer trust
When these issues arise, you have to be ready to deal with them – or they can potentially
affect the project’s outcome.
What is meant by the Test Approach?

• An approach is used to define the strategy which needs to be implemented


and executed, to carry out a particular task. Similarly, a test approach reflects
the strategy to be implemented in order to carry out the testing activity.

• Basically, a test approach as a documented artifact defines a particular way or


method to carry out the testing process, which may be seen in the test plans
and designs. Through test approach, it’s easy to interpret and understand the
what's and how's of a testing process, such as

1. What is the scope and objective of the testing process?


2. What needs to be considered and tested?
3. How to test?
4. How much to test? and many more such things

A good selection of test approach ensures the sufficient amount of test


coverage, along with the identification of maximum number of defects in less
cost and within the stipulated deadline.
Types of Test approach :
1. Proactive:
This approach defines and prepares the approach or way to carry out the testing procedures,
as soon as possible, even before the development of the initial software build.
The said technique may be seen as a preventive approach, in order to find and fix defects.

2. Reactive:
Contrary to proactive approach, reactive approach involves the defining and creation of test
procedures, only after the completion of the development phase, i.e. approach could only be
initiated, when the development of a software product has been finished.

3. Analytical approach:
Analytical approaches involves, selecting and defining the approaches based on the analysis of some
factors or conditions associated with the software product, which may produce some significant
changes to the testing environment, such as on requirement basis, risk based, defect severity basis,
defect priority basis, etc. For example, when defining and preparing the test approach based on risk,
it may include approach/method to consider the area of higher risks, for the execution under the
testing phase, whereas that of lower risk may be taken up at a later stage.

4. Dynamic or Heuristic approach:The approach involves heuristic testing types such as


exploratory testing, where tests are designed, created and executed as per the current
scenario and is not pre-planned like in other approaches. Basically, it is a reactive test
approach which carries out the simultaneous execution and evaluation of the test cases.
Software Quality Assurance(SQA)

• Software Quality Assurance (SQA) is a set of activities for ensuring quality


in software engineering processes.

• It ensures that developed software meets and complies with the defined or
standardized quality specifications.

• SQA is an ongoing process within the Software Development Life Cycle


(SDLC) that routinely checks the developed software to ensure it meets the
desired quality measures.

• SQA practices are implemented in most types of software development,


regardless of the underlying software development model being used.
Benefits of SQA are -
How to implement the quality assurance?
• Testing activity needs Test Plan likewise SQA activity also needs a plan which is
called SQA plan.
• The goal of SQA plan is to craft planning processes and procedures to ensure
products manufactured, or the service delivered by the organization are of
exceptional quality.
• During project planning, Test Manager makes an SQA plan where SQA audit is
scheduled periodically.
• In the SQA Plan, the Test Manager should do as following
Step 1.1) Identify the role and responsibilities of SQA team
• In a project team, every member must have responsibility for the quality of his or
her work.

• Each person has to make sure their work meet the QA criteria.

• The SQA team is the group of person who plays the major role in the project.
Without QA, no business will run successfully.

• Therefore, the Test Manager has to make clear the responsibility of each SQA
member in SQA plan as below:

1. Review and evaluate the quality of project activities to meet the QA criteria

2. Coordinate with management board and project teams to assess


requirements and engage in project review and status meetings.

3. Design track and collect metrics to monitor project quality.

4. Measure the quality of product; ensure the product meet the customer
expectations.
No Member Roles Responsibility

• Develop and document quality standard and


process for all management process
1 Peter SQA Leader
• Manage software quality assurance activities
for the project

• Perform SQA tasks, report to SQA leader the


2 James SQA auditor
result of SQA review.

• Perform SQA tasks, report to SQA leader the


3 Bean SQA auditor
result of SQA review.
Step 1.2) List of the work products that the SQA auditor will review and audit
The Test Manager should
•List out all the work products of each Test Management Process
•Define which facilities or equipment the SQA auditor can access to perform SQA
tasks such as process evaluations and audits.
Management
No Work product Path Permission Grant to Person
Phases

Risk Management All SQA team


1 [Server path] Read
Risk analysis document members

Estimation and Metrics


2 … Read
Estimation report Peter

All SQA team


3 Test Planning document … Read
Planning members

Human resource plan, All SQA team


4 … Read
Organization training plan members

Monitoring and Collected metrics of


5 … Read
Control project effort Bean

Issue management
6 Issue Management … Read
report James

All SQA team


7 Test Report document … Read
Test report members
Step 1.3) Create the schedule to perform the SQA tasks

• In this step, the Test Manager should describe the tasks to be performed by SQA auditor
with special emphasis on SQA activities as well as the work product for each task.
• Test Manager also creates the scheduling of those SQA tasks.
Personal in
Date SQA Tasks charge Description Output

- Software
Evaluate project Specification Review SQA planning
30-Oct-
planning, tracking and - Estimation, Master report, SQA review
2014 James
oversight processes Schedule and Project Plan minute
Review

15-Dec- Review requirement - Review the software


Process audit report
2014 analysis James requirement development

30-Mar- Review and Evaluate - Review the Test SQA report, SQA
2015 Test Design James Design document review minute

30-Mar- - Process Audit: Final SQA process audit


Review release
2015 Bean Release report

- External review after SQA process audit


2-Apr-2015 Review Project closing
Bean final delivery to customer report
Step 2) Define the standards/methodology
To review the Management activities against the standards process, you should do
the following steps

1.Define the policies and procedures intended to prevent defects from occurring in
the management process
2.Document the policies & procedures
3.Inform and train the staff to use it
Step 3) Review the process

• Review project activities to verify compliance with the defined management


process.
• In the management review, the SQA members have to perform 5 SQA
reviews as following
Differences between SQA and Software Testing

SQA Software Testing


Software Quality Assurance is about Software Testing is to test a product for
engineering process that ensures quality problems before the product goes live

Involves activities related to the Involves actives concerning verification of


implementation of processes, procedures, product Example - Review Testing
and standards. Example - Audits Training

Process focused Product focused

Preventive technique Corrective technique

Proactive measure Reactive measure

The scope of SQA applied to all products that The scope of Software Testing applies to a
will be created by the organization particular product being tested.
What is Quality Control?

• Quality control popularly abbreviated as QC. It is a Software Engineering


process used to ensure quality in a product or a service.

• It does not deal with the processes used to create a product; rather it examines
the quality of the "end products" and the final outcome.

• The main aim of Quality control is to check whether the products meet the
specifications and requirements of the customer. If an issue or problem is
identified, it needs to be fixed before delivery to the customer.

• QC also evaluates people on their quality level skill sets and imparts training and
certifications. This evaluation is required for the service based organization and
helps provide "perfect" service to the customers.

Difference between Quality Control and Quality Assurance?

Sometimes, QC is confused with the QA. Quality control is to examine the product
or service and check for the result. Quality assurance is to examine the processes
and make changes to the processes which led to the end-product.
Test progress monitoring and control
• Test progress monitoring and control provides visibility to the
management team about the progress of the testing activity.

• Data is collected and reported on a regular basis to the project


and senior management.

• Three activities involves in test progress monitoring and


control :

1. Test progress monitoring


2. Test reporting
3. Test control
1. Test progress monitoring
Test progress monitoring refers to the
monitoring of the activities conducted during
the testing phase which includes test cases
preparation, test cases running, etc.

There are two categories :


1. Test preparation monitoring
2. Test running monitoring
1 . Test preparation monitoring
• Test preparation activities refer to the activities which are
performed prior to the actual execution of test cases.
• The following activities are monitored :

1. The progress of test preparation activities as against the


planned dates. ( The action of obtaining )
2. The progress of actual procurement of the required hardware
as per the specification.
3. Creation of test case as planned.
4. Putting in place the configuration management processes.
5. The progress of test data preparation for running the test
cases.
2 . Test running monitoring
• Test running refers to the execution of test cases.
• Monitoring test running means monitoring the progress of the
test cases running
• The following activities are monitored :

1. Test cases run.


2. Test cases success.
3. Defect density.
4. Defect fixing failure rate.
Test Reporting
Test reporting is all about the summary
information of testing activities, which
includes :
• Success of the test cases run, statistics from
incident reports, efforts spent on testing and
the future course of actions.
• The cost and effort incurred in reporting for
the testing activity. How much time was spent
on testing activities.
Sr . Metrics Organizational Project Measured Reasons Remedia
No. goal goal goal for l
deviation measure
s
1 Defect density 3 defects /day 2.5 2.7 Some key Modules
defects/ defects / people left 1 and 3
day day mid – way- are need
during to be
developme retested
nt
2 Test cases success 100% 100% 100%

3 Defect fixing 0% 0% 0%
failure rate
Test Control
• Rescheduling a test if the number of incidents
is very high or the number of defects is high.
• Retesting a module or a few programs if the
patterns identified by the testing team
indicate towards that.
• Revisiting the testing schedule if the test
environment preparation gets delayed.
What is Incident?

• Incidents can be defined in simple words as an event encountered


during testing that requires review.

• While testing if the actual result varies from expected result it is


referred to as bug, defect, error, problem, fault or an incident.
Most often, all of these terms are synonymous.

• Incidents however are a special category of issue that might occur


due to misconfiguration, corrupted data or server crash
etc. Examples are: Disk spaces full, error in execution (Runtime
Error), service unavailable etc.

• Incidents can also occur due to some issues in software


development, hardware usage or service request errors.
Difference between Error, Defect, Bug and Incidents:

1.Error: An action performed by human that result in unexpected system


behavior.

Eg.; incorrect syntax, improper calculation of values, misunderstanding of


software requirement etc.

2.Defect: This is a term usually used by testers. When tester finds a mistake or
problem then it is referred to as Defect.

3.Bug: Bug is developer’s terminology. Once a defect found by a tester is


accepted by developer it is called a bug. The process of rectifying all bugs in the
system is called Bug-Fixing.

4.Incident: Incident is an unplanned interruption. When the operational status


of any activity turns from working to failed and causes the system to behave in
an unplanned manner it is an incident. A problem can cause more than one
incidents which are to be resolved, preferably as soon as possible.
What is Incident Management?

• Incident management is a process for logging, recording and


resolving the incidents as quickly as possible to restore the
business process or service back to normal.

Incident Management Process

• Incident management is the overall process starting from logging


incidents to resolving them.

• It is a very critical process as this will ensure that the incidents get
addressed is a systematic and effective manner.

• Also, by streamlining the entire process, there is a good chance


that early fixing of the issues might happen.
The following is a diagrammatic representation of the process
#1. Incident Identification and Logging:
Incident Identification is either done via testing (using tools or otherwise), user
feedback, infrastructure monitoring, etc.

Logging an incident simply means recording the following info:

•Exact/Appropriate date and time of occurrence.


•Incident title along with type and brief description
•Name of the person who logged the incident and more detailed description
with error codes when applicable
•Details of the person assigned to the incident for follow up
•Current Status of the incident
•Attachments including technical discussions, decisions and approvals

#2. Classification and Prioritization:


• Classification of incidents helps us partition them based on their type
(software, hardware, service request, etc.) so it makes for easier reporting and
analysis.
• Prioritization helps to identify the order/priority of incidents to be handled. It
depends on the impact, severity and most importantly the Risk Factor.
#3. Investigation and Analysis:
This step is to better understand the problem so we not only fix it right now, but gather
information for preventing from re-occurrence.

#4. Resolution and Recovery:


This Steps are taken to remove the incident and bring the system back to its previous
working condition.

#5. Incident Closure: The resolution is retested and in case the system is working as
intended, the incident is closed.
Software Configuration Management

• In Software Engineering, Software Configuration


Management(SCM) is a process to systematically manage,
organize, and control the changes in the documents, codes, and
other entities during the Software Development Life Cycle.

• The primary goal is to increase productivity with minimal


mistakes. SCM is part of cross-disciplinary field of
configuration management and it can accurately determine who
made which revision.
Need of Configuration management

•There are multiple people working on software which is continually updating

•It may be a case where multiple version, branches, authors are involved in a software
config project, and the team is geographically distributed and works concurrently

•Changes in user requirement, policy, budget, schedule need to be accommodated.

•Software should able to run on various machines and Operating Systems


Need of Configuration management

•Helps to develop coordination among stakeholders

•SCM process is also beneficial to control the costs involved in making changes to a
system

Tasks in SCM process

• Configuration Identification
• Baselines
• Change Control
• Configuration Status Accounting
• Configuration Audits and Reviews
Configuration Identification:
• Configuration identification is a method of determining the scope of the software
system. With the help of this step, you can manage or control something even if you
don't know what it is.
• It is a description that contains the CSCI type (Computer Software Configuration Item),
a project identifier and version information.

Activities during this process:


•Identification of configuration Items like source code modules, test case, and
requirements specification.

•Identification of each CSCI in the SCM repository, by using an object-oriented approach

•The process starts with basic objects which are grouped into aggregate objects. Details of
what, why, when and by whom changes in the test are made

•Every object has its own features that identify its name that is explicit to all other objects

•List of resources required such as the document, the file, tools, etc.
Example:
1. Instead of naming a File login.php its should be named login_v1.2.php where v1.2
stands for the version number of the file
2. Instead of naming folder "Code" it should be named "Code_D" where D represents code
should be backed up daily.
Baseline:

A baseline is a formally accepted version of a software configuration item. It is


designated and fixed at a specific time while conducting the SCM process. It can
only be changed through formal change control procedures.

Activities during this process:


•Facilitate construction of various versions of an application

•Defining and determining mechanisms for managing various versions of these


work products

•The functional baseline corresponds to the reviewed system requirements

•Widely used baselines include functional, developmental, and product baselines

In simple words, baseline means ready for release.


Change Control:

Change control is a procedural method which ensures quality and consistency when
changes are made in the configuration object. In this step, the change request is
submitted to software configuration manager.

Activities during this process:


•Control ad-hoc change to build stable software development environment. Changes are
committed to the repository

•The request will be checked based on the technical merit, possible side effects and
overall impact on other configuration objects.

•It manages changes and making configuration items available during the software
lifecycle
Configuration Status Accounting:

Configuration status accounting tracks each release during the SCM process. This
stage involves tracking what each version has and the changes that lead to this
version.

Activities during this process:

•Keeps a record of all the changes made to the previous baseline to reach a new
baseline

•Identify all items to define the software configuration

•Monitor status of change requests

•Complete listing of all changes since the last baseline

•Allows tracking of progress to next baseline

•Allows to check previous releases/versions to be extracted for testing


Configuration Audits and Reviews:

Software Configuration audits verify that all the software product satisfies
the baseline needs. It ensures that what is built is what is delivered.

Activities during this process:


•Configuration auditing is conducted by auditors by checking that defined
processes are being followed and ensuring that the SCM goals are satisfied.

•To verify compliance with configuration control standards. auditing and


reporting the changes made

•SCM audits also ensure that traceability is maintained during the process.

•Ensures that changes made to a baseline comply with the configuration


status reports

•Validation of completeness and consistency


Participant of SCM process:
1. Configuration Manager

•Configuration Manager is the head who is Responsible for identifying


configuration items.

•CM ensures team follows the SCM process


•He/She needs to approve or reject change requests

2. Developer

•The developer needs to change the code as per standard development


activities or change requests. He is responsible for maintaining configuration of
code.
•The developer should check the changes and resolves conflicts

3. Auditor

•The auditor is responsible for SCM audits and reviews.


•Need to ensure the consistency and completeness of release.
4. Project Manager:

•Ensure that the product is developed within a certain time frame


•Monitors the progress of development and recognizes issues in the SCM
process
•Generate reports about the status of the software system
•Make sure that processes and policies are followed for creating, changing,
and testing

5. User
The end user should understand the key SCM terms to ensure he has the latest
version of the software

You might also like