SlideShare uma empresa Scribd logo
1 de 32
What is the Long-Term
 Impact of Changes?



   Irina Ioana Brudaru • Andreas Zeller
       Saarland University, Germany
medical school
                                                             Italy
                                CS        Erasmus           (Trento)
Highschool


                                                        Germany
                                                         (Braunschweig)

                                                         Master



                                          Saarbrücken                            UK
                                                (MPI)

        PhD
                                                                 Saarbrücken
                               Industry                     (Computational Linguistics)
medical school
                                                             Italy
                                CS        Erasmus           (Trento)
Highschool


                What if?                                Germany
                                                         (Braunschweig)

                                                         Master



                                          Saarbrücken                            UK
                                                (MPI)

        PhD
                                                                 Saarbrücken
                               Industry                     (Computational Linguistics)
medical school
                                                              Italy or
                                                                       y!
                                 CS        Erasmus
                                                            hi   st
                                                            (Trento)
Highschool                                                t
                                                    oj ec
                                                  pr
                                           ” in
                 Whathat
                       if? if ?                           Germany
                                                            (Braunschweig)

                    “W
                 no                                         Master

           ve
     e   ha                                Saarbrücken                              UK
    W                                             (MPI)

         PhD
                                                                    Saarbrücken
                                Industry                       (Computational Linguistics)
Assessing Impact
             Impact of a change =
Its effect throughout the lifetime of a project


  Good Changes:               Bad Changes:
  • Fixes                     • Bugs
  • Refactorings              • Bug-Inducing
Impact
• How do we know a change A impacts
  another change B?
• General solution: change impact analysis
  (a generally undecidable problem)
• Pragmatic solution:
  B uses (or redefines) an entity (class,
  method, variable) defined by A
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



          1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
AnnotationTestMixed
                                            1.5



 !        1.2                1.4

1.1                                                       1.7

                    1.3



                                            1.6

Version archives + bug information = change genealogy graph
58
                                  EclipseFile
                                  25



                                                 71
                                                                28



                                  17                                            55

                  24                                       33
                                            60


                                                                                43        69
        49
                                                                                                 61
                  56
                                                      27
                             38                  23        39

                                                                                                72    46
                                        67                      34

    8
                                                                                      30
                                       44                             54

                       2
                                                                                                40
                                        41                           59
             13
                                                                                     22
                                                 52        50
5                           16                        51                                        18




    4                  11
                                                                                           20


                                                                           53
                                  12                                                       36
                                       42
                                                      47
58
                                  EclipseFile
                                  25



                                                 71
                                                                28
                                                                                                      Log message: Bug 33792
                                                                                                       No progress dialog at
                                                                                                        start of replaceWith
                                                                                                         command[...]This
                                  17                                            55                         caused many
                  24                                       33                                           dependencies to be
                                            60                                                                affected.

                                                                                43        69
        49
                                                                                                 61
                  56
                                                      27
                             38                  23        39

                                                                                                72           46
                                        67                      34

    8
                                                                                      30
                                       44                             54

                       2
                                                                                                40
                                        41                           59
             13
                                                                                     22
                                                 52        50
5                           16                        51                                        18




    4                  11
                                                                                           20


                                                                           53
                                  12                                                       36
                                       42
                                                      47
58
                                  EclipseFile
                                  25



                                                 71
                                                                28
                                                                                                      Log message: Bug 33792
                                                                                                       No progress dialog at
                                                                                                        start of replaceWith
                                                                                                         command[...]This
                                  17                                            55                         caused many
                  24                                       33                                           dependencies to be
                                            60                                                                affected.

                                                                                43        69
        49
                                                                                                 61
                  56
                                                      27
                             38                  23        39

                                                                                                72           46
                                        67                      34

    8
                                                                                      30
                                       44                             54

                       2
                                                                                                40
                                        41                           59
             13
                                                                                     22
                                                 52        50
5                           16                        51                                        18




    4                  11
                                                                                           20


                                                                           53
                                                                                                       Performing changes in a
                                  12                                                       36
                                       42                                                                properties file not
                                                      47                                                 viewed as a change
58
                                  EclipseFile
                                  25



                                                  71
                                                                   28
                                                                                                         Log message: Bug 33792
                                                                                                          No progress dialog at
                                                                                                           start of replaceWith
                                                                                                            command[...]This
                                  17                                               55                         caused many
                  24                                          33                                           dependencies to be
                                            60                                                                   affected.

                                                                                   43        69
        49
                                                                                                    61
                  56
                                                         27
                             38                   23          39

                                                                                                   72           46
                                        67                         34

    8
                                                                                         30
                                       44                                54
                                                 15/24
                       2
                                                                                                   40
                                        41                              59
             13
                                                                                        22
                                                  52          50
5                           16                           51                                        18




    4                  11
                                                                                              20


                                                                              53
                                                                                                          Performing changes in a
                                  12                                                          36
                                       42                                                                   properties file not
                                                         47                                                 viewed as a change
58
                                  EclipseFile
                                  25



                                                  71
                                                                   28
                                                                                                         Log message: Bug 33792
                                                                                                          No progress dialog at
                                                                                                           start of replaceWith
                                                                                                            command[...]This
                                  17                                               55                         caused many
                  24                                          33                                           dependencies to be
                                            60                                                                   affected.

                                                                                   43        69
        49
                                                                                                    61
                  56
                                                         27
                             38                   23          39

                                                                                                   72           46
                                        67                         34

    8
                                                                                         30
                                       44                                54
                                                 15/24
                       2
                                                                                                   40
                                        41                              59
             13
                                                                                        22
                                                  52          50
5                           16                           51                                        18




    4                  11
                                                                                              20


                                                                              53
                                                                                                          Performing changes in a
                                  12                                                          36
                                                                                                            properties file not
                                       42
                                                                             18/31                          viewed as a change
                                                         47
58
                                  EclipseFile
                                  25



                                                  71
                                                                  28
                                                                                                        Log message: Bug 33792
                                                                                                         No progress dialog at
                                                                                                          start of replaceWith
                                                                                                           command[...]This
                                  17                                              55                         caused many
                  24                                         33                                           dependencies to be
                                            60                                                                  affected.

                                                                                  43        69
        49
                                                                                                   61
                  56
                                                        27
                             38                   23         39

                                                                                                  72           46
                                        67                        34

    8
                                                                                        30
                                       44                               54
                                                 0.62
                       2
                                                                                                  40
                                        41                             59
             13
                                                                                       22
                                                  52         50
