Processes to Support Software Testing

This section focuses on some very important processes that are very essential for keeping a track of how software testing is progressing. In this section you will learn about:

  • Defect Management Life Cycle And How it works
  • Traceability Matrix
  • Software Testing Estimation Techniques
  • Configuration Management
  • Change Management

What Is Defect Management Life Cycle And How Does It Work?

Software is developed by humans and it is unfair to expect a software of millions lines of code to be defect free. Defects are induced due to many reasons:

  1. The requirements are not communicated clearly
  2. Programming errors caused during development
  3. Complex system design
  4. Poor quality or incomplete documentation
  5. Difficulty in managing changes in software designsystem.

What Is Defect Management Life Cycle And How Does It Work?

Defect lifecycle is defined to manage defects in the system. It is in fact the journey of a bug in the system right from the time is was found to the time it is closed. The stages of a defect life cycle are given below:

  1. New: When a defect is discovered it is given the status ‘New’.
  2. Opened: When a new found defect goes for review it has a status ‘Open’
  3. Duplicate: If the defect has already been reported before, then it is called ‘Duplicate’
  4. Assigned: This status indicates that the bug has been assigned to a developer for fixing.
  5. Re-tested: Once the defect is fixed the tester conducts testing to check if the defect has been closed or not.
  6. Reopened/closed: if the defect is fixed it is assigned the status ‘closed’ or else it is ‘reopened’.

What Is Traceability Matrix?

Traceability matrix is a tool that is used to connect and trace the requirements of the project (business, application, security related) to the implementation and testing processes. This helps in analyzing how much of the project requirements have been completed.

A traceability matrix is of great use in complex software development projects. With the help of this tool you can trace how things are working in any section of the project. This matrix is created in a worksheet document that comprises of a rows and columns. One set of values are set against the row and other set of values is set against the columns. If there is any kind of relationship between any value of the column and any value of the row then an identification mark is place in the cell where that column and row intersect.

So, if we place the various requirements of the project against the column on the left and various testing processes on the top of row. Then we can easily map which testing processes have been completed for which all requirements. This would give an accurate idea about how much percentage of requirements has got completed.

What Are Software Testing Estimation Techniques?

Different software project belong to different domains so software estimation techniques may vary a bit from project to project. Also it is very difficult to get the estimation right in the first go. However, software estimation techniques are very important for a company. It plays a very important role in the SDLC. Estimation techniques provide an estimate of time that may be required to finish a particular task.

Estimation is done to get a rough idea about how much effort it would take to complete a particular task. The estimation could also mean cost. Many factors such as past experience, assumptions, documents, calculated risks etc. help in determining the estimate for a software development cycle. This estimate helps an organization in bidding for a project. Software estimation is required so that the chances of overshooting the budget while testing or delay in completion of project can be avoided.

  1. Delphi software estimation technique is the most widely used techniques for estimation.It provides a way of achieving an agreement within a team without any conflict. Each one from the team provides an anonymous and individual estimate which is assessed by the coordinator. If the assessment is within the acceptable range then a decision can be taken or else the process is repeated again.
  2. Work Breakdown Structure is used is big projects where first the project is broken into smaller components in a hierarchy and then the estimation process is carried out to evaluate task scheduling and detailed cost estimation of the project.
  3. Three point estimation technique is also used for big projects where the project is first broken into smaller sub sections and the for each sub section first the optimistic estimate is done assuming that nothing will go wrong and all conditions are fine(A). The second approach is of most likely estimate where one assumes that there is a possibility for problems to arise but eventually everything will be fine(B). The third approach is the pessimistic estimate where everything will go wrong(C). So, the estimate formula is defined as: A+(4*B)+C/6
  4. Functional point method suggests that: (Total effort Estimate) =(Total number of function points) * (estimate of every functional point). The above mentioned formula clarifies that more weightage is given to every function point. The function points are categorized as complex, medium and simple and then an estimate is done.
What Is Configuration Management?

Configuration management is required to maintain consistency in the performance of a system. Configuration Management involves:

  • All configuration items are labeled with unique identifiers
  • Identification of all documents that describe configuration item
  • Related configuration items should be grouped into baselines
  • After every revision it is important to label the configuration items and baselines.

Development of software is a complex process where following issues are very common:

  1. Many times developers tend to overwrite each other’s modifications
  2. If versions are not maintained properly then integration process can be very difficult.
  3. Sometimes there are compatibility issues between the versions of the compiler and development tools.
  4. Confusion over which test cases belong to current version of software.

All these problems can be handled with the help of configuration management that defines:

  • Version management: maintaining the record of various versions of object under test corresponding version of configured item.
  • Configuration identification: helps in uniquely defining the system, every revised version of the system and components of each revised version.
  • Documentation of incident status and change request: These documents impart information on various incidents and the change requested and their present status.
  • Configuration audits: ensure that the details of all components of the software are well documented and all configurations are easy to identify.

What Is Configuration Management?

What Is Change Management?

As the name suggests change management is all about dealing with change in the way we work. Change management is required at various levels right from company’s level to individual level. Change management deals with:

  1. Adapting to change: Many times it becomes extremely important to implement structured processes to bring about a positive change in the business. In present times of recession or slowdown of economy companies have to implement stable mechanisms that would help staff members deal with pressure in difficult conditions.
  2. Controlling change: deal with the new changes in the business environment. No matter what new changes you make to the environment it is important to monitor changes and track the details of the system.
  3. Effecting Change: generating profit from the positive changes.

What Is Change Management?

Your Software Testing Training
Table of Contents