April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)1 Scmbug: Policy-based Integration of Software Configuration Management with Bug-tracking Kristis Makris.

Slides:



Advertisements
Similar presentations
What’s New in Fireware XTM
Advertisements

What’s New in Fireware XTM v11.3.4
Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
© Copyright 2006 FPT Software 1 © FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 How to work in Fsoft project Authors: KienNT.
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Chapter 1: The Database Environment
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
By Rick Clements Software Testing 101 By Rick Clements
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Making the System Operational
Copyright © Sierra Atlantic, Inc. Material contained within this document is confidential and may not be reproduced without prior written consent. System.
© Tally Solutions Pvt. Ltd. All Rights Reserved Shoper 9 License Management December 09.
Thialfi: A Client Notification Service for Internet-Scale Applications
11 Auto Regression Analysis Shuang He Intel Linux Graphics Validation Team Open Source Technology Center
Break Time Remaining 10:00.
Configuration management
Software change management
1 Dr. Ashraf El-Farghly SECC. 2 Level 3 focus on the organization - Best practices are gathered across the organization. - Processes are tailored depending.
13 Copyright © 2005, Oracle. All rights reserved. Monitoring and Improving Performance.
Pharos Uniprint 8.3 Training
SystemCheck for TestNav. Agenda 2 SystemCheck for TestNav – Overview – iPads and Chromebooks – Accessing SystemCheck SystemCheck – Check Your System Proctor.
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
“The Honeywell Web-based Corrective Action Solution”
25 July, 2014 Hailiang Mei, TU/e Computer Science, System Architecture and Networking 1 Hailiang Mei Remote Terminal Management.
15. Oktober Oktober Oktober 2012.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Squares and Square Root WALK. Solve each problem REVIEW:
Software engineering tools for web development Jim Briggs 1CASE.
Services Course Windows Live SkyDrive Participant Guide.
25 seconds left…...
Services Course Windows Live SkyDrive Participant Guide.
12 January 2009SDS batch generation, distribution and web interface 1 ExESS IT tool for SDS batch generation, distribution and web interface ExESS IT tool.
Clock will move after 1 minute
VPN AND REMOTE ACCESS Mohammad S. Hasan 1 VPN and Remote Access.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
A lesson approach © 2011 The McGraw-Hill Companies, Inc. All rights reserved. a lesson approach Microsoft® PowerPoint 2010 © 2011 The McGraw-Hill Companies,
Select a time to count down from the clock above
Installing Windows XP Professional Using Attended Installation Slide 1 of 30Session 8 Ver. 1.0 CompTIA A+ Certification: A Comprehensive Approach for all.
Murach’s OS/390 and z/OS JCLChapter 16, Slide 1 © 2002, Mike Murach & Associates, Inc.
TIDE Presentation Florida Standards Assessments 1 FSA Regional Trainings Updated 02/09/15.
Benchmark Series Microsoft Excel 2013 Level 2
Software Configuration Management Donna Albino LIS489, December 3, 2014.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Software Engineering Modern Approaches
MCSE Guide to Microsoft Exchange Server 2003 Administration Chapter Four Configuring Outlook and Outlook Web Access.
Article: Source Code Review Systems Author: Jason Remillard Presenter: Joe Borosky Class: Principles and Applications of Software Design Date: 11/2/2005.
The Design Workshop Introduction to Version Control 1.
Revision Control and Issue Tracking Andrew Watkins.
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
Kako razvijate PL/SQL pakete? File based PL/SQL development Mitja Golouh SIOUG 2006,
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Meeting Date: TST #21 Document.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Miguel.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Software Configuration Management
Presentation transcript:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)1 Scmbug: Policy-based Integration of Software Configuration Management with Bug-tracking Kristis Makris Arizona State University Kyung Dong Ryu IBM T.J. Watson Research Center

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)2 Motivation Key software engineering issues in large software development Software Configuration Management (SCM) Create, store and label changesets Modifications traceability: what changed and how e.g. CVS, Subversion, Perforce, ClearCase Bug-tracking Document development and justify changes Defect and feature traceability: why make changes e.g. Bugzilla, Mantis, ClearQuest

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)3 SCM Example $ vi readnet.c # Edit new source code $ gcc readnet.c;./a.out # Compile and test $ cvs add readnet.c # Add this file in version control cvs add: scheduling file `system.c' for addition $ cvs commit readnet.c # Commit the 1 st version of the file; enter a log message Checking in readnet.c; initial revision: 1.1 $ vi readnet.c # Make more changes $ gcc readnet.c;./a.out # Compile and test $ cvs commit # Commit the newer version; enter a log message Checking in readnet.c; new revision: 1.2; previous revision: 1.1 $ cvs diff –r1.1 –r1.2 readnet.c # View what changed 85,87c85,97 type=htons(80); app=htons(10); --- > netstruct->m_sType=htons(800); > netstruct->m_sApp=htons(10); $ cvs log –r1.2 readnet.c # View log message revision 1.2; date: 2004/06/07 22:00:23; author: kmakris; lines: Use the new field names from struct kernel_data. Why use new field names ? Which feature is implemented ?

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)4 Bug-tracker example How was it fixed ? What changed ?

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)5 Motivation Problem Given what changed, cannot determine why And vice versa Solution Tie what with why Integrate SCM with bug-tracking. Improve: Changeset traceability Quality of defect reports Quality of release documents

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)6 Demand Sourceforge.net 98,000 projects, over 1 million users GNU Savannah 2,300 projects, 34,000 users Public Internet CVS, Subversion, Bugzilla, Mantis mailing lists

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)7 Related Work Bugzilla gateway Asynchronous verification checks: error-prone CVSZilla Modifies Bugzilla DB schema: breaks future releases Perforce P4DTI, ClearCase/ClearQuest No abstract bug-tracker interface All systems above Assume local network installation except Bugzilla gateway No separation between policy and mechanism

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)8 System Architecture SCM integration frontends Bug-tracker integration backends Policy-based integration

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)9 Integration Example -Watch bug 417 No data received from a Zaurus SL-6000 PDA Bug reported on Root of problem identified on Bug fixed on Can one trace What changed ? Bug id Changeset Why is this a bug ? Changeset Bug id Demo:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)10 Integration Example A patch to bug 417 Only shows what changed RCS file: /projects/sigmawatch/system/src/host_node/userspace/server/readnet.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r readnet.c7 Jul :03: readnet.c21 Aug :47: ,7 +33,7 fgets(netbuff,100,net); while(fgets(netbuff,100,net)){ -if (strstr(netbuff,"eth0")) break; +if (strstr(netbuff, CONFIG_NETWORK_DEVICE)) break; } How is CONFIG_NETWORK_DEVICE defined ? Demo:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)11 Integration Example SCM log comment for patch $ cvs log –r1.9 readnet.c revision 1.9 date: 2004/08/21 18:47:22; author: mkgnu; lines: SCMBUG ID: 417 SCMBUG NOTE:Now using the name of the network device that is appropriate for each architecture on which the SigmaWatch backend processes are deployed. This name is setup through an autoconf variable. How did configure.in change ? At which version ? Why set the name through an autoconf variable ? What else changed ? Demo:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)12 Integration Example Bug-tracker comments at bug 417 Improved changeset traceability Demo:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)13 Integration Example Why was a patch applied ? Root of problem: Demo:

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)14 Why an Integration Daemon ? (1) Public internet deployment Mobile (laptop) local SCM repository; public bug- tracker; offline development Collaboration between mutually untrusted participants (no VPN access) No connections to bug-tracker database from glue Stand-alone DB backends No TCP port listening (e.g. based on Berkley DB) Debian debbugs; file-based

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)15 Why an Integration Daemon ? (2) Bug-tracker codebase reuse Safe from schema updates Bug-tracker DB schema limitations No SCM username: maintain username mapping SCM system limitations No atomic commits in CVS: duplicate log messages Cache integration requests Detect duplicate log messages Merge

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)16 Integration Policies (1) Presence of bug ids Tie what changed with why Cannot commit without a bug id Minimum log message size A commit log message must be > 50 characters Force developers to document changesets Valid bug owner Assigned work conflict detection Open bug state Formal bug dispositioning process

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)17 Integration Policies (2) Valid product name Wrong bug id entered ? Convention-based labeling Uniform labeling scheme Releases: SCMBUG_RELEASE_0-2-7 Developer builds: SCMBUG_BUILD_29_mantis Forks: b_glue_side_policies Private labels: p_kpm_pre_bug353_fixes

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)18 Improved Release Documents SCM Changelogs Lower, developer-level changeset documentation Lengthy, hard to decipher Do not reflect decisions to not add a feature Version Description Document (VDD) High-level (bug summary) + low-level details List worked-on bugs between releases Reports newly identified bugs Supercedes SCM Changelogs

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)19 Integration Challenges (1) Integration upgrades Four-stage upgrade process Disable glue Upgrade all SCM repositories Upgrade daemon Enable glue SCM glue library packaging (CVS) Can lead to dead-end hooks; correct manually Bug-tracker schema No SCM fields (e.g. list of affected files or version) Insert directly in bug comments

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)20 Integration Challenges (2) Subversion Labeling is just another commit ( svn copy ) Detect creation of new directories under tags, or branches Treat as labeling request CVS Does not store release date Need heuristic to guess date No log comment on labeling Lose reason why label was applied

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)21 Early Experience Used for 1 year in 3 projects -Watch: 220 bugs, 3 developers Framework for Adaptive OS: 140 bugs, 4 developers Verification check error breakdown (estimate) Valid log message size (~60%) Logs not long enough Valid bug owner (~20%) Developer miscommunication Open bug state + valid product name (~20%) Input error entering bug id

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)22 On-going Work Study of effects on productivity Version Description Document Distributed repositories Arch, Bitkeeper Capture in SCM frontend Disconnected mode Used by OpenCM; explored by Subversion Local integration proxy daemon Cache bug-trackers metadata; integrate; synchronize

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)23 Conclusion SCM and bug-tracking integration Changeset metadata Software labels Benefits Changeset traceability Quality of defect reports Quality of release documents Design modularity SCM frontends Synchronous, policy-based verification checks Bug-tracker backends

April 13, 2005Scmbug -- USENIX '05 (FREENIX Track)24 Questions ? Download Scmbug from: