IBM Haifa Research Lab IBM Haifa Labs An Open Source Simulation Model of Software Testing Shmuel Ur Elad Yom-Tov Paul Wernick

Slides:



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

April 30, A New Tool for Designer-Level Verification: From Concept to Reality April 30, 2014 Ziv Nevo IBM Haifa Research Lab.
Regression Methodology Einat Ravid. Regression Testing - Definition  The selective retesting of a hardware system that has been modified to ensure that.
Sharif University of Technology Session # 2.  Contents  Structured analysis and design  Information system development  Systems Analysis and Design.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Prashant Lambat Sr. Manager SQA Engineering Symantec Corporation, Pune Date: 29 th January 2011.
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
An Analysis and Survey of the Development of Mutation Testing by Yue Jia and Mark Harmon A Quick Summary For SWE6673.
Software Construction
Automated Software Maintainability through Machine Learning by Eric Mudge.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
IBM Labs in Haifa Software and Verification Technologies Supporting SAT based BMC on Finite Path Models Daniel Geist Mark Ginzburg Yoad Lustig Ishai Rabinovitz.
Application Lifecycle Management in SharePoint 2010 Jeremy Thake.
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
Maintenance Refactoring and Code Smells. Where are we? Over the semester we have talked about Software Engineering. The overall goal of software engineering.
Multi Duty Tool for Smallworld™ solution providers.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Understand Application Lifecycle Management
Chapter 8 – Software Testing Lecture 1 1Chapter 8 Software testing The bearing of a child takes nine months, no matter how many women are assigned. Many.
Integrating Automation into Manual Testing
Software Testing Course Shmuel Ur
By Touseef Tahir Software Testing Basics. Today's Agenda Software Quality assurance Software Testing Software Test cases Software Test Plans Software.
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
Development Methodology N. Draper. Introduction Development Process Test driven development Continuous Integration –Automated build and test Trac Ticket.
Bug Localization with Machine Learning Techniques Wujie Zheng
Presenter : Ching-Hua Huang 2013/7/15 A Unified Methodology for Pre-Silicon Verification and Post-Silicon Validation Citation : 15 Adir, A., Copty, S.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
TM Copyright © 2009 NMQA Ltd. Behaviour Driven Testing with.
CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high quality product without a high quality process. Standard.
Software Debugging, Testing, and Verification Presented by Chris Hundersmarck November 10, 2004 Dr. Bi’s SE516.
Software Waterfall Life Cycle
PESAsim – the e/  analysis framework Validation of the framework First look at a trigger menu combining several signatures Short-term plans Mark Sutton.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
SEG 4110 – Advanced Software Design and Reengineering Topic T Introduction to Refactoring.
Economic Justification. Good Enough Quality Time to market Time to market Time to profit Time to profit.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
ITC Software ITC AUTOMATION TESTING SERVICES Date (Day Month, Year) Place (City, Country)
Efficiently Solving Computer Programming Problems Doncho Minkov Telerik Corporation Technical Trainer.
Teaching Functional Verification: Lab Mechanics Design Automation Conference Sunday, June 9, 2002.
Maths quiz KS 2: Use sequence in programs. Today we are learning about: Programs & Selection ●I can explain what selection is ●I can write a program using.
1 © Nokia 2015 Code review Adam Badura Public.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.
Introduction to Software Testing Maili Markvardt.
Test Automation Steffen Goerlitz Barry Lange Mitchell Meerman Harry Schultz Trevor Spees.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Your Prescription for Requirements Management 1. Assumptions The prescription for requirements management is based on the following assumptions:  The.
Benefits of a Virtual SIL
Automated Software Testing
Applied Software Testing
Progile Automated Verification Engineer • PAVE •
Software Testing Lab 1.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Take control over mission critical processes
Chapter 8 – Software Testing
Verification and Testing
Applied Software Implementation & Testing
Business Should Adopt Agile Testing. Test Driven Development is an essential software development way that is made by an automated test program which.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software testing strategies 2
Software Maintenance Main issues: why maintenance is such an issue
Bringing more value out of automation testing
Hardware-less Testing for RAS Software
Scratch Programming Lesson 7 Debugging.
Presentation transcript:

IBM Haifa Research Lab IBM Haifa Labs An Open Source Simulation Model of Software Testing Shmuel Ur Elad Yom-Tov Paul Wernick

IBM Haifa Labs 2 What Are the Development Tasks?  Writing Code Creating lines of code, creating bugs  Testing Creating tests, running tests  Reviews Searching the code for bugs  Debugging Looking for the bug root cause  Fixing Replacing some code that has a bug  Putting new bugs in?  We will ignore specification, design, maintenance

IBM Haifa Labs 3 Simulation Program Development  A program of certain size with certain quality need to be created Size is measured in LOC Quality is measured in # of bugs  A developer may spend time doing of the development tasks, The task may result in artifacts being created Writing code create new line objects, one for each line, which may contain bugs Writing tests, results in tests each of which can test a subset of the line objects. Automated tests are more expensive. Running a test takes some time (depends if automated) and may find bugs in specific line objects. Running a test a second time is not as effective …

IBM Haifa Labs 4 Default Simulation Values  # Code lines per hour = 30  Bugs per line = 0.01  Debugging time Correction = 1 + (LOC since bug)/2000  Hours to fix bug = base 2, multiply by 2 if a month passed, multiply by 3 if two months passed  Probability discovered by inspection = 0.5 : Laitenberger and DeBaud suggest that 70% is achievable  # Lines reviewed per hour = 200  Cost of testing = 1.14 hour per one hundred lines to do unit testing Other measures exist, cost of creating tests, cost of running tests  Probability of finding bugs in test =.5 Probability of finding bug when re-running the test = 0

IBM Haifa Labs 5 Simulation Cycle Write Test Write code Run Test Check Size (b) Code building cycle: Test First Done Debug Test /inspect Debug Check Quality (c) System test Done Write code Test / Inspect Debug Check Size (a) Code building cycle : iterative Done

IBM Haifa Labs 6 Sample Simulation

IBM Haifa Labs 7 Sample Simulation

IBM Haifa Labs 8 Overnight Regression – Chaotic behavior

IBM Haifa Labs 9 Overall Productivity when Code Creation Rate Increase

IBM Haifa Labs 10 What do Developers Really Do?

IBM Haifa Labs 11 Impact of Length of Iteration in Iterative Software Development

IBM Haifa Labs 12 Is Pair Programming a Good Idea? Depends!!

IBM Haifa Labs 13 Automating Testing May be Overrated

IBM Haifa Labs 14 Future Direction  Encapsulation Reduce cost of debugging, review …  Code complexity  Planning tool Quality requirement impact on methodology Not one size fit all