5                           16                          51                                        18




    4                  11
                                                                                             20


                                                                             53                          Performing changes in a
                                  12                                                         36
                                                                                                           properties file not
                                       42
                                                                            0.58                           viewed as a change
                                                        47
Metrics for Changes

• Quality – the average ratio fixes vs. features
  A change decreases quality if it spins off many fixes

• Effort – the long-term maintenance effort
  A change increases effort if its descendants require lots of time

• Maintainability – the average change spread
  A change decreases maintainability (and modularity)
  if its descendants change several locations at once
Future Work

• More metrics
  to assess the long-term impact

• Finer dependencies
  most important: distinguish between method targets

• Similarity measures for recommendations
  and evaluate their suitability for making accurate predictions
Recommendations
Related Work
Related Work
                   Bug 42233 was reported.




        1.11                 1.14            1.16       1.18
      "#$%&'$         !quot;#$%&'$         (quot;#$%&'$    ./0,-$12+$
      ()&*+,-          ()&*+,-          ()&*+,-     34455
                                                    6)&*+,-7
                                                    "#$!quot;#$(quot;#


                                                                                  Figure 3: Relating changes to locations.
                Hatari
      Figure 2: Locating fix-inducing changes for bug 42233
                                                                      Right now, we use the CVS annotate command, but it is straight-
4.     HOW HATARI WORKS
                                                                      forward to implement a similar feature for other version control
Let us now briefly discuss how HATARI obtains the risk informa-        systems.
tion. HATARI proceeds in four automatic steps:                           HATARI uses these annotations and the set of changed lines to
                                                                      find candidates for fix-inducing changes. For our example, we as-
     1. HATARI identifies the fixes made to a software system.
                                                                      sume that lines 20, 40, and 60 have been changed; thus our candi-
     2. For each of these fixes, HATARI identifies the fix-inducing      dates are the changes leading to revisions 1.11, 1.14, and 1.16.
        change(s) that last touched the fixed locations.                  Finally, HATARI uses the bug database to rule out changes that
                                                                      cannot be fix-inducing because they have been made after the bug
     3. For each of the fix-inducing changes, HATARI determines        was reported, i.e., they cannot be real causes for the bug. In our
        their location.                                               example, revisions 1.14 and 1.16 are not fix-inducing. Without the
                                                                      connection to the bug database, they would be marked fix-inducing
     4. Finally, for every location in the source code, HATARI mea-   and therefore be false positives.
        sures their risk of change.                                      In our example, revision 1.11 is the only fix-inducing change.
                                                                      Frequently, but not always, such fix-inducing changes introduced
The following sections provide details on these steps.                the bug that has been fixed later on. However, such changes are
                                                                      always unstable and thus risky.
4.1 Identifying Fixes                                                    Formally, we define a induced-change relation J ⊆ C × C that
In order to locate fix-inducing changes, HATARI first needs to know     connects two changes ci and cj with each other if and only if cj
if a change is a fix. While advanced version control systems al-       changed a line that was introduced in ci ; in terms of CVS this means
Related Work
                                                                                                                                                       some additional information relevant to th
                                                                                   Original Program P       Set of Unit Tests   Changed Program P’
                   Bug 42233 was reported.                                                                                                             (e.g., the choice of call graph constructio
                                                                                                                                                       used and some policy settings for dealing
                                                                                                           Call Graph Builder                          Users can also point Chianti directly at a
                                                                                                                                                       sentation of the call graphs that are to be
                                                                                                               CHIANTI                                 enable the use of call graphs that have be
                                                                                Call Graphs of Tests in                         Call Graphs of Tests   external tools. [5] presented the experime
                                                                                                            Atomic Change
                                                                                         P                                             in P’           call graphs.
                                                                                                               Decoder
        1.11                 1.14            1.16       1.18                                                                                              When the analysis results are available
                                                                                                                                                       anti results view will stack on top of the o
      "#$%&'$         !quot;#$%&'$         (quot;#$%&'$    ./0,-$12+$                                              Atomic Changes                             Java perspective. Since Chianti is expec
      ()&*+,-          ()&*+,-          ()&*+,-                                                             & Dependences
                                                    34455                                                                                              programming and debugging, we integra
                                                                                                                                                       Java perspective rather than define a new
                                                    6)&*+,-7                                                Change Impact                              Chianti results view provides users two w
                                                    "#$!quot;#$(quot;#                       Affected Tests
                                                                                                              Analyzer
                                                                                                                                Affecting Changes      the analysis results.
                                                                                                                                                          • The affecting changes view shows a
                                                                                            Figure1: Chianti architecture.
                                                                                             Figure 3: Relating changes to locations.
                Hatari                                                                                    Chianti
      Figure 2: Locating fix-inducing changes for bug 42233                                                                         view.                           Each affected test can be exp
                                                                                                                                                            set of affecting changes. Each affec
                                                                                                                                                            atomic change that can be expand
                                                                      Rightby isolating theuse the CVS annotate command, but it is straight-
                                                                              now, we changes responsible for the failure, Chianti
4.     HOW HATARI WORKS                                                                                                                                     show its prerequisite changes. This
                                                                                                                                                            an idea of the different “threads” of
                                                                      forward been integrated closely a similar afeature for other version control
                                                                            has to implement with Eclipse, widely used ex-
                                                                                                                                                            occurred.
Let us now briefly discuss how HATARI obtains the risk informa-              tensible open-source development environment for Java (see
                                                                      systems.
                                                                            www.eclipse.org).                                                  • The atomic-changes-by-category view
