Coding concerns, are they real? Fadi Wedyan, Dalal Alrmuny May 10 th, 2007.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Sandeep Krishnan, ISU Robyn R. Lutz, ISU & JPL Katerina Goseva-Popstojanova, WVU Dept. of Computer Science, Iowa State University, MSR, May 22,
Chapter 4 Quality Assurance in Context
Scientific Method.
Rev SYBASE ASE: LOAD GENERATOR Sybase Administration Tools available at: mailto:
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
What causes bugs? Joshua Sunshine. Bug taxonomy Bug components: – Fault/Defect – Error – Failure Bug categories – Post/pre release – Process stage – Hazard.
Chapter 6: Design of Expert Systems
A GOAL-BASED FRAMEWORK FOR SOFTWARE MEASUREMENT
IBM Haifa Research Lab IBM Haifa Labs An Open Source Simulation Model of Software Testing Shmuel Ur Elad Yom-Tov Paul Wernick
How to Debug Debugging Detectives Debugging Desperados I GIVE UP! MyClass.java.
Hacking Framework Extended: The Role of Vulnerabilities Joseph H. Schuessler Bahorat Ibragimova 8 th Annual Security Conference Las Vegas, Nevada April.
Learning Objective Chapter 13 Data Processing, Basic Data Analysis, and Statistical Testing of Differences CHAPTER thirteen Data Processing, Basic Data.
What is Software Architecture?
A Comparative Analysis of the Efficiency of Change Metrics and Static Code Attributes for Defect Prediction Raimund Moser, Witold Pedrycz, Giancarlo Succi.
McGraw-Hill © 2006 The McGraw-Hill Companies, Inc. All rights reserved. Historical Research Chapter Twenty-Two.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
Chapter 8 Introduction to Hypothesis Testing
Ch.4: QA in Context  QA and the overall development context Defect handling/resolution How alternative QA activities fit in process Alternative perspectives:
PowerPoint presentation to accompany Research Design Explained 5th edition ; ©2004 Mark Mitchell & Janina Jolley Chapter 3 Reading and Evaluating Research.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
CS4723 Software Validation and Quality Assurance
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
University of Maryland Bug Driven Bug Finding Chadd Williams.
Made by: Sambit Pulak XI-IB. Reliability refers to the operation of hardware, the design of software, the accuracy of data or the correspondence of data.
Software Engineering CS3003
Open Source Genealogy Software John Finlay PhpGedView Project Manager.
Program Development Life Cycle (PDLC)
10.2 Tests of Significance Use confidence intervals when the goal is to estimate the population parameter If the goal is to.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Testing of Hypothesis Fundamentals of Hypothesis.
Predicting Accurate and Actionable Static Analysis Warnings: An Experimental Approach J. Ruthruff et al., University of Nebraska-Lincoln, NE U.S.A, Google.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
Copyright © 2015 NTT DATA Corporation Kazuo Kobori, NTT DATA Corporation Makoto Matsushita, Osaka University Katsuro Inoue, Osaka University SANER2015.
University of Maryland Mining Source Code Change History for Program Understanding Chadd Williams.
Experimental Design and Implementation Honors Biology.
Toulouse, September 2003 Page 1 JOURNEE ALTARICA Airbus ESACS  ISAAC.
Constructing hypotheses & research design. The definition of a hypothesis A tentative proposition. Its validity is unknown. It specifies a relationship.
© Copyright McGraw-Hill 2004
Findbugs Tin Bui-Huy September, Content What is bug? What is bug? What is Findbugs? What is Findbugs? How to use Findbugs? How to use Findbugs?
INTEGRATED SCIENCE PROCESS SKILLS BASIC SCIENCE PROCESS SKILLS
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
What is a Hypothesis? A hypothesis is a claim (assumption) about the population parameter Examples of parameters are population mean or proportion The.
What kind of and how clones are refactored? A case study of three OSS projects WRT2012 June 1, Eunjong Choi†, Norihiro Yoshida‡, Katsuro Inoue†
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Lesson 4.5 – Conducting a Survey to Collect Two-Variable Data.
Testing and Debugging. Testing Fundamentals  Test as you develop Easier to find bugs early rather than later Prototyping helps identify problems early.
Title of the study. Principal investigator and co workers names Organization/College name.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Defensive Programming. Good programming practices that protect you from your own programming mistakes, as well as those of others – Assertions – Parameter.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
The scientific method The key to a successful science fair project. 1.
Findbugs Tin Bui-Huy September, Content What is bug? What is bug? What is Findbugs? What is Findbugs? How to use Findbugs? How to use Findbugs?
Steps of the Scientific Method Experimental Design Observations
CHAPTER 13 Data Processing, Basic Data Analysis, and the Statistical Testing Of Differences Copyright © 2000 by John Wiley & Sons, Inc.
About Me I'm a software Committer on HDFS
Verification and Testing
Applied Software Implementation & Testing
Fault Injection: A Method for Validating Fault-tolerant System
Writing the Discussion
Baisc Of Software Testing
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Warm-Up.
Data Processing, Basic Data Analysis, and the
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Statistical Power.
Defensive Programming
Presentation transcript:

