The Organizational Impacts on Software Quality and Defect Estimation

Slides:



Advertisements
Similar presentations
Artificial Intelligence 12. Two Layer ANNs
Advertisements

Developed by Reneta Barneva, SUNY Fredonia
Testing and Quality Assurance
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Prediction Basic concepts. Scope Prediction of:  Resources  Calendar time  Quality (or lack of quality)  Change impact  Process performance  Often.
1 Test Planning CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 9, 2007.
Perceptron-based Global Confidence Estimation for Value Prediction Master’s Thesis Michael Black June 26, 2003.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Learning Programs Danielle and Joseph Bennett (and Lorelei) 4 December 2007.
CSCI 347 / CS 4206: Data Mining Module 04: Algorithms Topic 06: Regression.
S Neuendorf 2004 Prediction of Software Defects SASQAG March 2004 by Steve Neuendorf.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Advancing Requirements-Based Testing Models to Reduce Software Defects Craig Hale, Process Improvement Manager and Presenter Mara Brunner, B&M Lead Mike.
CPIS 357 Software Quality & Testing
Fault Diagnosis System for Wireless Sensor Networks Praharshana Perera Supervisors: Luciana Moreira Sá de Souza Christian Decker.
VTT-STUK assessment method for safety evaluation of safety-critical computer based systems - application in BE-SECBS project.
Verification and Validation Overview References: Shach, Object Oriented and Classical Software Engineering Pressman, Software Engineering: a Practitioner’s.
Coverage – “Systematic” Testing Chapter 20. Dividing the input space for failure search Testing requires selecting inputs to try on the program, but how.
Introduction to Defect Prediction Cmpe 589 Spring 2008.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
From Machine Learning to Deep Learning. Topics that I will Cover (subject to some minor adjustment) Week 2: Introduction to Deep Learning Week 3: Logistic.
Modeling and simulation of systems Model building Slovak University of Technology Faculty of Material Science and Technology in Trnava.
Data Mining Practical Machine Learning Tools and Techniques Chapter 4: Algorithms: The Basic Methods Section 4.6: Linear Models Rodney Nielsen Many of.
M Machine Learning F# and Accord.net. Alena Dzenisenka Software architect at Luxoft Poland Member of F# Software Foundation Board of Trustees Researcher.
Software Metrics Cmpe 550 Fall Software Metrics.
Verification and Validation Assuring that a software system meets a user's needs.
SOFTWARE METRICS Software Metrics :Roadmap Norman E Fenton and Martin Neil Presented by Santhosh Kumar Grandai.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Software Measurement Measuring software indicators: metrics and methods Jalote-2002,
Software Quality Assurance and Testing Fazal Rehman Shamil.
Using Bayesian Belief Networks in Assessing Software Architectures Jilles van Gurp & Jan Bosch.
1 ARTIFICIAL INTELLIGENCE Gilles BÉZARD Version 3.16.
Data Mining: Concepts and Techniques1 Prediction Prediction vs. classification Classification predicts categorical class label Prediction predicts continuous-valued.
Business Intelligence and Decision Support Systems (9 th Ed., Prentice Hall) Chapter 6: Artificial Neural Networks for Data Mining.
Adding Dynamic Nodes to Reliability Graph with General Gates using Discrete-Time Method Lab Seminar Mar. 12th, 2007 Seung Ki, Shin.
Comparing TensorFlow Deep Learning Performance Using CPUs, GPUs, Local PCs and Cloud Pace University, Research Day, May 5, 2017 John Lawrence, Jonas Malmsten,
Software Defects Cmpe 550 Fall 2005
Subject Name: Software Testing Subject Code: 10CS842 Prepared By:
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Introduction to Machine Learning
Michael J. Salé, Seidenberg School of CSIS, Westchester DPS 2016
John D. McGregor Session 9 Testing Vocabulary
Testing and Debugging PPT By :Dr. R. Mall.
CSC 480 Software Engineering
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Verification and Testing
The Next Frontier in TAR: Choose Your Own Algorithm
Verification and Validation Overview
Some Simple Definitions for Testing
BASICS OF SOFTWARE TESTING Chapter 1. Topics to be covered 1. Humans and errors, 2. Testing and Debugging, 3. Software Quality- Correctness Reliability.
CS 240 – Lecture 11 Pseudocode.
First work in AI 1943 The name “Artificial Intelligence” coined 1956
Software Test Termination
Lecture 09:Software Testing
Different Testing Methodology
of the Artificial Neural Networks.
Functions Introduction.
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Introduction To software engineering
Applied Software Project Management
Baisc Of Software Testing
Artificial Intelligence 12. Two Layer ANNs
DeltaV Neural - Expert In Expert mode, the user can select the training parameters, recommend you use the defaults for most applications.
Chapter 7 Software Testing.
Machine learning CS 229 / stats 229
Presentation transcript:

