SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011



          Analysis of Software Complexity Measures for
                        Regression Testing
           Mrinal Kanti Debbarma1, Nagendra Pratap Singh2, Amit Kr. Shrivastava3, and Rishi Mishra4
                                     Computer Science & Engineering Department
                                              MNNIT Allahabad, INDIA
                          mkdbarma@yahoo.com,{nagendrasngh447,amu02303,rishi.msr}@gmail.com

Abstract— Software metrics is applied evaluating and assuring
                                                                                         II. BACKGROUND DETAILS
software code quality, it requires a model to convert internal
quality attributes to code reliability. High degree of complexity        A. Regression Testing
in a component (function, subroutine, object, class etc.) is bad
                                                                         Regression testing is a process that seeks to uncover errors,
in comparison to a low degree of complexity in a component.
Various internal codes attribute which can be used to indirectly         which is performs after changes are made to program and can
assess code quality. In this paper, we analyze the software              be used before release of modified program. Regression test
complexity measures for regression testing which enables the             can be perform rerunning the existing test suites against
tester/developer to reduce software development cost and                 modified program whether the changes are correct and have
improve testing efficacy and software code quality. This                 no effect to unchanged part of the program. Regression test
analysis is based on a static analysis and different approaches          can be performing with adequate coverage that should be
presented in the software engineering literature.                        the primary consideration. A regression test compares the
                                                                         operation of the new version of software to the operation of
Index Terms—Software Complexity, Software Metrics,
                                                                         a older version. The key idea is that the behavior of the
Regression Testing, Control Flow Metrics1.
                                                                         program should not change in unanticipated ways.
                         I. INTRODUCTION                                 Regression testing ensures that we do not introduce new
                                                                         bugs or resurrect old ones. Testing of software is an integral
    The Software complexity is based on well-known software              part and key component of the software development
metrics, this would be likely to reduce the time spent and               process.This testing process can be used to test a system
cost estimation in the testing phase of the software                     efficiently by selecting minimum set of test suite needed to
development life cycle (SDLC), which can only be used after              that change. Regression testing techniques can be described
program coding is done. The path count complexity of a                   as follows: Let P be a program, and P’ be a modified program
function is defined as product of the path complexity of                 of P, and T be a test suit for program P. Regression testing
individual constructions. Improving quality of software is a             can be attempt to revalidate modified program P’. From
quantitative measure of the quality of source code. This can             software engineering point of view software development
be achieved through definition of metrics, values for which              experience shows, that it is difficult to set measurable targets
can be calculated by analyzing source code or program is                 when developing software products. Produced/developed
coded. A number of Software measures widely used in the                  software has to be testable, reliable and maintainable. On the
software industry are still not well understood [2]. Although            other side, “You cannot control what you cannot
some software complexity measures were proposed over thirty              measure”[3]. To avoid this, regression testing is performed
years ago and some others proposed later. Sometimes                      during changes are made to existing software; the purpose
software growth is usually considered in terms of complexity             of regression testing is to provide modified program do not
of source code. Various metrics are used, which unable to                obstruct existing, unchanged part of the software
compare approaches and results. Not all metrics are similarly            [1].Complexity of software is measuring of code quality; it
easy to calculate for a given source code.[4]. Software                  requires a model to convert internal quality attributes to code
systems are maintained by designers by doing regression                  reliability. High degree of complexity in a component (function,
test periodically in expect to find bugs caused by modifications         subroutine, object, class etc.) is bad in comparison to a low
and hoping that modifications made in the software are                   degree of complexity in a component is considered good.
correct. Software engineering goal is to measure different               Software complexity measures which enables the tester to
aspects of software projects, to find small set of attributes            counts the acyclic execution paths through a component and
that may characterize them. This paper presents an approach              improve software code quality. In a program characteristic
by which tester/developer can reduce software development                that is one of the responsible factors that affect the developer’s
cost and improve testing efficacy and software quality.                  productivity [6] in program comprehension, maintenance, and
                                                                         testing phase. There are several methods to calculate
                                                                         complexity measures were investigated, e.g. different version
                                                                         of LOC [6], NPATH [7], McCabe’s cyclomatic number [10],
                                                                         Data quality [10], Halstead’s software science [8] etc.
1
 This research work was carried out at the Department of Computer
Science & Engineering, MNNIT, Allahabad (UP), India-211004.
Corresponding author : mkdbarma@yahoo.com
                                                                    14
© 2011 ACEEE
DOI: 01.IJIT.01.02.158
ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011


B.        Software Complexity Metrics: Properties                         {
    Complexity of software can be measure by selected                       int a=0;
properties that cause complexity. Some properties influencing               if(c)
the complexity are as follows:                                               {
        Size metrics                                                         a=1;
        Control flow metrics                                                 }
                                                                           }
1.        Size metrics :Lines of Code
    The size of the program indicates the development                     The Value of NPATH is 2 as follows:
complexity, which is known as Lines of Code (LOC). The
simplest measure of complexity recommended by Hatton                      NP(if)=NP(if-range)+NP(expr) + 1
(1977) . This metric is very simple to use and measure the
                                                                     3.   McCabb’e Cyclomatic Complexity [10]
number of source instruction required to solve a problem.
While counting a number of instructions (source), line used              Cyclomatic Number is one of the metric based on not
for blank and commenting lines are ignored. The size,                program size but more on information/control flow. It is based
complexity of today’s software systems demands the                   on specification flow graph representation developed by
application of effective testing techniques. Size attributes         Thomas J Mc Cabb in 1976. Program graph is used to depict
are used to describe physical magnitude, bulk etc. Lines of          control flow. Nodes are represent processing task (one or
code and Halstead’s software science[8] are examples of size         more code statement) and edges represent control flow
metrics. M. Halstead proposed a metrics called software              between nodes. McCabe’s metrics[10] is example of control
science [ Halstead 77].                                              flow metrics. To compute cyclomatic complexity V(G) as
                                                                     following methods:
2. Control Flow metrics: NPATH                                            1. For graph G with N vertices(nodes), E edges and P
    The control flow complexity metrics are derived from the                  connected components,
control structure of a program. The control flow measure by                   V(G)=E-N+2p
NPATH, invented by Nejmeh [7] ,it measures the acyclic                    2. V(G)= Total number of bounded area +1
execution paths, NPATH is a metric which counts the number                    Where bounded area is in program’s CFG, any region
of execution path through a functions. NPATH is example of                    encoded by nodes and edges.
control flow metrics. One of the popular software complexity              3. Number of decision statement of the program +1 or
measures NPATH complexity (NC) is determined as:                              number of predicate node+1
NPATH=               statementi)                                     The problem with McCabb’s Complexity is that, it fails to
NP (if)=NP(expr)+NP(if-range)+1                                      distinguish between different conditional statements (control
NP (if-else)=NP(expr)+NP(if-range)+NP(else-range)                    flow structures). Also does not consider nesting level of
NP (while)=NP(expr)+NP(while-range)+1                                various control flow structures. NPATH, have advantages
NP (do-while)=NP(expr)+NP(do-range)+1                                over the McCabb’s metric [7].
NP (for)=NP(for-range)+NP(expr1)+NP(expr2)+
           NP (expr3)+1                                              4. Halstead Software Science [8]