tion. HATARI proceeds in four automatic steps:                           HATARI uses these annotations and the set of changed lines to            ent atomic changes grouped by cate
                                                                            2. CHIANTI PROTOTYPE                                                  changes and dependences shown in
                                                                      find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s
                                                                                                    fix-inducing which contributes                 related to any specific
     1. HATARI identifies the fixes made to a software system.                   Chianti is designed
                                                                                                                                                  sults of comparison of two versions o
                                                                      sume athat lines 20, 40, aand 60 have been Java
                                                                              launch configuration and Chianti results view to the changed; thus our candi-
                                                                            perspective. Chianti conceptually can be divided into three    Each of these user interface components
     2. For each of these fixes, HATARI identifies the fix-inducing      dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl
                                                                             are the changes leading to for deriving set                   grated and 1.16.
                                                                            of atomic changes from two versions of a Java project, which
        change(s) that last touched the fixed locations.                     is achieved via a pairwise comparison of database to
                                                                                                                                           on an atomic change
                                                                         Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan
                                                                                                                                           editor
                                                                                                                                                                     that
                                                                                                                                                       the associated program fragmen
                                                                      cannot betest call graphsthe two project versions. Another part made after the bug
                                                                            trees of fix-inducing because they have been
                                                                                     the classes in
                                                                            reads                    for the original and edited projects,
                                                                                                                                           3. theREFERENCES
                                                                      was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An
                                                                            computes affected they their affecting changes. The
     3. For each of the fix-inducing changes, HATARI determines                                                                             [1]         A. Bohner and Robert

        their location.
                                                                            third
                                                                                   revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A
                                                                            change impact information. Chianti’s
                                                                                                                       the
                                                                      example,part manages the viewsandallowGUIare to visualize
                                                                                                                           also includes a
                                                                                                                                               software change impact analysis.
                                                                                                                                               Robert S. Arnold, editors, Software Change
                                                                                                                                               pages 1–26. IEEE Computer Society Press, 1
                                                                      connection to bethe bug the set of tests associated with the
                                                                            launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro
                                                                            versions
                                                                                       to analyzed,      allows users they the project     [2] James fix-inducing
                                                                                                                                               dynamic impact analysis. In Proc. of the Int
     4. Finally, for every location in the source code, HATARI mea-   and therefore the call graphs to be used. Figure 1 depicts
                                                                            project and be false positives.                                    on Software Engineering, pages 308–318, 20
                                                                                                                                           [3] Alessandro Orso, Taweesup Apiwattanapong
                                                                            Chianti’s architecture.
        sures their risk of change.                                      In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc
                                                                               Although Chianti intended for interactive use, only
                                                                                                                                               Rothermel, and Mary Jean
                                                                                                                                               dynamic impact analysis algorithms. In
                                                                                                                                                                                       emp

                                                                            rently require
                                                                            two separate Java
                                                                                              not always,of such fix-inducing
                                                                                                  two versions       program are
                                                                      Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin
                                                                                                                                  the cur-     491–500, introduced
                                                                                                                                               International Conf.
                                                                                                                                                                     Scotland, 2004.
The following sections provide details on these steps.                the bug
                                                                            rent that has its local fixed Thus, a on. However, such changes are for impact an
                                                                                 version with been history. later typical scenario         [4] Alessandro Orso, Taweewup Apiwattanapon
                                                                                                                                               Harrold. Leveraging field data
                                                                            of a Chianti session begins with the programmer editing the        testing. In Proc. of European Software Eng
                                                                      always unstable extracting therisky.stable version of this
                                                                            current project, and thus lastest                                  ACM SIGSOFT Symp. on the Foundations