The Organizational Impacts on Software Quality and Defect Estimation Stephen Lopez-Couto

Discussion Topics Introduction Defect Concepts Definition of a defect Static vs. Dynamic Discovery Defect Estimation Methods Linear Regression Capture/Recapture AI Defect Estimation Variables Further Research Conclusion

Introduction Defect Estimation The act of “guessing” the number of defects that exist in a current software baseline Purpose of this paper is to determine the usefulness of metrics that are not explicitly tied to the code to make the estimates

Introduction Organizational Elements: Development Team Size Developer Experience Institutional Processes CMMI level for example Development Tools Development Schedule Programming Language Software Architecture

Defect Concepts: What is a Defect? There is no common definition of a defect Consider the following: Program is supposed to add the variables ‘y’ and ‘i’ together and put the value into ‘x’ int i = 5; int y = 6; int x = y+1 Print(x);

Defect Concepts: What is a Defect? The programmer introduced a defect Correct code: int x = y + i There is no common definition of a defect Consider the following: Program is supposed to add the variables ‘y’ and ‘i’ together and put the value into ‘x’ int i = 5; int y = 6; int x = y+1 Print(x);

Defect Concepts: What is a Defect? Two things occur before a defect can be detected Fault – Incorrect value in the internal state of the program Failure – When a fault is realized as output int i = 5; int y = 6; int x = y+1 // Causes a Fault Print(x); // Causes a Failure A Failure may not be detected until well after the fault has occurred!

Defect Concepts: Static Vs. Dynamic Discovery Static – Does not utilize executing code Software Inspections Walkthroughs Complexity Mapping Dynamic – Utilizes executing, compiled code Runtime tests Automated defect discovery tools

Defect Estimation Methods Estimating the number of defects is by no means an exact science There are lots of different ways to determine an estimate Most of the methods are highly tied to a specific organization or software baseline Not good enough for general use Three general methods will be discussed Linear Regression Capture/Recapture Artificial Intelligence Bayesian Belief Networks Neural Networks

Defect Estimation Methods Linear Regression Determines a mathematical expression that relates some number of independent variables (the input metrics) and the dependent variable (defect estimation) Variable Type: Numeric Only

Defect Estimation Methods Capture/Recapture Some number of defects are seeded into the software at development time. When testing occurs ratio of seeded to unseeded defects found is used to estimate the total number. Variable Type: N/A. Only track defect counts.

Defect Estimation Methods AI: Bayesian Belief Networks A network that weighs the relationship among different variables is created (using expert knowledge) and processed using Bayesian probabilities to determine the quality of the software. Variable Type: any

Defect Estimation Methods AI: Neural Networks A multilayer perceptron using the back propagation algorithm is trained on legacy defect data and then provides estimates based on input data. Variable Type: Numeric Only

Defect Estimation Variables

Further Research Three main areas Transformation of non numerical data into a numerical form Additional estimation methods that do not utilize numeric only data Determination of common relationships among the input metrics, independent of which method is used

Conclusion Organizational Element Data is useful when paired with the proper estimation method Limitations of the most common method (linear regression) has led to a general shunning of these metrics Defect Estimation approaches are not ready for real world use They are too tied to specific cases

Questions Questions?