Challenges of the Dynamic Detection of Functionally Similar Code Fragments
|
|
|
- Egbert Wright
- 10 years ago
- Views:
Transcription
1 Challenges of the Dynamic Detection of Functionally Similar Code Fragments Florian Deissenboeck, Lars Heinemann, Benjamin Hummel, Stefan Wagner Technische Universität München CSMR 2012, Szeged, Hungary
2 Similarities in Software Negative effects on maintenance unnecessary code size increase Similarities due to copy&paste (code clones) well-researched But what about similarities of independent origin? f(x) f(x) 2
3 Functional Similarities Not necessarily syntactically similar simion: functionally similar code fragment regarding I/O behavior Cannot be found with clone detection [1] [1] Code Similarities Beyond Copy & Paste, E. Juergens, F. Deissenboeck, B. Hummel, CSMR
4 Motivation for this Research Own experience: functionality is reimplemented in large code bases Automated detection could be as beneficial as clone detection for QA Encouraged by results of existing approach for C systems (Jiang&Su, ISSTA 2011) Goal: Transfer to object-oriented Java systems 4
5 Disclaimer DON T TRY THIS AT HOME! Detection results of approach unsatisfactory (few simions detected & many false-positives) But: Valuable insights regarding challenges 5
6 General Idea Execute candidate code fragments on random input and compare output Source Code Detection Pipeline Simions 6
7 Pipeline Source Code Chunking i1,i2,.. i1,i2,.. i1,i2,.. o1,o2,.. o1,o2,.. o1,o2,.. 7
8 Pipeline Source Code Chunking Input Generation Deterministic random values for primitive types Recursive algorithm for object types Parameter permutation 100 input vectors for each chunk 8
9 Pipeline Source Code Chunking Input Generation Execute each chunk with all input vectors Security Manager to prevent harmful operations Execution 9
10 Pipeline Source Code Chunking Input Generation Execution Compare outputs for each output variable Simion if inputs and outputs for all executions are equal Filter clones and trivial I/O behavior Comparison 10
11 Case Study: Study Objects System SLOC Commons Lang 17,504 Freemind 51,762 Jabref 74,586 Jetty 29,800 JHotDraw 78,902 Info1 : Collection of 109 student implementations of an address validator (each statements) 11
12 Number of Chunks Each chunk has to pass through pipeline Direct impact on processing time Experiments with 3 chunking strategies void foo () { void foo () { void foo () { } } } method sliding window intent 12
13 Number of Chunks (2) System Method Sl. Wind. Intent Commons Lang 1,538 7,940 1,843 Freemind 1,984 80,816 20,632 Jabref 2, ,556 21,388 Jetty 1,457 22,006 7,713 JHotDraw 2, ,283 16,221 13
14 Technical Challenges Parameter types are interfaces, abstract classes or untyped collections (37%-94% of chunks) Call to UI, networking or I/O API functions (5%-60% of chunks) 14
15 Effectiveness of Approach Full detection pipeline How many chunks pass each pipeline step? How many simions are detected? 15
16 Effectiveness (Student programs) Pipeline Step #Chunks Chunk Extraction 240 Input Generation 134 Execution 133 Comparison 105 = #simions method-based chunking 16
17 Effectiveness (Jabref) Pipeline Step #Chunks Chunk Extraction 2,085 Input Generation 1,542 Execution 621 Comparison 55 = #simions method-based chunking 17
18 Manual Inspection of Simions [not in paper] System Detected Confirmed Commons Lang (61%) Freemind 11 7 (64%) Jabref 55 9 (16%) Jetty 15 0 (0%) JHotDraw 18 2 (11%) Overall (33%) method-based chunking 18
19 Detected Simions 19
20 Detected Simions (2) 20
21 Differences to Jiang&Su Input generation complicated for Java (e.g. interfaces) Jiang&Su replace function calls with random values We filter trivial simions, e.g. identity function (occurs often) Linux kernel code vs. Java GUI apps 21
22 Discussion Low detection results: no simions or flaws in detection? What is the recall? (infeasible to determine manually) Main limitation: random testing approach no input or generated input does achieve sufficient code coverage can potentially addressed with white-box methods Notion of I/O similarity may not be suitable e.g different data types or signatures 22
23 Thank you. Questions?
Do Code Clones Matter?
Elmar Juergens, Florian Deissenboeck, Benjamin Hummel, Stefan Wagner Do Code Clones Matter? May 22 nd, 2009 31st ICSE, Vancouver 1 Code Clone 2 Agenda Related Work Empirical Study Detection of inconsistent
Why and How to Control Cloning in Software Artifacts. Elmar Juergens
Why and How to Control Cloning in Software Artifacts Elmar Juergens Institut für Informatik der Technischen Universität München Why and How to Control Cloning in Software Artifacts Elmar Juergens Vollständiger
Industrial Application of Clone Change Management System
Industrial Application of Clone Change Management System Yuki Yamanaka, Eunjong Choi, Norihiro Yoshida, Katsuro Inoue, Tateki Sano Graduate School of Information Science and Technology, Osaka University,
Cross Platform Mobile. -Vinod Doshi
Cross Platform Mobile Application Testing -Vinod Doshi Objective Mobile Application Testing Needs. Challenges Current platform specific tools Cloud Testing Testing Strategies and Recommendations Generic
Incremental Origin Analysis of Source Code Files
Incremental Origin Analysis of Source Code Files Daniela Steidl [email protected] Benjamin Hummel [email protected] CQSE GmbH Garching b. München Germany Elmar Juergens [email protected] ABSTRACT The history
Model Clone Detection in Practice
Model Clone Detection in Practice Florian Deissenboeck, Benjamin Hummel Elmar Juergens, Michael Pfaehler Technische Universität München Garching b. München, Germany Bernhard Schaetz fortiss ggmbh München,
Fast Analytics on Big Data with H20
Fast Analytics on Big Data with H20 0xdata.com, h2o.ai Tomas Nykodym, Petr Maj Team About H2O and 0xdata H2O is a platform for distributed in memory predictive analytics and machine learning Pure Java,
Optimizing the User Experience of a Social Content Management Software for Casual Users
Optimizing the User Experience of a Social Content Management Software for Casual Users 10.08.2015, TU München Florian Katenbrink, Thomas Reschenhofer, Prof. Dr. Florian Matthes Software Engineering for
Host-based Intrusion Prevention on Windows and UNIX. Dr. Rich Murphey White Oak Labs
Host-based Intrusion Prevention on Windows and UNIX Dr. Rich Murphey White Oak Labs Acknowledgements Niels Provos OpenBSD s systrace DT suggested this thread last year Greg Hoglund insights md5 at da ghettohackers
SourceMeter SonarQube plug-in
2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation SourceMeter SonarQube plug-in Rudolf Ferenc, László Langó, István Siket, Tibor Gyimóthy University of Szeged, Department
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
MAQAO Performance Analysis and Optimization Tool
MAQAO Performance Analysis and Optimization Tool Andres S. CHARIF-RUBIAL [email protected] Performance Evaluation Team, University of Versailles S-Q-Y http://www.maqao.org VI-HPS 18 th Grenoble 18/22
Pattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
Introduction to Android Development. Jeff Avery CS349, Mar 2013
Introduction to Android Development Jeff Avery CS349, Mar 2013 Overview What is Android? Android Architecture Overview Application Components Activity Lifecycle Android Developer Tools Installing Android
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
The Agile Movement An introduction to agile software development
The Agile Movement An introduction to agile software development 1 The Agile Movement An introduction to agile software development Russell Sherwood @russellsherwood & David Sale @saley89 Agenda Who are
Note: This App is under development and available for testing on request. Note: This App is under development and available for testing on request. Note: This App is under development and available for
Frysk The Systems Monitoring and Debugging Tool. Andrew Cagney
Frysk The Systems Monitoring and Debugging Tool Andrew Cagney Agenda Two Use Cases Motivation Comparison with Existing Free Technologies The Frysk Architecture and GUI Command Line Utilities Current Status
Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013
Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper
DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER
DATA VISUALIZATION OF THE GRAPHICS PIPELINE: TRACKING STATE WITH THE STATEVIEWER RAMA HOETZLEIN, DEVELOPER TECHNOLOGY, NVIDIA Data Visualizations assist humans with data analysis by representing information
Web Development in Java
Web Development in Java Detailed Course Brochure @All Rights Reserved. Techcanvass, 265, Powai Plaza, Hiranandani Garden, Powai, Mumbai www.techcanvass.com Tel: +91 22 40155175 Mob: 773 877 3108 P a g
Open Source SCADA. A Framework for the Connected World. Remote Monitoring and Control 2014 SCADA Technology Summit. Presented by:
Remote Monitoring and Control 2014 SCADA Technology Summit Open Source SCADA A Framework for the Connected World Presented by: Chuck Weissman Los Angeles Metro Overview Emergence of deeply embedded and
How To Test A Web Based Application Automatically
A General Framework for Testing Web-Based Applications Saeed Abrishami, Mohsen Kahani Computer Engineering Department, Ferdowsi University of Mashhad [email protected] r, [email protected] Abstract Software
Developing multi-platform mobile applications: doing it right. Mihail Ivanchev
Developing multi-platform mobile applications: doing it right Mihail Ivanchev Outline Significance of multi-platform support Recommend application architecture Web-based application frameworks Game development
Architecting for the next generation of Big Data Hortonworks HDP 2.0 on Red Hat Enterprise Linux 6 with OpenJDK 7
Architecting for the next generation of Big Data Hortonworks HDP 2.0 on Red Hat Enterprise Linux 6 with OpenJDK 7 Yan Fisher Senior Principal Product Marketing Manager, Red Hat Rohit Bakhshi Product Manager,
neonex.in Head Office: Mastiska Technology Private Limited, E407, Ivory Towers, Sector 70, SAS Nagar, Mohali 160071
neonex.in Head Office: Mastiska Technology Private Limited, E407, Ivory Towers, Sector 70, SAS Nagar, Mohali 160071 2014-2015 All rights reserved. Neonex, SCODEL and T2OC are the registered trademarks
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Spark in Action. Fast Big Data Analytics using Scala. Matei Zaharia. www.spark- project.org. University of California, Berkeley UC BERKELEY
Spark in Action Fast Big Data Analytics using Scala Matei Zaharia University of California, Berkeley www.spark- project.org UC BERKELEY My Background Grad student in the AMP Lab at UC Berkeley» 50- person
Software Documentation Guidelines
Software Documentation Guidelines In addition to a working program and its source code, you must also author the documents discussed below to gain full credit for the programming project. The fundamental
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison
Random vs. Structure-Based Testing of Answer-Set Programs: An Experimental Comparison Tomi Janhunen 1, Ilkka Niemelä 1, Johannes Oetsch 2, Jörg Pührer 2, and Hans Tompits 2 1 Aalto University, Department
Unified Big Data Processing with Apache Spark. Matei Zaharia @matei_zaharia
Unified Big Data Processing with Apache Spark Matei Zaharia @matei_zaharia What is Apache Spark? Fast & general engine for big data processing Generalizes MapReduce model to support more types of processing
Application Portfolio Management
Application Portfolio Management Vorlesung IT-Unternehmensarchitektur VL 03; Donnerstag, 15. Novemver 2012; Fachgebiet Software-Architekturen, Prof. Dr. Robert Hirschfeld Dipl.-Inform. (univ.) Wolfgang
MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example
MapReduce MapReduce and SQL Injections CS 3200 Final Lecture Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI'04: Sixth Symposium on Operating System Design
Android Application Development
Android Application Development 3TECHSOFT INNOVATION*INTELLIGENCE*INFORMATION Effective from: JUNE 2013 Noida Office: A-385, Noida (UP)- 201301 Contact us: Email: [email protected] Website: www.3techsoft.com
Intro to Docker and Containers
Contain Yourself Intro to Docker and Containers Nicola Kabar @nicolakabar [email protected] Solutions Architect at Docker Help Customers Design Solutions based on Docker
CS314: Course Summary
CS314: Course Summary Prof. Robert B. France Dept. of Computer Science Colorado State University Robert B. France 1 1 Software Development Issues Explored - 1 Software engineering basics Why do we need
GUI Test Automation How-To Tips
www. routinebot.com AKS-Labs - Page 2 - It s often said that First Impression is the last impression and software applications are no exception to that rule. There is little doubt that the user interface
Online Construction of Dynamic Object Process Graphs
Online Construction of Dynamic Object Process Graphs Jochen Quante University of Bremen, Germany [email protected] Abstract A dynamic object process is a view on the control flow from the
RESCO MOBILE CRM QUICK GUIDE. for MS Dynamics CRM. ios (ipad & iphone) Android phones & tablets
RESCO MOBILE CRM for MS Dynamics CRM QUICK GUIDE ios (ipad & iphone) Android phones & tablets Windows Phone 7 & 8, Windows XP/Vista/7/8.1 and RT/Surface, Windows Mobile Synchronize Synchronize your mobile
Advanced Software Testing
Johan Seland Advanced Software Testing Geilo Winter School 2013 1 Solution Example for the Bowling Game Kata Solution is in the final branch on Github git clone git://github.com/johanseland/bowlinggamekatapy.git
Web Application Development for the SOA Age Thinking in XML
Web Application Development for the SOA Age Thinking in XML Enterprise Web 2.0 >>> FAST White Paper August 2007 Abstract Whether you are building a complete SOA architecture or seeking to use SOA services
Mobile Application Security
Mobile Application Security Jack Mannino Anand Vemuri June 25, 2015 About Us Jack Mannino CEO at nvisium UI and UX development impaired Enjoys: Scala, Elixir Tolerates: Java Allergic To: Cats, Pollen,.NET
An ACO/VNS Hybrid Approach for a Large-Scale Energy Management Problem
An ACO/VNS Hybrid Approach for a Large-Scale Energy Management Problem Challenge ROADEF/EURO 2010 Roman Steiner, Sandro Pirkwieser, Matthias Prandtstetter Vienna University of Technology, Austria Institute
Chapter 6 Experiment Process
Chapter 6 Process ation is not simple; we have to prepare, conduct and analyze experiments properly. One of the main advantages of an experiment is the control of, for example, subjects, objects and instrumentation.
Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( [email protected] )
Graduate presentation for CSCI 5448 By Janakiram Vantipalli ( [email protected] ) Content What is Android?? Versions and statistics Android Architecture Application Components Inter Application
Reconsidering Generic Composition
Reconsidering Generic Composition Chanathip Namprempre Thammasat University, Thailand Phillip Rogaway University of California, Davis, USA Tom Shrimpton Portland State University, USA 1/24 What is the
Getting started with Android and App Engine
Getting started with Android and App Engine About us Tim Roes Software Developer (Mobile/Web Solutions) at inovex GmbH www.timroes.de www.timroes.de/+ About us Daniel Bälz Student/Android Developer at
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications
GEDAE TM - A Graphical Programming and Autocode Generation Tool for Signal Processor Applications Harris Z. Zebrowitz Lockheed Martin Advanced Technology Laboratories 1 Federal Street Camden, NJ 08102
Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer
Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
The Rules 1. One level of indentation per method 2. Don t use the ELSE keyword 3. Wrap all primitives and Strings
Object Calisthenics 9 steps to better software design today, by Jeff Bay http://www.xpteam.com/jeff/writings/objectcalisthenics.rtf http://www.pragprog.com/titles/twa/thoughtworks-anthology We ve all seen
» A Hardware & Software Overview. Eli M. Dow <[email protected]:>
» A Hardware & Software Overview Eli M. Dow Overview:» Hardware» Software» Questions 2011 IBM Corporation Early implementations of Watson ran on a single processor where it took 2 hours
Introduction to Programming System Design. CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
The Visualization Pipeline
The Visualization Pipeline Conceptual perspective Implementation considerations Algorithms used in the visualization Structure of the visualization applications Contents The focus is on presenting the
Chronon: A modern alternative to Log Files
Chronon: A modern alternative to Log Files A. The 5 fundamental flows of Log Files Log files, Old School, are a relic from the 1970s, however even today in 2012, IT infrastructure monitoring relies on
CSE 403. Performance Profiling Marty Stepp
CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 1 Goals of the Lecture Present an introduction to the Android Framework Coverage of the framework will be
Minimizing code defects to improve software quality and lower development costs.
Development solutions White paper October 2008 Minimizing code defects to improve software quality and lower development costs. IBM Rational Software Analyzer and IBM Rational PurifyPlus software Kari
Violin: A Framework for Extensible Block-level Storage
Violin: A Framework for Extensible Block-level Storage Michail Flouris Dept. of Computer Science, University of Toronto, Canada [email protected] Angelos Bilas ICS-FORTH & University of Crete, Greece
Getting Started with Apple Pay on the Authorize.Net Platform
Title Page Getting Started with Apple Pay on the Authorize.Net Platform September 2014 Authorize.Net Developer Support http://developer.authorize.net Authorize.Net LLC 082007 Ver.2.0 Authorize.Net LLC
June 2011. TerraSAR-X-based Flood Mapping Service
June 2011 TerraSAR-X-based Flood Mapping Service Service TerraSAR-X-based Flood Mapping Product Flood extent map Product specifications Flood mask / water mask Input / output data Summary Content Date
Automatic vs. Manual Code Analysis
Automatic vs. Manual Code Analysis 2009-11-17 Ari Kesäniemi Senior Security Architect Nixu Oy [email protected] Copyright The Foundation Permission is granted to copy, distribute and/or modify this
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Dealing with Device Fragmentation in Mobile Games Testing. Ru Cindrea - Altom Consulting
Dealing with Device Fragmentation in Mobile Games Testing Ru Cindrea - Altom Consulting About me and Altom started as a tester in 2002 partner and software tester at Altom since 2008 software testing services
Calling R Externally : from command line, Python, Java, and C++
Calling R Externally : from command line, Python, Java, and C++ Leo Pekelis February 2nd, 2013, Bicoastal Datafest, Stanford University 1/11 What is R? Why and why not use it? R is a language and environment
Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard
A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection
Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection Martin Leucker Technische Universität München (joint work with Andreas Bauer, Christian Schallhart et. al) FLACOS
Software Testing Capabilities in BMC BSM Copyright 2011 Vyom Labs Pvt. Ltd.
Software Testing Capabilities in BMC BSM Agenda VyomLabs Testing Practice VyomLabs BMC Testing Assignments/Capabilities BMC Remedy Testing Life Cycle VyomLabs Testing Practice At A Glance People and Skills
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment
Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December
Lecture 15 - Digital Signatures
Lecture 15 - Digital Signatures Boaz Barak March 29, 2010 Reading KL Book Chapter 12. Review Trapdoor permutations - easy to compute, hard to invert, easy to invert with trapdoor. RSA and Rabin signatures.
Towards Elastic Application Model for Augmenting Computing Capabilities of Mobile Platforms. Mobilware 2010
Towards lication Model for Augmenting Computing Capabilities of Mobile Platforms Mobilware 2010 Xinwen Zhang, Simon Gibbs, Anugeetha Kunjithapatham, and Sangoh Jeong Computer Science Lab. Samsung Information
Completing the Big Data Ecosystem:
Completing the Big Data Ecosystem: in sqrrl data INC. August 3, 2012 Design Drivers in Analysis of big data is central to our customers requirements, in which the strongest drivers are: Scalability: The
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile
Big Data & Scripting Part II Streaming Algorithms
Big Data & Scripting Part II Streaming Algorithms 1, Counting Distinct Elements 2, 3, counting distinct elements problem formalization input: stream of elements o from some universe U e.g. ids from a set
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
An Automated Model Based Approach to Test Web Application Using Ontology
An Automated Model Based Approach to Test Web Application Using Ontology Hamideh Hajiabadi, Mohsen Kahani [email protected], [email protected] Computer Engineering Department, Ferdowsi
Using Library Dependencies for Clustering
Using Library Dependencies for Clustering Jochen Quante Software Engineering Group, FB03 Informatik, Universität Bremen [email protected] Abstract: Software clustering is an established approach
Coverage Criteria for Search Based Automatic Unit Testing of Java Programs
ISSN (Online): 2409-4285 www.ijcsse.org Page: 256-263 Coverage Criteria for Search Based Automatic Unit Testing of Java Programs Ina Papadhopulli 1 and Elinda Meçe 2 1, 2 Department of Computer Engineering,
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