Coding concerns, are they real? Fadi Wedyan, Dalal Alrmuny May 10 th, 2007

Outlines Objective. Motivation. Study method. Results. Threats to validity. Conclusions. Future work and suggested projects. Questions.

Objective Investigating the possible connection between coding concerns and software failures in OSS.

Motivation No existing study attempted to answer the research question we asked. Many inspection tools exist, are they useful, are the concerns “real”?

Study method 1) choose the OSS to be studied, 2) choose tools for code inspection, and 3) develop a methodology to map the coding concerns to the reported failures

Research Questions Q1: “Does a relationship between coding concerns and reported failures in OSS exist?” Q2: “Are there certain types of coding concerns that are more likely to produce failures in OSS?”

Hypotheses First Hypothesis H1: Null hypothesis H01: “There is no relationship between coding concerns and reported failures in OSS”. Alternative hypothesis HA1: “A relationship exists between coding concerns and reported failures in OSS”. Second Hypothesis H2: Null hypothesis H02: “There is no relationship between certain types of coding concerns and reported failures in OSS”. Alternative hypothesis HA2: “A relationship exists between certain types of coding concerns and reported failures in OSS”.

Studied Systems Project NameReleasesNo. DevelopersKLOCNumber of Files jEdit5 stable, 6 mature iText4-beta, 5 stable Table 1: Main characteristics of the studied software systems

Code Inspection Tools ToolTypeAnalysisCode IntelliJ ® IDEACommercialStaticSource code FindBugs™OSSStaticBytecode Table 2: Main characteristics of code inspection tools used in the study

Sources of failure data Reported bugs in SourceForge –Incomplete. –Lot of faked bugs. CVS Repository –Complete. –Distinguish bugs fixing actions from others.

Results (1) VersionDate releasedReported failuresFindBugs™IntelliJ ® IDEA iText 1.3April 6, iText 1.4March 3, jEdit 3.0Dec 21, jEdit 4.1March 27, jEdit 4.2Aug 28, Table 3: Reported failures compared to concerns

Results (2) iText 1.3iText 1.4jEdit 3.0jEdit 4.1jEdit 4.2 Bad Practice Correctness Malicious Multithreaded45122 Dodgy Total Table 4: Coding concerns reported by FindBugs™

Results (3) Table 5: Coding reported by IntelliJ® IDEA iText 1.3iText 1.4jEdit 3.0jEdit 4.1jEdit 4.2 Class Structure Error Handling Numerical Issues Cloning Issues75444 Control Flow Issues Data Flow Issues Threading Issues Probable Bugs Total

Results (4) Table 6: Coding concerns categories compared to detected failures in iText 1.3 using IntelliJ® IDEA CategoryConcernsFailures Class Structure1030 Error Handling392 Numerical Issues141 Cloning Issues71 Control Flow Issues720 Data Flow Issues380 Threading Issues50 Probable Bugs6537 Total93111

Results (5) Table 7: Coding concerns categories compared to detected failures in iText 1.3 using FindBugs™ CategoryConcernsFailures Bad Practice1084 Correctness120 Malicious2340 Multithreaded40 Dodgy791 Total4465

Threats to Validity Internal validity: –The size of the studied systems. –The reported failures. External validity: –Size and type of the data sets. –Code inspection tools.

Conclusions A relationship exists between coding concerns and reported failures: the inspection tools were successful in pointing out 12-26% of the reported failures. Certain categories of concerns were successfully mapped into failures more than others.

Conclusions We recommend relying on the CVS repository instead of the reported failures in SourceForge. –About 40% of failures fixing found in CVS did not exist in the reported failures.

Future work and suggested projects More testing: extending the study on more software and using other tools. Studying early releases of software. Studying the “pattern of errors in Java codes”. –Results can be integrated in the inspection tools. For example, tracing the life cycle of objects.

Questions