4.1 Identifying Fixes                                                       project from
                                                                            grammer     we define a into the workspace. The con-
                                                                         Formally,thenCVS repository induced-change relation J ⊆ C × C that
                                                                                            starts the change impact analysis launch
                                                                                                                                      pro-     Engineering (ESEC/FSE’03), Helsinki, Fin
                                                                                                                                               2003.
                                                                                                                                           [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
In order to locate fix-inducing changes, HATARI first needs to know           figuration, and changes citwo these j with Currently,
                                                                      connects twosuiteselects these with projects of interest as well
                                                                            as the test        associated
                                                                                                                                               Ophelia only if c tool for
                                                                                                              and cprojects. each other if andChesley.InChianti:ofAthe Conf.change
                                                                                                                                               Java programs.     Proc.
                                                                                                                                                                          j          on Ob
if a change is a fix. While advanced version control systems al-       changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
                                                                            we allow tests that was introduced in cand JUnit               of CVS this means
                                                                                                                                               Programming, Systems, Languages and App

                                                                              tests
Related Work
                                                                                                                                                       some additional information relevant to th
                                                                                   Original Program P       Set of Unit Tests   Changed Program P’
                   Bug 42233 was reported.                                                                                                             (e.g., the choice of call graph constructio
                                                                                                                                                       used and some policy settings for dealing
                                                                                                           Call Graph Builder                          Users can also point Chianti directly at a
                                                                                                                                                       sentation of the call graphs that are to be
                                                                                                               CHIANTI                                 enable the use of call graphs that have be
                                                                                Call Graphs of Tests in                         Call Graphs of Tests   external tools. [5] presented the experime
                                                                                                            Atomic Change
                                                                                         P                                             in P’           call graphs.
                                                                                                               Decoder
        1.11                 1.14            1.16       1.18                                                                                              When the analysis results are available
                                                                                                                                                       anti results view will stack on top of the o
      "#$%&'$         !quot;#$%&'$         (quot;#$%&'$    ./0,-$12+$                                              Atomic Changes                             Java perspective. Since Chianti is expec
      ()&*+,-          ()&*+,-          ()&*+,-                                                             & Dependences
                                                    34455                                                                                              programming and debugging, we integra
                                                                                                                                                       Java perspective rather than define a new
                                                    6)&*+,-7                                                Change Impact                              Chianti results view provides users two w
                                                    "#$!quot;#$(quot;#                       Affected Tests
                                                                                                              Analyzer
                                                                                                                                Affecting Changes      the analysis results.
                                                                                                                                                          • The affecting changes view shows a
                                                                                            Figure1: Chianti architecture.
                                                                                             Figure 3: Relating changes to locations.
                Hatari                                                                                    Chianti
      Figure 2: Locating fix-inducing changes for bug 42233                                                                         view.                           Each affected test can be exp
                                                                                                                                                            set of affecting changes. Each affec
                                                                                                                                                            atomic change that can be expand
                                                                      Rightby isolating theuse the CVS annotate command, but it is straight-
                                                                              now, we changes responsible for the failure, Chianti
4.     HOW HATARI WORKS                                                                                                                                     show its prerequisite changes. This
                                                                                                                                                            an idea of the different “threads” of
                                                                      forward been integrated closely a similar afeature for other version control
                                                                            has to implement with Eclipse, widely used ex-
                                                                                                                                                            occurred.
Let us now briefly discuss how HATARI obtains the risk informa-              tensible open-source development environment for Java (see
                                                                      systems.
                                                                            www.eclipse.org).                                                  • The atomic-changes-by-category view
tion. HATARI proceeds in four automatic steps:                           HATARI uses these annotations and the set of changed lines to            ent atomic changes grouped by cate
                                                                            2. CHIANTI PROTOTYPE                                                  changes and dependences shown in
                                                                      find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s
                                                                                                    fix-inducing which contributes                 related to any specific
     1. HATARI identifies the fixes made to a software system.                   Chianti is designed
                                                                                                                                                  sults of comparison of two versions o
                                                                      sume athat lines 20, 40, aand 60 have been Java
                                                                              launch configuration and Chianti results view to the changed; thus our candi-
                                                                            perspective. Chianti conceptually can be divided into three    Each of these user interface components
     2. For each of these fixes, HATARI identifies the fix-inducing      dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl
                                                                             are the changes leading to for deriving set                   grated and 1.16.
                                                                            of atomic changes from two versions of a Java project, which
        change(s) that last touched the fixed locations.                     is achieved via a pairwise comparison of database to
                                                                                                                                           on an atomic change
                                                                         Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan
                                                                                                                                           editor
                                                                                                                                                                     that
                                                                                                                                                       the associated program fragmen
                                                                      cannot betest call graphsthe two project versions. Another part made after the bug
                                                                            trees of fix-inducing because they have been
                                                                                     the classes in
                                                                            reads                    for the original and edited projects,
                                                                                                                                           3. theREFERENCES
                                                                      was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An
                                                                            computes affected they their affecting changes. The
     3. For each of the fix-inducing changes, HATARI determines                                                                             [1]         A. Bohner and Robert

        their location.
                                                                            third
                                                                                   revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A
                                                                            change impact information. Chianti’s
                                                                                                                       the
                                                                      example,part manages the viewsandallowGUIare to visualize
                                                                                                                           also includes a
                                                                                                                                               software change impact analysis.
                                                                                                                                               Robert S. Arnold, editors, Software Change
                                                                                                                                               pages 1–26. IEEE Computer Society Press, 1
                                                                      connection to bethe bug the set of tests associated with the
                                                                            launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro
                                                                            versions
                                                                                       to analyzed,      allows users they the project     [2] James fix-inducing
                                                                                                                                               dynamic impact analysis. In Proc. of the Int
     4. Finally, for every location in the source code, HATARI mea-   and therefore the call graphs to be used. Figure 1 depicts
                                                                            project and be false positives.                                    on Software Engineering, pages 308–318, 20
                                                                                                                                           [3] Alessandro Orso, Taweesup Apiwattanapong
                                                                            Chianti’s architecture.
        sures their risk of change.                                      In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc
                                                                               Although Chianti intended for interactive use, only
                                                                                                                                               Rothermel, and Mary Jean
                                                                                                                                               dynamic impact analysis algorithms. In
                                                                                                                                                                                       emp

                                                                            rently require
                                                                            two separate Java
                                                                                              not always,of such fix-inducing
                                                                                                  two versions       program are
                                                                      Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin
                                                                                                                                  the cur-     491–500, introduced
                                                                                                                                               International Conf.
                                                                                                                                                                     Scotland, 2004.
The following sections provide details on these steps.                the bug
                                                                            rent that has its local fixed Thus, a on. However, such changes are for impact an
                                                                                 version with been history. later typical scenario         [4] Alessandro Orso, Taweewup Apiwattanapon



                 Change Distiller
                                                                                                                                               Harrold. Leveraging field data
                                                                            of a Chianti session begins with the programmer editing the        testing. In Proc. of European Software Eng
                                                                      always unstable extracting therisky.stable version of this
                                                                            current project, and thus lastest                                  ACM SIGSOFT Symp. on the Foundations
4.1 Identifying Fixes                                                       project from
                                                                            grammer     we define a into the workspace. The con-
                                                                         Formally,thenCVS repository induced-change relation J ⊆ C × C that
                                                                                            starts the change impact analysis launch
                                                                                                                                      pro-     Engineering (ESEC/FSE’03), Helsinki, Fin
                                                                                                                                               2003.
                                                                                                                                           [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
In order to locate fix-inducing changes, HATARI first needs to know           figuration, and changes citwo these j with Currently,
                                                                      connects twosuiteselects these with projects of interest as well
                                                                            as the test        associated
                                                                                                                                               Ophelia only if c tool for
                                                                                                              and cprojects. each other if andChesley.InChianti:ofAthe Conf.change
                                                                                                                                               Java programs.     Proc.
                                                                                                                                                                          j          on Ob
if a change is a fix. While advanced version control systems al-       changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
                                                                            we allow tests that was introduced in cand JUnit               of CVS this means
                                                                                                                                               Programming, Systems, Languages and App

                                                                              tests
Related Work
                                                                                                                                                       some additional information relevant to th
                                                                                   Original Program P       Set of Unit Tests   Changed Program P’
                   Bug 42233 was reported.                                                                                                             (e.g., the choice of call graph constructio
                                                                                                                                                       used and some policy settings for dealing
                                                                                                           Call Graph Builder                          Users can also point Chianti directly at a
                                                                                                                                                       sentation of the call graphs that are to be
                                                                                                               CHIANTI                                 enable the use of call graphs that have be
                                                                                Call Graphs of Tests in                         Call Graphs of Tests   external tools. [5] presented the experime
                                                                                                            Atomic Change
                                                                                         P                                             in P’           call graphs.
                                                                                                               Decoder
        1.11                 1.14            1.16       1.18                                                                                              When the analysis results are available
                                                                                                                                                       anti results view will stack on top of the o
      "#$%&'$         !quot;#$%&'$         (quot;#$%&'$    ./0,-$12+$                                              Atomic Changes                             Java perspective. Since Chianti is expec
      ()&*+,-          ()&*+,-          ()&*+,-                                                             & Dependences
                                                    34455                                                                                              programming and debugging, we integra
                                                                                                                                                       Java perspective rather than define a new
                                                    6)&*+,-7                                                Change Impact                              Chianti results view provides users two w
                                                    "#$!quot;#$(quot;#                       Affected Tests
                                                                                                              Analyzer
                                                                                                                                Affecting Changes      the analysis results.
                                                                                                                                                          • The affecting changes view shows a
                                                                                            Figure1: Chianti architecture.
                                                                                             Figure 3: Relating changes to locations.
                Hatari                                                                                    Chianti
      Figure 2: Locating fix-inducing changes for bug 42233                                                                         view.                           Each affected test can be exp
                                                                                                                                                            set of affecting changes. Each affec
                                                                                                                                                            atomic change that can be expand
                                                                      Rightby isolating theuse the CVS annotate command, but it is straight-
                                                                              now, we changes responsible for the failure, Chianti
4.     HOW HATARI WORKS                                                                                                                                     show its prerequisite changes. This
                                                                                                                                                            an idea of the different “threads” of
                                                                      forward been integrated closely a similar afeature for other version control
                                                                            has to implement with Eclipse, widely used ex-
                                                                                                                                                            occurred.
Let us now briefly discuss how HATARI obtains the risk informa-              tensible open-source development environment for Java (see
                                                                      systems.
                                                                            www.eclipse.org).                                                  • The atomic-changes-by-category view
tion. HATARI proceeds in four automatic steps:                           HATARI uses these annotations and the set of changed lines to            ent atomic changes grouped by cate
                                                                            2. CHIANTI PROTOTYPE                                                  changes and dependences shown in
                                                                      find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s
                                                                                                    fix-inducing which contributes                 related to any specific
     1. HATARI identifies the fixes made to a software system.                   Chianti is designed
                                                                                                                                                  sults of comparison of two versions o
                                                                      sume athat lines 20, 40, aand 60 have been Java
                                                                              launch configuration and Chianti results view to the changed; thus our candi-
                                                                            perspective. Chianti conceptually can be divided into three    Each of these user interface components
     2. For each of these fixes, HATARI identifies the fix-inducing      dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl
                                                                             are the changes leading to for deriving set                   grated and 1.16.
                                                                            of atomic changes from two versions of a Java project, which
        change(s) that last touched the fixed locations.                     is achieved via a pairwise comparison of database to
                                                                                                                                           on an atomic change
                                                                         Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan
                                                                                                                                           editor
                                                                                                                                                                     that
                                                                                                                                                       the associated program fragmen
                                                                      cannot betest call graphsthe two project versions. Another part made after the bug
                                                                            trees of fix-inducing because they have been
                                                                                     the classes in
                                                                            reads                    for the original and edited projects,
                                                                                                                                           3. theREFERENCES
                                                                      was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An
                                                                            computes affected they their affecting changes. The
     3. For each of the fix-inducing changes, HATARI determines                                                                             [1]         A. Bohner and Robert

        their location.
                                                                            third
                                                                                   revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A
                                                                            change impact information. Chianti’s
                                                                                                                       the
                                                                      example,part manages the viewsandallowGUIare to visualize
                                                                                                                           also includes a
                                                                                                                                               software change impact analysis.
                                                                                                                                               Robert S. Arnold, editors, Software Change
                                                                                                                                               pages 1–26. IEEE Computer Society Press, 1
                                                                      connection to bethe bug the set of tests associated with the
                                                                            launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro
                                                                            versions
                                                                                       to analyzed,      allows users they the project     [2] James fix-inducing
                                                                                                                                               dynamic impact analysis. In Proc. of the Int
     4. Finally, for every location in the source code, HATARI mea-   and therefore the call graphs to be used. Figure 1 depicts
                                                                            project and be false positives.                                    on Software Engineering, pages 308–318, 20
                                                                                                                                           [3] Alessandro Orso, Taweesup Apiwattanapong
                                                                            Chianti’s architecture.
        sures their risk of change.                                      In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc
                                                                               Although Chianti intended for interactive use, only
                                                                                                                                               Rothermel, and Mary Jean
                                                                                                                                               dynamic impact analysis algorithms. In
                                                                                                                                                                                       emp

                                                                            rently require
                                                                            two separate Java
                                                                                              not always,of such fix-inducing
                                                                                                  two versions       program are
                                                                      Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin
                                                                                                                                  the cur-     491–500, introduced
                                                                                                                                               International Conf.
                                                                                                                                                                     Scotland, 2004.
The following sections provide details on these steps.                the bug
                                                                            rent that has its local fixed Thus, a on. However, such changes are for impact an
                                                                                 version with been history. later typical scenario         [4] Alessandro Orso, Taweewup Apiwattanapon



                 Change Distiller                                                      CodeCrawler
                                                                                                                                               Harrold. Leveraging field data
                                                                            of a Chianti session begins with the programmer editing the        testing. In Proc. of European Software Eng
                                                                      always unstable extracting therisky.stable version of this
                                                                            current project, and thus lastest                                  ACM SIGSOFT Symp. on the Foundations
4.1 Identifying Fixes                                                       project from
                                                                            grammer     we define a into the workspace. The con-
                                                                         Formally,thenCVS repository induced-change relation J ⊆ C × C that
                                                                                            starts the change impact analysis launch
                                                                                                                                      pro-     Engineering (ESEC/FSE’03), Helsinki, Fin
                                                                                                                                               2003.
                                                                                                                                           [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
In order to locate fix-inducing changes, HATARI first needs to know           figuration, and changes citwo these j with Currently,
                                                                      connects twosuiteselects these with projects of interest as well
                                                                            as the test        associated
                                                                                                                                               Ophelia only if c tool for
                                                                                                              and cprojects. each other if andChesley.InChianti:ofAthe Conf.change
                                                                                                                                               Java programs.     Proc.
                                                                                                                                                                          j          on Ob
if a change is a fix. While advanced version control systems al-       changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara
                                                                            we allow tests that was introduced in cand JUnit               of CVS this means
                                                                                                                                               Programming, Systems, Languages and App

                                                                              tests
What is the long-term impact of change?
What is the long-term impact of change?
What is the long-term impact of change?
What is the long-term impact of change?
What is the long-term impact of change?

Mais conteúdo relacionado

Último

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Último (20)

Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

What is the Long-Term Impact of Changes?

  • 1. What is the Long-Term Impact of Changes? Irina Ioana Brudaru • Andreas Zeller Saarland University, Germany
  • 2. medical school Italy CS Erasmus (Trento) Highschool Germany (Braunschweig) Master Saarbrücken UK (MPI) PhD Saarbrücken Industry (Computational Linguistics)
  • 3. medical school Italy CS Erasmus (Trento) Highschool What if? Germany (Braunschweig) Master Saarbrücken UK (MPI) PhD Saarbrücken Industry (Computational Linguistics)
  • 4. medical school Italy or y! CS Erasmus hi st (Trento) Highschool t oj ec pr ” in Whathat if? if ? Germany (Braunschweig) “W no Master ve e ha Saarbrücken UK W (MPI) PhD Saarbrücken Industry (Computational Linguistics)
  • 5. Assessing Impact Impact of a change = Its effect throughout the lifetime of a project Good Changes: Bad Changes: • Fixes • Bugs • Refactorings • Bug-Inducing
  • 6. Impact • How do we know a change A impacts another change B? • General solution: change impact analysis (a generally undecidable problem) • Pragmatic solution: B uses (or redefines) an entity (class, method, variable) defined by A
  • 7. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 8. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 9. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 10. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 11. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 12. AnnotationTestMixed 1.5 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 13. AnnotationTestMixed 1.5 ! 1.2 1.4 1.1 1.7 1.3 1.6 Version archives + bug information = change genealogy graph
  • 14. 58 EclipseFile 25 71 28 17 55 24 33 60 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 12 36 42 47
  • 15. 58 EclipseFile 25 71 28 Log message: Bug 33792 No progress dialog at start of replaceWith command[...]This 17 55 caused many 24 33 dependencies to be 60 affected. 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 12 36 42 47
  • 16. 58 EclipseFile 25 71 28 Log message: Bug 33792 No progress dialog at start of replaceWith command[...]This 17 55 caused many 24 33 dependencies to be 60 affected. 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 Performing changes in a 12 36 42 properties file not 47 viewed as a change
  • 17. 58 EclipseFile 25 71 28 Log message: Bug 33792 No progress dialog at start of replaceWith command[...]This 17 55 caused many 24 33 dependencies to be 60 affected. 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 15/24 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 Performing changes in a 12 36 42 properties file not 47 viewed as a change
  • 18. 58 EclipseFile 25 71 28 Log message: Bug 33792 No progress dialog at start of replaceWith command[...]This 17 55 caused many 24 33 dependencies to be 60 affected. 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 15/24 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 Performing changes in a 12 36 properties file not 42 18/31 viewed as a change 47
  • 19. 58 EclipseFile 25 71 28 Log message: Bug 33792 No progress dialog at start of replaceWith command[...]This 17 55 caused many 24 33 dependencies to be 60 affected. 43 69 49 61 56 27 38 23 39 72 46 67 34 8 30 44 54 0.62 2 40 41 59 13 22 52 50 5 16 51 18 4 11 20 53 Performing changes in a 12 36 properties file not 42 0.58 viewed as a change 47
  • 20. Metrics for Changes • Quality – the average ratio fixes vs. features A change decreases quality if it spins off many fixes • Effort – the long-term maintenance effort A change increases effort if its descendants require lots of time • Maintainability – the average change spread A change decreases maintainability (and modularity) if its descendants change several locations at once
  • 21. Future Work • More metrics to assess the long-term impact • Finer dependencies most important: distinguish between method targets • Similarity measures for recommendations and evaluate their suitability for making accurate predictions
  • 24. Related Work Bug 42233 was reported. 1.11 1.14 1.16 1.18 "#$%&'$ !quot;#$%&'$ (quot;#$%&'$ ./0,-$12+$ ()&*+,- ()&*+,- ()&*+,- 34455 6)&*+,-7 "#$!quot;#$(quot;# Figure 3: Relating changes to locations. Hatari Figure 2: Locating fix-inducing changes for bug 42233 Right now, we use the CVS annotate command, but it is straight- 4. HOW HATARI WORKS forward to implement a similar feature for other version control Let us now briefly discuss how HATARI obtains the risk informa- systems. tion. HATARI proceeds in four automatic steps: HATARI uses these annotations and the set of changed lines to find candidates for fix-inducing changes. For our example, we as- 1. HATARI identifies the fixes made to a software system. sume that lines 20, 40, and 60 have been changed; thus our candi- 2. For each of these fixes, HATARI identifies the fix-inducing dates are the changes leading to revisions 1.11, 1.14, and 1.16. change(s) that last touched the fixed locations. Finally, HATARI uses the bug database to rule out changes that cannot be fix-inducing because they have been made after the bug 3. For each of the fix-inducing changes, HATARI determines was reported, i.e., they cannot be real causes for the bug. In our their location. example, revisions 1.14 and 1.16 are not fix-inducing. Without the connection to the bug database, they would be marked fix-inducing 4. Finally, for every location in the source code, HATARI mea- and therefore be false positives. sures their risk of change. In our example, revision 1.11 is the only fix-inducing change. Frequently, but not always, such fix-inducing changes introduced The following sections provide details on these steps. the bug that has been fixed later on. However, such changes are always unstable and thus risky. 4.1 Identifying Fixes Formally, we define a induced-change relation J ⊆ C × C that In order to locate fix-inducing changes, HATARI first needs to know connects two changes ci and cj with each other if and only if cj if a change is a fix. While advanced version control systems al- changed a line that was introduced in ci ; in terms of CVS this means
  • 25. Related Work some additional information relevant to th Original Program P Set of Unit Tests Changed Program P’ Bug 42233 was reported. (e.g., the choice of call graph constructio used and some policy settings for dealing Call Graph Builder Users can also point Chianti directly at a sentation of the call graphs that are to be CHIANTI enable the use of call graphs that have be Call Graphs of Tests in Call Graphs of Tests external tools. [5] presented the experime Atomic Change P in P’ call graphs. Decoder 1.11 1.14 1.16 1.18 When the analysis results are available anti results view will stack on top of the o "#$%&'$ !quot;#$%&'$ (quot;#$%&'$ ./0,-$12+$ Atomic Changes Java perspective. Since Chianti is expec ()&*+,- ()&*+,- ()&*+,- & Dependences 34455 programming and debugging, we integra Java perspective rather than define a new 6)&*+,-7 Change Impact Chianti results view provides users two w "#$!quot;#$(quot;# Affected Tests Analyzer Affecting Changes the analysis results. • The affecting changes view shows a Figure1: Chianti architecture. Figure 3: Relating changes to locations. Hatari Chianti Figure 2: Locating fix-inducing changes for bug 42233 view. Each affected test can be exp set of affecting changes. Each affec atomic change that can be expand Rightby isolating theuse the CVS annotate command, but it is straight- now, we changes responsible for the failure, Chianti 4. HOW HATARI WORKS show its prerequisite changes. This an idea of the different “threads” of forward been integrated closely a similar afeature for other version control has to implement with Eclipse, widely used ex- occurred. Let us now briefly discuss how HATARI obtains the risk informa- tensible open-source development environment for Java (see systems. www.eclipse.org). • The atomic-changes-by-category view tion. HATARI proceeds in four automatic steps: HATARI uses these annotations and the set of changed lines to ent atomic changes grouped by cate 2. CHIANTI PROTOTYPE changes and dependences shown in find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s fix-inducing which contributes related to any specific 1. HATARI identifies the fixes made to a software system. Chianti is designed sults of comparison of two versions o sume athat lines 20, 40, aand 60 have been Java launch configuration and Chianti results view to the changed; thus our candi- perspective. Chianti conceptually can be divided into three Each of these user interface components 2. For each of these fixes, HATARI identifies the fix-inducing dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl are the changes leading to for deriving set grated and 1.16. of atomic changes from two versions of a Java project, which change(s) that last touched the fixed locations. is achieved via a pairwise comparison of database to on an atomic change Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan editor that the associated program fragmen cannot betest call graphsthe two project versions. Another part made after the bug trees of fix-inducing because they have been the classes in reads for the original and edited projects, 3. theREFERENCES was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An computes affected they their affecting changes. The 3. For each of the fix-inducing changes, HATARI determines [1] A. Bohner and Robert their location. third revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A change impact information. Chianti’s the example,part manages the viewsandallowGUIare to visualize also includes a software change impact analysis. Robert S. Arnold, editors, Software Change pages 1–26. IEEE Computer Society Press, 1 connection to bethe bug the set of tests associated with the launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro versions to analyzed, allows users they the project [2] James fix-inducing dynamic impact analysis. In Proc. of the Int 4. Finally, for every location in the source code, HATARI mea- and therefore the call graphs to be used. Figure 1 depicts project and be false positives. on Software Engineering, pages 308–318, 20 [3] Alessandro Orso, Taweesup Apiwattanapong Chianti’s architecture. sures their risk of change. In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc Although Chianti intended for interactive use, only Rothermel, and Mary Jean dynamic impact analysis algorithms. In emp rently require two separate Java not always,of such fix-inducing two versions program are Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin the cur- 491–500, introduced International Conf. Scotland, 2004. The following sections provide details on these steps. the bug rent that has its local fixed Thus, a on. However, such changes are for impact an version with been history. later typical scenario [4] Alessandro Orso, Taweewup Apiwattanapon Harrold. Leveraging field data of a Chianti session begins with the programmer editing the testing. In Proc. of European Software Eng always unstable extracting therisky.stable version of this current project, and thus lastest ACM SIGSOFT Symp. on the Foundations 4.1 Identifying Fixes project from grammer we define a into the workspace. The con- Formally,thenCVS repository induced-change relation J ⊆ C × C that starts the change impact analysis launch pro- Engineering (ESEC/FSE’03), Helsinki, Fin 2003. [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara In order to locate fix-inducing changes, HATARI first needs to know figuration, and changes citwo these j with Currently, connects twosuiteselects these with projects of interest as well as the test associated Ophelia only if c tool for and cprojects. each other if andChesley.InChianti:ofAthe Conf.change Java programs. Proc. j on Ob if a change is a fix. While advanced version control systems al- changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara we allow tests that was introduced in cand JUnit of CVS this means Programming, Systems, Languages and App tests
  • 26. Related Work some additional information relevant to th Original Program P Set of Unit Tests Changed Program P’ Bug 42233 was reported. (e.g., the choice of call graph constructio used and some policy settings for dealing Call Graph Builder Users can also point Chianti directly at a sentation of the call graphs that are to be CHIANTI enable the use of call graphs that have be Call Graphs of Tests in Call Graphs of Tests external tools. [5] presented the experime Atomic Change P in P’ call graphs. Decoder 1.11 1.14 1.16 1.18 When the analysis results are available anti results view will stack on top of the o "#$%&'$ !quot;#$%&'$ (quot;#$%&'$ ./0,-$12+$ Atomic Changes Java perspective. Since Chianti is expec ()&*+,- ()&*+,- ()&*+,- & Dependences 34455 programming and debugging, we integra Java perspective rather than define a new 6)&*+,-7 Change Impact Chianti results view provides users two w "#$!quot;#$(quot;# Affected Tests Analyzer Affecting Changes the analysis results. • The affecting changes view shows a Figure1: Chianti architecture. Figure 3: Relating changes to locations. Hatari Chianti Figure 2: Locating fix-inducing changes for bug 42233 view. Each affected test can be exp set of affecting changes. Each affec atomic change that can be expand Rightby isolating theuse the CVS annotate command, but it is straight- now, we changes responsible for the failure, Chianti 4. HOW HATARI WORKS show its prerequisite changes. This an idea of the different “threads” of forward been integrated closely a similar afeature for other version control has to implement with Eclipse, widely used ex- occurred. Let us now briefly discuss how HATARI obtains the risk informa- tensible open-source development environment for Java (see systems. www.eclipse.org). • The atomic-changes-by-category view tion. HATARI proceeds in four automatic steps: HATARI uses these annotations and the set of changed lines to ent atomic changes grouped by cate 2. CHIANTI PROTOTYPE changes and dependences shown in find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s fix-inducing which contributes related to any specific 1. HATARI identifies the fixes made to a software system. Chianti is designed sults of comparison of two versions o sume athat lines 20, 40, aand 60 have been Java launch configuration and Chianti results view to the changed; thus our candi- perspective. Chianti conceptually can be divided into three Each of these user interface components 2. For each of these fixes, HATARI identifies the fix-inducing dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl are the changes leading to for deriving set grated and 1.16. of atomic changes from two versions of a Java project, which change(s) that last touched the fixed locations. is achieved via a pairwise comparison of database to on an atomic change Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan editor that the associated program fragmen cannot betest call graphsthe two project versions. Another part made after the bug trees of fix-inducing because they have been the classes in reads for the original and edited projects, 3. theREFERENCES was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An computes affected they their affecting changes. The 3. For each of the fix-inducing changes, HATARI determines [1] A. Bohner and Robert their location. third revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A change impact information. Chianti’s the example,part manages the viewsandallowGUIare to visualize also includes a software change impact analysis. Robert S. Arnold, editors, Software Change pages 1–26. IEEE Computer Society Press, 1 connection to bethe bug the set of tests associated with the launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro versions to analyzed, allows users they the project [2] James fix-inducing dynamic impact analysis. In Proc. of the Int 4. Finally, for every location in the source code, HATARI mea- and therefore the call graphs to be used. Figure 1 depicts project and be false positives. on Software Engineering, pages 308–318, 20 [3] Alessandro Orso, Taweesup Apiwattanapong Chianti’s architecture. sures their risk of change. In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc Although Chianti intended for interactive use, only Rothermel, and Mary Jean dynamic impact analysis algorithms. In emp rently require two separate Java not always,of such fix-inducing two versions program are Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin the cur- 491–500, introduced International Conf. Scotland, 2004. The following sections provide details on these steps. the bug rent that has its local fixed Thus, a on. However, such changes are for impact an version with been history. later typical scenario [4] Alessandro Orso, Taweewup Apiwattanapon Change Distiller Harrold. Leveraging field data of a Chianti session begins with the programmer editing the testing. In Proc. of European Software Eng always unstable extracting therisky.stable version of this current project, and thus lastest ACM SIGSOFT Symp. on the Foundations 4.1 Identifying Fixes project from grammer we define a into the workspace. The con- Formally,thenCVS repository induced-change relation J ⊆ C × C that starts the change impact analysis launch pro- Engineering (ESEC/FSE’03), Helsinki, Fin 2003. [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara In order to locate fix-inducing changes, HATARI first needs to know figuration, and changes citwo these j with Currently, connects twosuiteselects these with projects of interest as well as the test associated Ophelia only if c tool for and cprojects. each other if andChesley.InChianti:ofAthe Conf.change Java programs. Proc. j on Ob if a change is a fix. While advanced version control systems al- changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara we allow tests that was introduced in cand JUnit of CVS this means Programming, Systems, Languages and App tests
  • 27. Related Work some additional information relevant to th Original Program P Set of Unit Tests Changed Program P’ Bug 42233 was reported. (e.g., the choice of call graph constructio used and some policy settings for dealing Call Graph Builder Users can also point Chianti directly at a sentation of the call graphs that are to be CHIANTI enable the use of call graphs that have be Call Graphs of Tests in Call Graphs of Tests external tools. [5] presented the experime Atomic Change P in P’ call graphs. Decoder 1.11 1.14 1.16 1.18 When the analysis results are available anti results view will stack on top of the o "#$%&'$ !quot;#$%&'$ (quot;#$%&'$ ./0,-$12+$ Atomic Changes Java perspective. Since Chianti is expec ()&*+,- ()&*+,- ()&*+,- & Dependences 34455 programming and debugging, we integra Java perspective rather than define a new 6)&*+,-7 Change Impact Chianti results view provides users two w "#$!quot;#$(quot;# Affected Tests Analyzer Affecting Changes the analysis results. • The affecting changes view shows a Figure1: Chianti architecture. Figure 3: Relating changes to locations. Hatari Chianti Figure 2: Locating fix-inducing changes for bug 42233 view. Each affected test can be exp set of affecting changes. Each affec atomic change that can be expand Rightby isolating theuse the CVS annotate command, but it is straight- now, we changes responsible for the failure, Chianti 4. HOW HATARI WORKS show its prerequisite changes. This an idea of the different “threads” of forward been integrated closely a similar afeature for other version control has to implement with Eclipse, widely used ex- occurred. Let us now briefly discuss how HATARI obtains the risk informa- tensible open-source development environment for Java (see systems. www.eclipse.org). • The atomic-changes-by-category view tion. HATARI proceeds in four automatic steps: HATARI uses these annotations and the set of changed lines to ent atomic changes grouped by cate 2. CHIANTI PROTOTYPE changes and dependences shown in find candidates for as an Eclipse plugin,changes. For our example, we as- tests, it just s fix-inducing which contributes related to any specific 1. HATARI identifies the fixes made to a software system. Chianti is designed sults of comparison of two versions o sume athat lines 20, 40, aand 60 have been Java launch configuration and Chianti results view to the changed; thus our candi- perspective. Chianti conceptually can be divided into three Each of these user interface components 2. For each of these fixes, HATARI identifies the fix-inducing dates functional parts. One part is responsiblerevisions a1.11, 1.14, with the standard Java IDE in Ecl are the changes leading to for deriving set grated and 1.16. of atomic changes from two versions of a Java project, which change(s) that last touched the fixed locations. is achieved via a pairwise comparison of database to on an atomic change Finally, HATARI uses the bugthe abstract syntax rule outonchanges in the affecting chan editor that the associated program fragmen cannot betest call graphsthe two project versions. Another part made after the bug trees of fix-inducing because they have been the classes in reads for the original and edited projects, 3. theREFERENCES was reported, i.e.,tests andcannot be real causes for Shawn bug. In our S. Arnold. An computes affected they their affecting changes. The 3. For each of the fix-inducing changes, HATARI determines [1] A. Bohner and Robert their location. third revisions 1.14 that 1.16 user not fix-inducing. Without the In Shawn A change impact information. Chianti’s the example,part manages the viewsandallowGUIare to visualize also includes a software change impact analysis. Robert S. Arnold, editors, Software Change pages 1–26. IEEE Computer Society Press, 1 connection to bethe bug the set of tests associated with the launch configuration thatdatabase,to selectwould be marked Law and Gregg Rothermel. Whole pro versions to analyzed, allows users they the project [2] James fix-inducing dynamic impact analysis. In Proc. of the Int 4. Finally, for every location in the source code, HATARI mea- and therefore the call graphs to be used. Figure 1 depicts project and be false positives. on Software Engineering, pages 308–318, 20 [3] Alessandro Orso, Taweesup Apiwattanapong Chianti’s architecture. sures their risk of change. In our example, isrevision 1.11 is the we cur- fix-inducing change.Harrold. An Proc Although Chianti intended for interactive use, only Rothermel, and Mary Jean dynamic impact analysis algorithms. In emp rently require two separate Java not always,of such fix-inducing two versions program are Frequently, butthat projects, insteadaof comparing saved in changes Edinburgh, on Software Engineerin the cur- 491–500, introduced International Conf. Scotland, 2004. The following sections provide details on these steps. the bug rent that has its local fixed Thus, a on. However, such changes are for impact an version with been history. later typical scenario [4] Alessandro Orso, Taweewup Apiwattanapon Change Distiller CodeCrawler Harrold. Leveraging field data of a Chianti session begins with the programmer editing the testing. In Proc. of European Software Eng always unstable extracting therisky.stable version of this current project, and thus lastest ACM SIGSOFT Symp. on the Foundations 4.1 Identifying Fixes project from grammer we define a into the workspace. The con- Formally,thenCVS repository induced-change relation J ⊆ C × C that starts the change impact analysis launch pro- Engineering (ESEC/FSE’03), Helsinki, Fin 2003. [5] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara In order to locate fix-inducing changes, HATARI first needs to know figuration, and changes citwo these j with Currently, connects twosuiteselects these with projects of interest as well as the test associated Ophelia only if c tool for and cprojects. each other if andChesley.InChianti:ofAthe Conf.change Java programs. Proc. j on Ob if a change is a fix. While advanced version control systems al- changed a line that have a separate main() routine i ; in terms [6] Xiaoxia Ren, Fenil Shah, Frank Tip, Barbara we allow tests that was introduced in cand JUnit of CVS this means Programming, Systems, Languages and App tests
  • 28. What is the long-term impact of change?
  • 29. What is the long-term impact of change?
  • 30. What is the long-term impact of change?
  • 31. What is the long-term impact of change?
  • 32. What is the long-term impact of change?