SZZ – An overview David Bowes University of Hertfordshire.

Slides:



Advertisements
Similar presentations
TortoiseSVN By Group 1 Team B. Installing TortoiseSVN.
Advertisements

Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Version Control System (Sub)Version Control (SVN).
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Extraction of.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
6/27/20151 Doris Lee Concurrent Version System (CVS)
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Revision Control Practices in Software Engineering Surekha, Kotiyala Madhuri, Komuravelly Suchitra, Yerramalla.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
November 2011CSC7302: Testing & MetricsL4-IntegrationTesting:1 Integration Testing The software testing process where individual units are combined and.
Dependency Tracking in software systems Presented by: Ashgan Fararooy.
Revision Control and Issue Tracking Andrew Watkins.
University of Maryland Bug Driven Bug Finding Chadd Williams.
Software Engineering CS3003
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
Configuration Management Geant4 Review 19 June 2001 Gunter Folger.
ITEC 370 Lecture 16 Implementation. Review Questions? Design document on F, feedback tomorrow Midterm on F Implementation –Management (MMM) –Team roles.
Version Control Systems academy.zariba.com 1. Lecture Content 1.What is Software Configuration Management? 2.Version Control Systems (VCS) 3.Basic Git.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control.
DireXions – Your Tool Box just got Bigger PxPlus Version Control System Using TortoiseSVN Presented by: Jane Raymond.
CSE 219 Computer Science III CVS
Automatic Identification of Bug-Introducing Changes. Presenter: Haroon Malik.
LUMINA trial Guided manual Ki67 scorer Release notes New features 1.Option to rescore 2.Support for Hamamatsu (.ndpi) file 3.Report updates/enhancements.
1 Brief Introduction to Revision Control Ric Holt.
Version Control with SVN Images from TortoiseSVN documentation
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
CSE 436—Requirements and Version Control Systems Ron K. Cytron 26 September 2005.
When collaborating, it is important to manage changes in the models. For example: –To create or edit a submodel E.g. Habitat suitability is replaced with.
Intro to Git presented by Brian K. Vagnini Hosted by.
Developer Best Practices R.SANTHANA GOPALAN. Developer Best Practices What is Workspace ? The directory where the developer edit the source files, compile,
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University An Empirical Study of Out-dated Third-party Code.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Part 4: FCM and the UM University of Reading, December 2015.
Presentation OLOMOLA,Afolabi( ). Update Changes in CSV/SVN.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Slide 1 Running NEMO at ECMWF Slide 1 NEMO under Perforce at ECMWF Kristian S. Mogensen Last revised:
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Perspectives on fault data quality Tracy Hall Reader in Software Engineering Brunel University Two short talks on this topic…
Git How to 1. Why Git To resolve problems in lab exams (accidental deletions) Use existing Libraries with ease (Statistics and Computer) Prepare undergraduates.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Problem Solving With C++ SVN ( Version Control ) April 2016.
Version Control Systems CS222 Baris Aktemur. Software Development Software development is done in teams Team members are in separate physical locations.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Subversion (svn) Basics Department of Computer Science Kent State University Prof. Jonathan I. Maletic.
Information Systems and Network Engineering Laboratory II
SVN intro (review).
Source Control Dr. Scott Schaefer.
Gaudi software release procedures
Programming Abstractions
Software Engineering for Data Scientists
CVS revisions UML diagram
Subversion.
Version Control System
Design and Programming
Concurrent Version System (CVS)
Programming Abstractions
Git Best Practices Jay Patel Git Best Practices.
EGit in CCS
Version Control System - Git
Git Introduction.
Git GitHub.
Branches And Releases Branch for Urgent Bug Branch for Feature A
Presentation transcript:

SZZ – An overview David Bowes University of Hertfordshire

Investigating the crime scene reports 1.On Jan 1 st, David modifies methods A,C and D 2.On Jan 5 th, Jean modified method D 3.On Feb 1 st,Tracy reports a bug 4.On Feb 2 nd,Steve makes a change to method C and commits 5.On Feb 5 th, Thomas modifies A,C and D and commits 6.On Feb 6 th, Thomas marks the bug as fixed. Who fixed the fault the fault? Who inserted the fault?

Overview Overview of: J. Śliwerski, T. Zimmermann, and A. Zeller, “When do changes induce fixes? (On Fridays)” in Proceedings of the 2005 international workshop on Mining software repositories, ser. MSR ’05. New York, NY, USA: ACM, 2005, pp. 1–5. – Bug linking – Fault insertion point

Bug Linking Find a bug report in a bug tracking system: – Bugid: [compiler][null] NPE: Method without return value – Extract the bugid Find all version control commit messages which include: – Bugid – Other words : fix… Compute a match score using above. Choose the latest highest commit as the point which fixes the bugid

e.g. Commit: [compiler][null] NPE: Method without return value Commit: [compiler][null] NPE: Method without return value Signed-off-by: Shankha Banerjee Files modified: org.eclipse.jdt.core.tests.compiler/src/org/eclips e/jdt/core/tests/compiler/regression/NullAnnot ationTest.java org.eclipse.jdt.core/compiler/org/eclipse/jdt/int ernal/compiler/lookup/MethodBinding.java

Finding the insertion point Remember the date of the initial bug report Blame the files which were changed… *Stephan He :27:24if (added) *Stephan He :27:24this.tagBits |= TagBits.HasParameterAnnotations; Stephan He :17:38if (this.returnType != null) { Stephan He :17:38if (!this.returnType.isBaseType() ) == 0) { Stephan He :17:38this.returnType = env.createAnnotatedType(this.returnType, new AnnotationBinding[]{env.getNonNullAnnotation()}); Stephan He :17:38} else if (sourceMethod != null && (this.returnType.tagBits & TagBits.AnnotationNonNull) != 0) { Stephan He :17:38 sourceMethod.scope.problemReporter().nullAnnotationIsRedundant(sourceMethod, -1/*signifies method return*/); Stephan He :17:38} *Stephan He :27:24}

Identify where these lines were changed Find previous lines which were replaced/inserted between AND were before the bug report date

Job done…(?) Problems: – Bird identified the linking rules by SZZ were severe (only 50% of bugs were linked to a commit) – Identifies more than one commit (?) – Blame relies on diff between versions: Move a method: – Diff thinks code has been deleted and inserted elsewhere White space – Branching and merging in version control? – Replication/Validation? – Are there better ways?