Test measurement is a way of evaluating the test data by applying various metrics. A software application is complex in nature and with the advent of technological advancements, the demands of users/customers are increasing rapidly. It is the responsibility of the organisation to take care of the fact that they deliver a product that is at par with their client's expectations. Hence defect detection has become an imperative part of test measurement. With the help of metrics we get a chance to quantify the results to get a better risk handling approach.
A product's evaluation is done at the end of each phase to ascertain whether the defined goals are met or not. Efforts are made to identify, resolve and minimise risk issues to the minimum. The following are the few measurement techniques to analyse and measure test data.
Software measurement techniques lay the standards upon which the evaluation of software process is based on. Following are the details about various metrics.
Product metrics are the ones that can be applied to testing at any phase of the software development life cycle, that is, beginning with requirements specifications till system installation. Product metrics could be analysed on the basis of different parameters like design, size, complexity, quality and data dependency. For instance, size metrics takes into account the number of lines of code(LOC). Lines of code aims to keep a track of the number of lines written excluding any blanks or comments. This technique is quite popular in identifying the overall program complexity, total development effort and programmer's performance. Size can be measured with the help of the following as well.
In this technique, parameters are defined which are assigned some values. The idea is to compute the total function point value for the project based on various parameters like number of external user inputs, inquiries, outputs, interfaces and master files. The function point values are weighed by the degree of complexity.
It is a diagrammatic representation in which each line of program code, the branches or conditions are depicted with the help of a flow diagram. The diagram consists of nodes which connect each other through arrows. Each node is either a branch or a statement that has an immediate flow to the next line of execution.
Quality characteristics of a product can be classified as correctness, efficiency, portability, maintainability, reliability etc.
The product should be able to project the defects to qualify as a product metric. If there is no defect found at once, there are various alternatives defined for defect detection. These alternatives may be number of changes made in design, errors detected through code inspection or program tests, and finally number of changes required in the code.
Process metrics aim to determine /measure a software's time and cost factors. There are few models in this regard that helps to assess the progress of the software development from the very initial stage till the end. Let us understand some of the models.
This is considered to be one of the oldest models that is widely applied to measure the process. According to this model's specification, a proposed project is related to some previous projects for which there exists some historical data. This model assumes that the cost of the current project can be estimated with the help of the historical data. A structural forecast matrix is prepared to allocate resources to the different phases. Various parameters like memory, I/O etc., are analysed in order to finalise the size of the module.
This model takes into account the lines of code and the total amount of effort in person-months. The result provided a quantitative output that helped us to analyse the product's complexity. Gradually many new models have been proposed namely – Rayleigh model, Halstead model etc.
Measuring the progress of an ongoing task provides a valuable insight into the product's development aspects. The testing and development team's efforts, if they are moving ahead in the right direction. The metrics are a way to quantify the test data to ensure accuracy and correctness of the application being developed. Measurement techniques are a scanner under which the entire process of software development is monitored.