NP (“?”)=NP (expr1+NP(expr2)+NP(expr3)+2                                 Another alternative software complexity measures have
NP (repeat)=NP(repeat-range)+1                                       to be considered. M. Halstead’s Software science measures
NP (switch)=NP(expr)+                                +               [8] are very useful. Halseatd’s software science is based on a
              NP (default-range)                                     enhancement of measuring program size by counting lines of
NP (function call)=1                                                 code. Halstead’s metrics measure the number of number of
NP(sequential)=1                                                     operators and the number of operands and their respective
NP(return)=1                                                         occurrence in the program (code). These operators and
 NP(continue)=1                                                      operands are to be considered during calculation of Program
 NP(break)=1                                                         Length, Vocabulary, Volume, Potential Volume, Estimated
 NP(goto label)=1                                                    Program Length, Difficulty, and Effort and time by using
 NP(expressions)=Number of && and || operators in                    following formulae.
                      Expression                                     n1 = number of unique operators,
Execution of Path Expressions (complexity expression) are            n2 = number of unique operands,
expressed, where “N” represents the number of statements             N1 = total number of operators, and
in the body of component (function and “NP (Statement)”              N2 = total number of operands,
represents the acyclic execution path complexity of statement        Program Length (N)=N1+N2
i. Where “(expr)” represents expression which can be derived         Program Vocabulary ( n)=n1+n2
from flow-graph representation of the statement. For example         Volume of a Program ( V)=N*log2n
NPATH measure as follows:                                            Potential Volume of a Program
     Void func-if-with-assignment ( int c)                           (V*)=(2+n2)log2(2+n2)
                                                                     Program Level (L)=L=V*/V
                                                                15
© 2011 ACEEE
DOI: 01.IJIT.01.02.158
ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011


Program Difficulty (D)=1/L                                             complexity measures program graph is used to depict control
Estimated Program Length (N)=n1log2n1+n2log2n2                         flow. Nodes are representing processing task (one or more
Estimated Program Level (L)=2n2/(n1N2)                                 code statement) and edges represent control flow between
Estimated Difficulty (D)=1/L=n1N2/2n2                                  nodes. Consider an example, Let P be the old version of
Effort (E)=V/L=V*D= (n1 x N2) / 2n2                                    program and P’ be the new version of program in C given
Time (T)=E/S [“S” is Stroud number (given by John                      below:
Stroud), The constant “S” represents the speed of a                        Consider a program from figure 1. the complexity measured
Programmer. The value “S” is 18]                                       by us and computed the complexity of the other proposed
One major weakness of this complexity is that they do not              measures i.e Line of Code (LOC), NPATH Complexity (NC),
measure control flow complexity and difficult to compute               McCabb’s complexity (MCC) and Halstead’s software science
during fast and easy computation.                                      (HSS). In Figure 2, we have done some modification to the
                                                                       given example of program P i.e some lines are added in the
                  III. OUR METHODOLOGY                                 existing program. Some changes are made for regression
                                                                       testing in the existing program and calculated measures from
    Our method deals with analysis of software complexity
                                                                       both the programs P and P’ in Table 1 and Table II as follows:
metrics for regression testing. We have considered four
program characteristics from the literature that are                       #include<stdio.h>
                                                                           void main()
responsible for complexity measures. viz LOC, NPATH, MCC,              1: {
and HSS. For this study, we have selected only program                 1: int a,b,c,n;
written in C language given in Figure 1 and Figure 2. The              1: scanf(“%d %d”, & a,&b);
                                                                       2: if (a < b)
structure of a program P ad P’ can be represented by a control         2: {
flow graph in figure 3, G(P)={N,E,s,e}, where N is a set of            3: c = a;
nodes representing basic blocks of code or branch points in            3: }
                                                                       3: else
the function; E is a set of edges representing flow of control         3: {
in the function; s is the unique entry node and e is the unique        4: c = b;
exit node                                                              4: }
                                                                       5: n = c;
A.        Methods:                                                     6: while ( n < 8 )
                                                                       6: {
    There are four steps can be used to collect the data as            7: if ( b > c )
described below. We compute weights of software complexity             7: {
                                                                       8: c = 2;
metrics for original program P and modified program P’                 8: }
(required element):                                                    8: else
Step 1: Compute LOC by counting frequency of line                      8: {
                                                                       9: n = n + c +7;
        numbers.                                                       9: }
       (i) Blank lines and                                             10 : n = n + 1;
       (ii) Commenting lines are ignored.                              10: }
                                                                       11: Printf(“%d%d%d”,a,b, n);
                                                                       11. }
Step 2: Calculate the NPATH complexity measures
        also known as path count metrics.                                                           Figure 1. Source Program P
                                                                           #include<stdio.h>
                                                                           void main()
Step 3: Compute McCabe complexity.                                     1: {
                                                                       1: int a,b,c,n;
Step 4: Count the Halstead’s Software science of software              1: scanf(“%d %d”, & a,&b);
                                                                       2: if (a < b)
      primitives.                                                      2: {
                                                                       3: c = a;
B. Selected Metrics                                                    3: }
    We have measured LOC, NPATH i.e. acyclic execution                 3: else
                                                                       3: {
paths through components for in an attempt at program                  4: c = b;
optimization, McCabe and finally Halstead’s software science           4: }
complexity metrics. While counting a number of instructions            5: n = c;
                                                                       6: while ( n < = 8 )
(source), line used for blank and commenting lines are                 6: {
ignored. NPATH measures the acyclic execution paths which              7: if ( b > c )
counts the number of execution path through a functions.               7: {
                                                                       8: c = 2;
Halstead’s metrics measure the number of number of operators           8: }
and the number of operands and their respective occurrence             8: else
in the program (code). These operators and operands are to             8: {
                                                                       9: n = n + c +7;
be considered during calculation of Program Length,                    9: if ( n % 7 == 0 )
Vocabulary, Volume, Potential Volume, Estimated Program                9: {
Length, Difficulty, and Effort and time. For McCabb’s                  10: c = c + 2;

                                                                  16
© 2011 ACEEE
DOI: 01.IJIT.01.02.158
ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011


10:   }                                                                          This measure is used by S.D Conte in the year of 1986 [6].
10:   else                                                                       The equivalent size measure is basically effort required to
10:   {
11:   c =- -;
                                                                                 develop software with new code and re-use code is equivalent
11:   }                                                                          to the effort of developing the same software. During software
11:   }                                                                          development, most of the time re-uses software from the
12:   n =++;
12:   }
                                                                                 previous code/program. It has been reported that, at IBM’s
13:   Printf(“%d%d%d”,a,b, n);                                                   Santa Teresa Laboratory, 77% of all program code is written
13:   }                                                                          in place to add new code to existing code [6]. Formula
                           Figure 2. Modified Program P’                         proposed by Bailey and Basili [6] is used to compute the
                                                                                 equivalent size measure as follows:
                                                                                          Se=Sn+.02* Su
                                                                                          Where, Se is equivalent size measure
                                                                                                 Sn is a measure for newly written code
                                                                                           and Su is a measure for redundant/re-use code
                                                                                          (adopted from existing code)
                                                                                          Considering a program P and P’, we are able to
                                                                                          extract the following equivalent size measures:
                                                                                          Su=24 (i.e. consider as redundant/ re-use code)
                                                                                          Sn= 34-24 (i.e .the total lines of code subtract the
                                                                                          lines of redundant/re-use code)
                                                                                          Se= Sn+0.2*Su
                                                                                            = 10+0.2*24
                                                                                             =15 (LOC)
                                                                                 Equivalent size measure (ESM) may be helpful during
                                                                                 measurement of software maintenance phase. In this paper,
          Figure 3.Control Flow Graph for Program P and P’                       we work with four program characteristics measures. From
                                                                                 the above table I and Table II, it is also identified that change
TABLE I. COMPUTED WEIGHTS SOFTWARE COMPLEXITY MEASURES   FROM PROGRAM   P
                                                                                 behavior of program characteristics

                                                                                                         IV. CONCLUSION
                                                                                     Software complexity metrics have a propensity to be used
                                                                                 in judging the quality of software development and metrics
                                                                                 are relatively easy to generate. The size, complexity and
                                                                                 importance of today’s software systems demand the
                                                                                 application of effective testing techniques. In addition, it was
                                                                                 observed that software complexity metrics which enables the
                                                                                 tester to counts the acyclic execution paths through a
                                                                                 component and improve software productivity and software
                                                                                 quality. This approach could be lead to reduce software
                                                                                 development cost and improve testing efficacy and software
      TABLE II. C OMPUTED WEIGHTS SOFTWARE COMPLEXITY MEASURES FROM
                                PROGRAM P’
                                                                                 quality. Software metrics with Lines of Code (LOC), Npath
                                                                                 (NC), McCabb’s complexity metrics (MCC) and Halstead’s
                                                                                 Software science (HSS) are calculated and observed the
                                                                                 change behavior of the code. Finally, the evaluated values
                                                                                 from both P and P’, the changed behavior of code is identified
                                                                                 and tester can use this approach to execute test case and
                                                                                 improve software productivity and software quality. In the
                                                                                 future study, more complicated program has to be measured
                                                                                 with other attributes (complexity measures).




C.      Equivalent Size Measures ( ESM):
   Equivalent size measures is code redundancy inside a
program may be viewed as the intra-program re-use of code.
                                                                            17
© 2011 ACEEE
DOI: 01.IJIT.01.02.158
ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011


                          REFERENCES                                       [7] B.A. Nejmeh. NPATH: A Measure of Execution Path
                                                                           Complexity and Its Applications. Comm. of the ACM, 31(2):188-
[1] Shin Yoo & Mark Harman, “Regression Testing Minimization,
                                                                           210, February 1988.
Selection      and Prioritization - A Survey”, Technical Report TR-
                                                                           [8] M. Halstead. Elements of Software Science. North-
09-09
                                                                           Holland,1977.
[2] Thomas J.McCabe “A Complexity Measure” ,IEEE
                                                                           [9] K.K Aggarwal & Yogesh Singh “Software Engineering”
Transactions on Software Engineering, Vol, Se-2,1976.
                                                                           New Age International, 2003
[3] T.De Marco; Controlling Software Projects; Prrntice Hall, New
                                                                           [10] T.A. McCabe. A            Complexity Measure. IEEE
York,1982.
                                                                           Transactions on Software Engineering, 2(4):308-320,
[4] Israel Herraiz, Jesus M. Gonzalez-Barahona, Gregorio Robles,”
                                                                           December                                                 1976
Towards a theoretical model for software growth” in 29th
                                                                           [11] A.Fitzsimmons and T. Love;” A Review and Evaluation
International Conference on Software Engineering Workshops
                                                                           of Software Science”,Computing Survey,Vol.10,No.1 March ,1978
(ICSEW’07).
                                                                           [12] Norman Fenton, “ Software Measurement: A Necessary
[5] B. Beizer, Software Testing Techniques, Van Nostrand
                                                                           Scientific Basis “IEEE Transaction on Software Engineering,
Reinhold, 2nd Ed.,1990.
                                                                           Vol.20,No.3,                                     March,1994,
[6] S.D. Conte, H.E Dunsmore, and V.Y. Shen. Software Engineering
                                                                           [13] Software Engineering – A Practitioner’s Approach,
Metrics and Models. Benjamin/Cummings Publishing Company,
                                                                           Roger S.         Pressman; McGraw-Hill           International
Inc., 1986.
                                                                           Edition.
                                                                           [14] Rajib Mall, “Fundamentals of Software Engineering”,
                                                                           Prentice Hall




                                                                      18
© 2011 ACEEE
DOI: 01.IJIT.01.02.158

Mais conteúdo relacionado

Mais procurados

Determination of Software Release Instant of Three-Tier Client Server Softwar...
Determination of Software Release Instant of Three-Tier Client Server Softwar...Determination of Software Release Instant of Three-Tier Client Server Softwar...
Determination of Software Release Instant of Three-Tier Client Server Softwar...
Waqas Tariq
 
A system for performance evaluation of embedded software
A system for performance evaluation of embedded softwareA system for performance evaluation of embedded software
A system for performance evaluation of embedded software
Mr. Chanuwan
 

Mais procurados (18)

Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
AGILE METHODS AND QUALITY _ A SURVEY
AGILE METHODS AND QUALITY _ A SURVEYAGILE METHODS AND QUALITY _ A SURVEY
AGILE METHODS AND QUALITY _ A SURVEY
 
Reengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approachReengineering framework for open source software using decision tree approach
Reengineering framework for open source software using decision tree approach
 
V2I6_IJERTV2IS60721
V2I6_IJERTV2IS60721V2I6_IJERTV2IS60721
V2I6_IJERTV2IS60721
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks
 
Se
SeSe
Se
 
Se chapter 1,2,3 2 mark qa
Se chapter 1,2,3   2 mark  qaSe chapter 1,2,3   2 mark  qa
Se chapter 1,2,3 2 mark qa
 
Software engg unit 4
Software engg unit 4 Software engg unit 4
Software engg unit 4
 
Cm24585587
Cm24585587Cm24585587
Cm24585587
 
Determination of Software Release Instant of Three-Tier Client Server Softwar...
Determination of Software Release Instant of Three-Tier Client Server Softwar...Determination of Software Release Instant of Three-Tier Client Server Softwar...
Determination of Software Release Instant of Three-Tier Client Server Softwar...
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
 
EARLY STAGE SOFTWARE DEVELOPMENT EFFORT ESTIMATIONS – MAMDANI FIS VS NEURAL N...
EARLY STAGE SOFTWARE DEVELOPMENT EFFORT ESTIMATIONS – MAMDANI FIS VS NEURAL N...EARLY STAGE SOFTWARE DEVELOPMENT EFFORT ESTIMATIONS – MAMDANI FIS VS NEURAL N...
EARLY STAGE SOFTWARE DEVELOPMENT EFFORT ESTIMATIONS – MAMDANI FIS VS NEURAL N...
 
EFFECTIVE IMPLEMENTATION OF AGILE PRACTICES – OBJECT ORIENTED METRICS TOOL TO...
EFFECTIVE IMPLEMENTATION OF AGILE PRACTICES – OBJECT ORIENTED METRICS TOOL TO...EFFECTIVE IMPLEMENTATION OF AGILE PRACTICES – OBJECT ORIENTED METRICS TOOL TO...
EFFECTIVE IMPLEMENTATION OF AGILE PRACTICES – OBJECT ORIENTED METRICS TOOL TO...
 
Software Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and MetricsSoftware Measurement: Lecture 1. Measures and Metrics
Software Measurement: Lecture 1. Measures and Metrics
 
The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)
 
A system for performance evaluation of embedded software
A system for performance evaluation of embedded softwareA system for performance evaluation of embedded software
A system for performance evaluation of embedded software
 
J034057065
J034057065J034057065
J034057065
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation Techniques
 

Destaque

Text Based Fuzzy Clustering Algorithm to Filter Spam E-mail
Text Based Fuzzy Clustering Algorithm to Filter Spam E-mailText Based Fuzzy Clustering Algorithm to Filter Spam E-mail
Text Based Fuzzy Clustering Algorithm to Filter Spam E-mail
ijsrd.com
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
IDES Editor
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
IDES Editor
 

Destaque (7)

Text Based Fuzzy Clustering Algorithm to Filter Spam E-mail
Text Based Fuzzy Clustering Algorithm to Filter Spam E-mailText Based Fuzzy Clustering Algorithm to Filter Spam E-mail
Text Based Fuzzy Clustering Algorithm to Filter Spam E-mail
 
A Novel Model of Influence Function: Calibration of a Continuous Membrane Def...
A Novel Model of Influence Function: Calibration of a Continuous Membrane Def...A Novel Model of Influence Function: Calibration of a Continuous Membrane Def...
A Novel Model of Influence Function: Calibration of a Continuous Membrane Def...
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
 

Semelhante a Analysis of Software Complexity Measures for Regression Testing

Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
NNfamily
 
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD Editor
 
Class quality evaluation using class quality scorecards
Class quality evaluation using class quality scorecardsClass quality evaluation using class quality scorecards
Class quality evaluation using class quality scorecards
IAEME Publication
 
Class quality evaluation using class quality
Class quality evaluation using class qualityClass quality evaluation using class quality
Class quality evaluation using class quality
IAEME Publication
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ijcsa
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ijcsa
 
Unique fundamentals of software
Unique fundamentals of softwareUnique fundamentals of software
Unique fundamentals of software
ijcsit
 

Semelhante a Analysis of Software Complexity Measures for Regression Testing (20)

A Study of Significant Software Metrics
A Study of Significant Software MetricsA Study of Significant Software Metrics
A Study of Significant Software Metrics
 
Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
Performancetestingbasedontimecomplexityanalysisforembeddedsoftware 1008150404...
 
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
IJERD (www.ijerd.com) International Journal of Engineering Research and Devel...
 
Class quality evaluation using class quality scorecards
Class quality evaluation using class quality scorecardsClass quality evaluation using class quality scorecards
Class quality evaluation using class quality scorecards
 
Class quality evaluation using class quality
Class quality evaluation using class qualityClass quality evaluation using class quality
Class quality evaluation using class quality
 
1841 1843
1841 18431841 1843
1841 1843
 
1841 1843
1841 18431841 1843
1841 1843
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Quality Attribute: Testability
Quality Attribute: TestabilityQuality Attribute: Testability
Quality Attribute: Testability
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
 
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICSANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
ANALYSIS OF SOFTWARE QUALITY USING SOFTWARE METRICS
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Iv2515741577
Iv2515741577Iv2515741577
Iv2515741577
 
Iv2515741577
Iv2515741577Iv2515741577
Iv2515741577
 
Software Product Measurement and Analysis in a Continuous Integration Environ...
Software Product Measurement and Analysis in a Continuous Integration Environ...Software Product Measurement and Analysis in a Continuous Integration Environ...
Software Product Measurement and Analysis in a Continuous Integration Environ...
 
Ijetcas14 468
Ijetcas14 468Ijetcas14 468
Ijetcas14 468
 
1811 1815
1811 18151811 1815
1811 1815
 
1811 1815
1811 18151811 1815
1811 1815
 
Ijsea04021003
Ijsea04021003Ijsea04021003
Ijsea04021003
 
Unique fundamentals of software
Unique fundamentals of softwareUnique fundamentals of software
Unique fundamentals of software
 

Mais de IDES Editor

Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
IDES Editor
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
IDES Editor
 

Mais de IDES Editor (20)

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A Review
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive Thresholds
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through Steganography
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’s
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance Analysis
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
 
Mental Stress Evaluation using an Adaptive Model
Mental Stress Evaluation using an Adaptive ModelMental Stress Evaluation using an Adaptive Model
Mental Stress Evaluation using an Adaptive Model
 
Genetic Algorithm based Mosaic Image Steganography for Enhanced Security
Genetic Algorithm based Mosaic Image Steganography for Enhanced SecurityGenetic Algorithm based Mosaic Image Steganography for Enhanced Security
Genetic Algorithm based Mosaic Image Steganography for Enhanced Security
 
3-D FFT Moving Object Signatures for Velocity Filtering
3-D FFT Moving Object Signatures for Velocity Filtering3-D FFT Moving Object Signatures for Velocity Filtering
3-D FFT Moving Object Signatures for Velocity Filtering
 
Optimized Neural Network for Classification of Multispectral Images
Optimized Neural Network for Classification of Multispectral ImagesOptimized Neural Network for Classification of Multispectral Images
Optimized Neural Network for Classification of Multispectral Images
 
High Density Salt and Pepper Impulse Noise Removal
High Density Salt and Pepper Impulse Noise RemovalHigh Density Salt and Pepper Impulse Noise Removal
High Density Salt and Pepper Impulse Noise Removal
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Analysis of Software Complexity Measures for Regression Testing

  • 1. ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011 Analysis of Software Complexity Measures for Regression Testing Mrinal Kanti Debbarma1, Nagendra Pratap Singh2, Amit Kr. Shrivastava3, and Rishi Mishra4 Computer Science & Engineering Department MNNIT Allahabad, INDIA mkdbarma@yahoo.com,{nagendrasngh447,amu02303,rishi.msr}@gmail.com Abstract— Software metrics is applied evaluating and assuring II. BACKGROUND DETAILS software code quality, it requires a model to convert internal quality attributes to code reliability. High degree of complexity A. Regression Testing in a component (function, subroutine, object, class etc.) is bad Regression testing is a process that seeks to uncover errors, in comparison to a low degree of complexity in a component. Various internal codes attribute which can be used to indirectly which is performs after changes are made to program and can assess code quality. In this paper, we analyze the software be used before release of modified program. Regression test complexity measures for regression testing which enables the can be perform rerunning the existing test suites against tester/developer to reduce software development cost and modified program whether the changes are correct and have improve testing efficacy and software code quality. This no effect to unchanged part of the program. Regression test analysis is based on a static analysis and different approaches can be performing with adequate coverage that should be presented in the software engineering literature. the primary consideration. A regression test compares the operation of the new version of software to the operation of Index Terms—Software Complexity, Software Metrics, a older version. The key idea is that the behavior of the Regression Testing, Control Flow Metrics1. program should not change in unanticipated ways. I. INTRODUCTION Regression testing ensures that we do not introduce new bugs or resurrect old ones. Testing of software is an integral The Software complexity is based on well-known software part and key component of the software development metrics, this would be likely to reduce the time spent and process.This testing process can be used to test a system cost estimation in the testing phase of the software efficiently by selecting minimum set of test suite needed to development life cycle (SDLC), which can only be used after that change. Regression testing techniques can be described program coding is done. The path count complexity of a as follows: Let P be a program, and P’ be a modified program function is defined as product of the path complexity of of P, and T be a test suit for program P. Regression testing individual constructions. Improving quality of software is a can be attempt to revalidate modified program P’. From quantitative measure of the quality of source code. This can software engineering point of view software development be achieved through definition of metrics, values for which experience shows, that it is difficult to set measurable targets can be calculated by analyzing source code or program is when developing software products. Produced/developed coded. A number of Software measures widely used in the software has to be testable, reliable and maintainable. On the software industry are still not well understood [2]. Although other side, “You cannot control what you cannot some software complexity measures were proposed over thirty measure”[3]. To avoid this, regression testing is performed years ago and some others proposed later. Sometimes during changes are made to existing software; the purpose software growth is usually considered in terms of complexity of regression testing is to provide modified program do not of source code. Various metrics are used, which unable to obstruct existing, unchanged part of the software compare approaches and results. Not all metrics are similarly [1].Complexity of software is measuring of code quality; it easy to calculate for a given source code.[4]. Software requires a model to convert internal quality attributes to code systems are maintained by designers by doing regression reliability. High degree of complexity in a component (function, test periodically in expect to find bugs caused by modifications subroutine, object, class etc.) is bad in comparison to a low and hoping that modifications made in the software are degree of complexity in a component is considered good. correct. Software engineering goal is to measure different Software complexity measures which enables the tester to aspects of software projects, to find small set of attributes counts the acyclic execution paths through a component and that may characterize them. This paper presents an approach improve software code quality. In a program characteristic by which tester/developer can reduce software development that is one of the responsible factors that affect the developer’s cost and improve testing efficacy and software quality. productivity [6] in program comprehension, maintenance, and testing phase. There are several methods to calculate complexity measures were investigated, e.g. different version of LOC [6], NPATH [7], McCabe’s cyclomatic number [10], Data quality [10], Halstead’s software science [8] etc. 1 This research work was carried out at the Department of Computer Science & Engineering, MNNIT, Allahabad (UP), India-211004. Corresponding author : mkdbarma@yahoo.com 14 © 2011 ACEEE DOI: 01.IJIT.01.02.158
  • 2. ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011 B. Software Complexity Metrics: Properties { Complexity of software can be measure by selected int a=0; properties that cause complexity. Some properties influencing if(c) the complexity are as follows: { Size metrics a=1; Control flow metrics } } 1. Size metrics :Lines of Code The size of the program indicates the development The Value of NPATH is 2 as follows: complexity, which is known as Lines of Code (LOC). The simplest measure of complexity recommended by Hatton NP(if)=NP(if-range)+NP(expr) + 1 (1977) . This metric is very simple to use and measure the 3. McCabb’e Cyclomatic Complexity [10] number of source instruction required to solve a problem. While counting a number of instructions (source), line used Cyclomatic Number is one of the metric based on not for blank and commenting lines are ignored. The size, program size but more on information/control flow. It is based complexity of today’s software systems demands the on specification flow graph representation developed by application of effective testing techniques. Size attributes Thomas J Mc Cabb in 1976. Program graph is used to depict are used to describe physical magnitude, bulk etc. Lines of control flow. Nodes are represent processing task (one or code and Halstead’s software science[8] are examples of size more code statement) and edges represent control flow metrics. M. Halstead proposed a metrics called software between nodes. McCabe’s metrics[10] is example of control science [ Halstead 77]. flow metrics. To compute cyclomatic complexity V(G) as following methods: 2. Control Flow metrics: NPATH 1. For graph G with N vertices(nodes), E edges and P The control flow complexity metrics are derived from the connected components, control structure of a program. The control flow measure by V(G)=E-N+2p NPATH, invented by Nejmeh [7] ,it measures the acyclic 2. V(G)= Total number of bounded area +1 execution paths, NPATH is a metric which counts the number Where bounded area is in program’s CFG, any region of execution path through a functions. NPATH is example of encoded by nodes and edges. control flow metrics. One of the popular software complexity 3. Number of decision statement of the program +1 or measures NPATH complexity (NC) is determined as: number of predicate node+1 NPATH= statementi) The problem with McCabb’s Complexity is that, it fails to NP (if)=NP(expr)+NP(if-range)+1 distinguish between different conditional statements (control NP (if-else)=NP(expr)+NP(if-range)+NP(else-range) flow structures). Also does not consider nesting level of NP (while)=NP(expr)+NP(while-range)+1 various control flow structures. NPATH, have advantages NP (do-while)=NP(expr)+NP(do-range)+1 over the McCabb’s metric [7]. NP (for)=NP(for-range)+NP(expr1)+NP(expr2)+ NP (expr3)+1 4. Halstead Software Science [8] NP (“?”)=NP (expr1+NP(expr2)+NP(expr3)+2 Another alternative software complexity measures have NP (repeat)=NP(repeat-range)+1 to be considered. M. Halstead’s Software science measures NP (switch)=NP(expr)+ + [8] are very useful. Halseatd’s software science is based on a NP (default-range) enhancement of measuring program size by counting lines of NP (function call)=1 code. Halstead’s metrics measure the number of number of NP(sequential)=1 operators and the number of operands and their respective NP(return)=1 occurrence in the program (code). These operators and NP(continue)=1 operands are to be considered during calculation of Program NP(break)=1 Length, Vocabulary, Volume, Potential Volume, Estimated NP(goto label)=1 Program Length, Difficulty, and Effort and time by using NP(expressions)=Number of && and || operators in following formulae. Expression n1 = number of unique operators, Execution of Path Expressions (complexity expression) are n2 = number of unique operands, expressed, where “N” represents the number of statements N1 = total number of operators, and in the body of component (function and “NP (Statement)” N2 = total number of operands, represents the acyclic execution path complexity of statement Program Length (N)=N1+N2 i. Where “(expr)” represents expression which can be derived Program Vocabulary ( n)=n1+n2 from flow-graph representation of the statement. For example Volume of a Program ( V)=N*log2n NPATH measure as follows: Potential Volume of a Program Void func-if-with-assignment ( int c) (V*)=(2+n2)log2(2+n2) Program Level (L)=L=V*/V 15 © 2011 ACEEE DOI: 01.IJIT.01.02.158
  • 3. ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011 Program Difficulty (D)=1/L complexity measures program graph is used to depict control Estimated Program Length (N)=n1log2n1+n2log2n2 flow. Nodes are representing processing task (one or more Estimated Program Level (L)=2n2/(n1N2) code statement) and edges represent control flow between Estimated Difficulty (D)=1/L=n1N2/2n2 nodes. Consider an example, Let P be the old version of Effort (E)=V/L=V*D= (n1 x N2) / 2n2 program and P’ be the new version of program in C given Time (T)=E/S [“S” is Stroud number (given by John below: Stroud), The constant “S” represents the speed of a Consider a program from figure 1. the complexity measured Programmer. The value “S” is 18] by us and computed the complexity of the other proposed One major weakness of this complexity is that they do not measures i.e Line of Code (LOC), NPATH Complexity (NC), measure control flow complexity and difficult to compute McCabb’s complexity (MCC) and Halstead’s software science during fast and easy computation. (HSS). In Figure 2, we have done some modification to the given example of program P i.e some lines are added in the III. OUR METHODOLOGY existing program. Some changes are made for regression testing in the existing program and calculated measures from Our method deals with analysis of software complexity both the programs P and P’ in Table 1 and Table II as follows: metrics for regression testing. We have considered four program characteristics from the literature that are #include<stdio.h> void main() responsible for complexity measures. viz LOC, NPATH, MCC, 1: { and HSS. For this study, we have selected only program 1: int a,b,c,n; written in C language given in Figure 1 and Figure 2. The 1: scanf(“%d %d”, & a,&b); 2: if (a < b) structure of a program P ad P’ can be represented by a control 2: { flow graph in figure 3, G(P)={N,E,s,e}, where N is a set of 3: c = a; nodes representing basic blocks of code or branch points in 3: } 3: else the function; E is a set of edges representing flow of control 3: { in the function; s is the unique entry node and e is the unique 4: c = b; exit node 4: } 5: n = c; A. Methods: 6: while ( n < 8 ) 6: { There are four steps can be used to collect the data as 7: if ( b > c ) described below. We compute weights of software complexity 7: { 8: c = 2; metrics for original program P and modified program P’ 8: } (required element): 8: else Step 1: Compute LOC by counting frequency of line 8: { 9: n = n + c +7; numbers. 9: } (i) Blank lines and 10 : n = n + 1; (ii) Commenting lines are ignored. 10: } 11: Printf(“%d%d%d”,a,b, n); 11. } Step 2: Calculate the NPATH complexity measures also known as path count metrics. Figure 1. Source Program P #include<stdio.h> void main() Step 3: Compute McCabe complexity. 1: { 1: int a,b,c,n; Step 4: Count the Halstead’s Software science of software 1: scanf(“%d %d”, & a,&b); 2: if (a < b) primitives. 2: { 3: c = a; B. Selected Metrics 3: } We have measured LOC, NPATH i.e. acyclic execution 3: else 3: { paths through components for in an attempt at program 4: c = b; optimization, McCabe and finally Halstead’s software science 4: } complexity metrics. While counting a number of instructions 5: n = c; 6: while ( n < = 8 ) (source), line used for blank and commenting lines are 6: { ignored. NPATH measures the acyclic execution paths which 7: if ( b > c ) counts the number of execution path through a functions. 7: { 8: c = 2; Halstead’s metrics measure the number of number of operators 8: } and the number of operands and their respective occurrence 8: else in the program (code). These operators and operands are to 8: { 9: n = n + c +7; be considered during calculation of Program Length, 9: if ( n % 7 == 0 ) Vocabulary, Volume, Potential Volume, Estimated Program 9: { Length, Difficulty, and Effort and time. For McCabb’s 10: c = c + 2; 16 © 2011 ACEEE DOI: 01.IJIT.01.02.158
  • 4. ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011 10: } This measure is used by S.D Conte in the year of 1986 [6]. 10: else The equivalent size measure is basically effort required to 10: { 11: c =- -; develop software with new code and re-use code is equivalent 11: } to the effort of developing the same software. During software 11: } development, most of the time re-uses software from the 12: n =++; 12: } previous code/program. It has been reported that, at IBM’s 13: Printf(“%d%d%d”,a,b, n); Santa Teresa Laboratory, 77% of all program code is written 13: } in place to add new code to existing code [6]. Formula Figure 2. Modified Program P’ proposed by Bailey and Basili [6] is used to compute the equivalent size measure as follows: Se=Sn+.02* Su Where, Se is equivalent size measure Sn is a measure for newly written code and Su is a measure for redundant/re-use code (adopted from existing code) Considering a program P and P’, we are able to extract the following equivalent size measures: Su=24 (i.e. consider as redundant/ re-use code) Sn= 34-24 (i.e .the total lines of code subtract the lines of redundant/re-use code) Se= Sn+0.2*Su = 10+0.2*24 =15 (LOC) Equivalent size measure (ESM) may be helpful during measurement of software maintenance phase. In this paper, Figure 3.Control Flow Graph for Program P and P’ we work with four program characteristics measures. From the above table I and Table II, it is also identified that change TABLE I. COMPUTED WEIGHTS SOFTWARE COMPLEXITY MEASURES FROM PROGRAM P behavior of program characteristics IV. CONCLUSION Software complexity metrics have a propensity to be used in judging the quality of software development and metrics are relatively easy to generate. The size, complexity and importance of today’s software systems demand the application of effective testing techniques. In addition, it was observed that software complexity metrics which enables the tester to counts the acyclic execution paths through a component and improve software productivity and software quality. This approach could be lead to reduce software development cost and improve testing efficacy and software TABLE II. C OMPUTED WEIGHTS SOFTWARE COMPLEXITY MEASURES FROM PROGRAM P’ quality. Software metrics with Lines of Code (LOC), Npath (NC), McCabb’s complexity metrics (MCC) and Halstead’s Software science (HSS) are calculated and observed the change behavior of the code. Finally, the evaluated values from both P and P’, the changed behavior of code is identified and tester can use this approach to execute test case and improve software productivity and software quality. In the future study, more complicated program has to be measured with other attributes (complexity measures). C. Equivalent Size Measures ( ESM): Equivalent size measures is code redundancy inside a program may be viewed as the intra-program re-use of code. 17 © 2011 ACEEE DOI: 01.IJIT.01.02.158
  • 5. ACEEE Int. J. on Information Technology, Vol. 01, No. 02, Sep 2011 REFERENCES [7] B.A. Nejmeh. NPATH: A Measure of Execution Path Complexity and Its Applications. Comm. of the ACM, 31(2):188- [1] Shin Yoo & Mark Harman, “Regression Testing Minimization, 210, February 1988. Selection and Prioritization - A Survey”, Technical Report TR- [8] M. Halstead. Elements of Software Science. North- 09-09 Holland,1977. [2] Thomas J.McCabe “A Complexity Measure” ,IEEE [9] K.K Aggarwal & Yogesh Singh “Software Engineering” Transactions on Software Engineering, Vol, Se-2,1976. New Age International, 2003 [3] T.De Marco; Controlling Software Projects; Prrntice Hall, New [10] T.A. McCabe. A Complexity Measure. IEEE York,1982. Transactions on Software Engineering, 2(4):308-320, [4] Israel Herraiz, Jesus M. Gonzalez-Barahona, Gregorio Robles,” December 1976 Towards a theoretical model for software growth” in 29th [11] A.Fitzsimmons and T. Love;” A Review and Evaluation International Conference on Software Engineering Workshops of Software Science”,Computing Survey,Vol.10,No.1 March ,1978 (ICSEW’07). [12] Norman Fenton, “ Software Measurement: A Necessary [5] B. Beizer, Software Testing Techniques, Van Nostrand Scientific Basis “IEEE Transaction on Software Engineering, Reinhold, 2nd Ed.,1990. Vol.20,No.3, March,1994, [6] S.D. Conte, H.E Dunsmore, and V.Y. Shen. Software Engineering [13] Software Engineering – A Practitioner’s Approach, Metrics and Models. Benjamin/Cummings Publishing Company, Roger S. Pressman; McGraw-Hill International Inc., 1986. Edition. [14] Rajib Mall, “Fundamentals of Software Engineering”, Prentice Hall 18 © 2011 ACEEE DOI: 01.IJIT.01.02.158