Further Investigations into the Development and Evaluation of Reading Techniques for Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper and.

Slides:



Advertisements
Similar presentations
Unit Testing in the OO Context(Chapter 19-Roger P)
Advertisements

Verification and Validation
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Challenges in Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper, Murray Wood University of Strathclyde UK.
Data Abstraction II SWE 619 Software Construction Last Modified, Spring 2009 Paul Ammann.
Abhinn Kothari, 2009CS10172 Parth Jaiswal 2009CS10205 Group: 3 Supervisor : Huzur Saran.
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Object-Oriented Analysis and Design
Software Engineering COMP 201
Introduction To System Analysis and Design
Copyright © 2006 Software Quality Research Laboratory DANSE Software Quality Assurance Tom Swain Software Quality Research Laboratory University of Tennessee.
Software Quality Control Methods. Introduction Quality control methods have received a world wide surge of interest within the past couple of decades.
Empirically Assessing End User Software Engineering Techniques Gregg Rothermel Department of Computer Science and Engineering University of Nebraska --
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
CS 425/625 Software Engineering Software Testing
SE 555 Software Requirements & Specification Requirements Validation.
Verification and Validation
C++ for Engineers and Scientists Third Edition
A452 – Programming project – Mark Scheme
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Software Process and Product Metrics
Verification and Validation
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Qualitative Studies: Case Studies. Introduction l In this presentation we will examine the use of case studies in testing research hypotheses: l Validity;
OOSE 01/17 Institute of Computer Science and Information Engineering, National Cheng Kung University Member:Q 薛弘志 P 蔡文豪 F 周詩御.
Using UML to report results of project management for information systems projects Donna M. Gavin MMIS 621 Information Systems Project Management Assignment.
© 2011 Pearson Prentice Hall, Salkind. Introducing Inferential Statistics.
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
How Significant Is the Effect of Faults Interaction on Coverage Based Fault Localizations? Xiaozhen Xue Advanced Empirical Software Testing Group Department.
Software Engineering CS B Prof. George Heineman.
LESSON 8 Booklet Sections: 12 & 13 Systems Analysis.
*Graduate School of Engineering Science, Osaka University
Chapter 3 Introduction to Collections – Stacks Modified
Program Evaluation. Program evaluation Methodological techniques of the social sciences social policy public welfare administration.
Verification and Validation Chapter 22 of Ian Sommerville’s Software Engineering.
Software testing techniques 2.Verification and validation From I. Sommerville textbook Kaunas University of Technology.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 13 Verification and validation Slide 1 1 Chapter 13 Verification and Validation.
What Do We Know about Defect Detection Methods P. Runeson et al.; "What Do We Know about Defect Detection Methods?", IEEE Software, May/June Page(s):
Experimentation in Computer Science (Part 1). Outline  Empirical Strategies  Measurement  Experiment Process.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
Ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm.
Institut Experimentelles Software Engineering Fraunhofe r IESE Sauerwiesen 6 D Kaiserslautern Germany The Architecture-centric Inspection Approach.
Ch 22 Verification and Validation
CHAPTER 9: VERIFICATION AND VALIDATION 1. Objectives  To introduce software verification and validation and to discuss the distinction between them 
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Programming with Assertions © Allan C. Milne v
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CHAPTER OVERVIEW Say Hello to Inferential Statistics The Idea of Statistical Significance Significance Versus Meaningfulness Meta-analysis.
C++ Inheritance Data Structures & OO Development I 1 Computer Science Dept Va Tech June 2007 © McQuain Generalization versus Abstraction Abstraction:simplify.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
1 Software Testing and Quality Assurance Lecture 17 - Test Analysis & Design Models (Chapter 4, A Practical Guide to Testing Object-Oriented Software)
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa OBJECT DESIGN Now we need to design in such detail that.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Testing Integral part of the software development process.
A2 Agreement Trial ICT November Key Points from Moderation  Majority of centres applied the assessment criteria successfully  Tasks selected and.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Verification and Validation
Chapter 8 Introducing Inferential Statistics.
Testing Tutorial 7.
Software Testing.
CSC 480 Software Engineering
Verification and Validation
Presentation transcript:

Further Investigations into the Development and Evaluation of Reading Techniques for Object-Oriented Code Inspection Alastair Dunsmore, Marc Roper and Murray Wood Dept. Computer and Information Sciences University of Strathclyde Glasgow Scotland, UK

Introduction and Motivation Inspections have become established as an effective and efficient means of detecting defects Significant lack of information indicating how inspections should be applied to object-oriented (OO) code This paper presents the results of the development and evaluation of three reading techniques to support OO code inspections

Previous Work Systematic abstraction-driven inspection technique developed and evaluated + some evidence of success with delocalised defects - less so with defects associated with the dynamic model of OO software OO promotes delocalisation – observed as a significant problem

New Developments 1.Systematic –Aims to supports understanding and address delocalisation (employed previously). 2.Checklist –Aims to address defects missed by systematic approach’s linear strategy 3.Use-Case –Aims to address the dynamic aspects of OO code Devised three Reading Techniques with distinct aims:

Systematic Technique Code read in an ordered fashion – fewest dependencies first Abstract specification created for each method –Promotes deeper understanding –Provides a summary for reference in future inspections Any instances of delocalisation (external references) should be traced and resolved

public boolean isRegistered(String e) { boolean found = false; for (int i=0; i< theUsers.size() & !found; i++) if ((((Person)theUsers.elementAt(i)).get ()).equals(e)) found = false; return found; } Returns false if the input String e matches the address of one of the Person elements in the user collection, otherwise returns false.

Checklist Set of specific questions aimed at focussing attention towards common OO defects 18 questions (1 page) built on historical data Schema: –where to look (class, method) –how to detect (questions grouped conceptually – inheritance, data referencing, messaging etc.) Ordered to support the inspector in building up an understanding and minimise context switches

For each class FeatureQuestion InheritanceIs all inheritance required by the design implemented in the class? Is the inheritance appropriate? Class Constructor Are all instance variables initialised with meaningful values? If a call to super is required in the constructor, is it present? For each method 4 Data Referencing Are all parameters used within a method? 5 Are the correct class constants used? 6 etc…

Use-Case Based Strategy Examines the response to various input scenarios Does each object react correctly to all the possible ways in which it could be used? Scenarios derived from use cases and traced through sequence diagram –Focus on code when class under inspection is encountered Final state compared with that anticipated

Class under inspection Inspector refers to code at this point Scenario

Empirical Evaluation 69 3 rd year honours CS students split into 3 groups – one technique/group Code - ~200 lines of Java (2 classes) 14 Defects –seeded and naturally occurring Subjects trained and involved in the experiment Validity threats: –Selection, enthusiasm, learning, subjects, code, defects… 90 minutes to complete the inspection Null hypothesis – no significant difference between number of defects detected using the three techniques

Defect Detection Results (Individuals) Significant difference only at the 10% level 23 N = Checklist Systematic Use-case No. of Defects

Defects discovered by at least 50% of inspectors Checklist Use-Case Systematic

Analysis Systematic –Effective with delocalised defects –Supports weaker subjects, and hinders better ones –Full benefits of abstract specifications not explored Checklist –Generally effective, except with errors of omission. –Largest number of false positives -> understanding? –Question construction is crucial - > potential instability? Use-Case –Most demanding. –Inspectors uncomfortable about incomplete coverage –Alternative point of reference -> errors of omission/ commission?

Conclusions Resolving delocalised references and understanding system dynamics are significant problems when inspecting OO code Three techniques developed to address these issues Would not discount any –Some evidence of techniques being complementary –Good degree of robustness –Further cost/benefit evaluation necessary in an industrial context Questions?