Software development is a tedious and expensive activity by which an application worth million dollars in created. The trend of software emerged as a result of a need for a system which has a certain measure of security and which is not prone to loss of data or data mishandling.
Various mistakes and misconceptions led to the state of software industry built today. Software testing being the most important activity in the Software Development Life Cycle, there are quite a few concepts in it that form the core of the whole process.
The inception of software development activity begins with the assimilation of all the requirements that the system under development must deliver as the final outcome.
Cohesion is an aspect of software testing wherein the idea is to determine the degree of dependence among the elements of the same module, that is, how the extent of association between the functionalities of a particular module.Greater the cohesion, better is the program.
In the above diagram, overlapping functions represent a high cohesion, hence 'module 1' and 'module 2' will be termed as 'highly cohesive' modules in contrast with 'module 2' which has less cohesive elements.
The following points enlists the types of cohesion starting with the worst gradually proceeding towards the best type of cohesion.
The most desirable type of cohesion is functional but it is not easy to achieve. Often the cohesion attained during the course of testing is either communicational/sequential.