CMPT 473 Software Quality Assurance. Managing Bugs. Nick Sumner

Size: px
Start display at page:

Download "CMPT 473 Software Quality Assurance. Managing Bugs. Nick Sumner"

Transcription

1 CMPT 473 Software Quality Assurance Managing Bugs Nick Sumner

2 Bugs! So far, we've been trying to find & avoid them Test, test, test! 2

3 Bugs! So far, we've been trying to find & avoid them Test, test, test! Eventually, you might actually encounter a bug/error 3

4 Bugs! So far, we've been trying to find & avoid them Test, test, test! Eventually, you might actually encounter a bug/error 2 perspectives to consider 4

5 Bugs! So far, we've been trying to find & avoid them Test, test, test! Eventually, you might actually encounter a bug/error 2 perspectives to consider Developer how should the program handle errors? Error Reporting 5

6 Bugs! So far, we've been trying to find & avoid them Test, test, test! Eventually, you might actually encounter a bug/error 2 perspectives to consider Developer how should the program handle errors? Error Reporting Client/Teammate how should the bug be reported / prioritized / fixed? Bug Advocacy 6

7 Bugs! So far, we've been trying to find & avoid them Test, test, test! These perspectives are not independent! Eventually, you might actually encounter a bug/error Why? 2 perspectives to consider Developer how should the program handle errors? Error Reporting Client/Teammate how should the bug be reported / prioritized / fixed? Bug Advocacy 7

8 Error Reporting What should the program do when it detects an error? 8

9 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice 9

10 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it 10

11 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it Fail gracefully, continuing if possible 11

12 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it Fail gracefully, continuing if possible What should error messages contain? 12

13 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it Fail gracefully, continuing if possible What should error messages contain? What specifically is incorrect 13

14 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it Fail gracefully, continuing if possible What should error messages contain? What specifically is incorrect Why it is incorrect 14

15 Error Reporting What should the program do when it detects an error? Simply ignoring the error is often a poor choice Log it, print it, or otherwise report it Fail gracefully, continuing if possible What should error messages contain? What specifically is incorrect Why it is incorrect Where / when it is incorrect 15

16 Error Reporting Should match your existing intuition: 16

17 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! 17

18 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! Segmentation Fault is frustrating 18

19 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! Segmentation Fault is frustrating Program Error is infuriating 19

20 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! Segmentation Fault is frustrating Program Error is infuriating Index out of bounds: index i = 30 > size 15 at line 5 of MyVector.java is rather pleasant 20

21 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! Segmentation Fault is frustrating Program Error is infuriating Index out of bounds: index i = 30 > size 15 at line 5 of MyVector.java is rather pleasant But not all information should be reported! Why might some values/variables be undesirable to report? 21

22 Error Reporting Should match your existing intuition: try { } catch (Exception e) {} is hideous! Segmentation Fault is frustrating Program Error is infuriating Index out of bounds: index i = 30 > size 15 at line 5 of MyVector.java is rather pleasant But not all information should be reported! Why might some values/variables be undesirable to report? Note: Sensitive values should not even be available or possible to report! This indicates design bugs! 22

23 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management 23

24 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: 24

25 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure 25

26 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner 26

27 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports 27

28 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects 28

29 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects Prioritizing the bug 29

30 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects Prioritizing the bug Identifying workarounds & working cases 30

31 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects Prioritizing the bug Identifying workarounds & working cases What have we left out? 31

32 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects Prioritizing the bug Identifying workarounds & working cases and creating a fix 32

33 Reporting, Advocacy, & Management The reason we need good error messages is to support bug reporting & management Help facilitate: Reproducing the failure Finding the best initial owner Combining duplicate reports Identifying possible causes & effects Prioritizing the bug Identifying workarounds & working cases and creating a fix Bad bug reporting & management is worse that none! Any ideas why? 33

34 Bug Management All projects have unfixed bugs How do we keep track of them & decide what to fix? 34

35 Bug Management All projects have unfixed bugs How do we keep track of them & decide what to fix? Bug Databases e.g. Bugzilla, Mantis, Trac, FogBugz,... 35

36 Bug Management All projects have unfixed bugs How do we keep track of them & decide what to fix? Bug Databases e.g. Bugzilla, Mantis, Trac, FogBugz,... Bug Databases Centralize communication (developer & user) to: 36

37 Bug Management All projects have unfixed bugs How do we keep track of them & decide what to fix? Bug Databases e.g. Bugzilla, Mantis, Trac, FogBugz,... Bug Databases Centralize communication (developer & user) to: Own Prioritize Reproduce, Localize, Explain Patch 37

38 Ownership Who is responsible for a bug? A very difficult task in general 38

39 Ownership Who is responsible for a bug? A very difficult task in general Who knows the most about this module? Whose code (if any!) exposed the bug? (RIP) Who worked with this code most recently? 39

40 Ownership Who is responsible for a bug? A very difficult task in general Who knows the most about this module? Whose code (if any!) exposed the bug? (RIP) Who worked with this code most recently? Is this a client side issue? 40

41 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed 41

42 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? What makes bugs a higher priority for you? 42

43 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users 43

44 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users Have substantial risks / consequences 44

45 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users Have substantial risks / consequences This requires proper risk assessment (tricky) 45

46 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users Have substantial risks / consequences Are new in the latest version 46

47 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users Have substantial risks / consequences Are new in the latest version Why are new bugs important? 47

48 Prioritizing Bugs All projects have unfixed bugs If a bug doesn't appear important, it won't get fixed Which bugs are important? Occur frequently / for most users Have substantial risks / consequences Are new in the latest version Identifying the importance of bugs is critical to prioritizing them Usually informally at first until a bug owner is found to estimate the risk 48

49 But what should a report contain? A concise explanation of anything helpful in evaluating & fixing the bug? 49

50 But what should a report contain? A concise explanation of anything helpful in evaluating & fixing the bug Product, version, & relevant feature Platform & environment Potential severity / priority Possible owners Possible duplicates... 50

51 But what should a report contain? A concise explanation of anything helpful in evaluating & fixing the bug Product, version, & relevant feature Platform & environment Potential severity / priority Possible owners Possible duplicates A one line summary 51

52 But what should a report contain? A concise explanation of anything helpful in evaluating & fixing the bug Product, version, & relevant feature Platform & environment Potential severity / priority Possible owners Possible duplicates A one line summary An explanation of what happened, when it happened, & why it was unexpected 52

53 But what should a report contain? A concise explanation of anything helpful in evaluating & fixing the bug Product, version, & relevant feature Platform & environment Potential severity / priority Possible owners Possible duplicates A one line summary An explanation of what happened, when it happened, & why it was unexpected A minimal, self contained test case (steps to reproduce) 53

54 Bug Advocacy An Example A colleague of mine have find a hairy bug, here is a simple code to reproduce it. public class FunWithMultiCatch { public static void main(string[] args) { Runnable r = () -> { try { Object o = null; o.getclass(); throw new IOException(); } catch(ioexception IllegalArgumentException e) { System.out.println("KO!"); } catch(runtimeexception e) { System.out.println("OK!"); } }; r.run(); } 54 }

55 Bug Advocacy An Example A colleague of mine have find a hairy bug, here is a simple code to reproduce it. public class FunWithMultiCatch { public static void main(string[] args) { Runnable r = () -> { try { Object o = null; o.getclass(); throw new IOException(); } catch(ioexception IllegalArgumentException e) { System.out.println("KO!"); } catch(runtimeexception e) { System.out.println("OK!"); } }; It prints 'KO!' :( r.run(); } 55 }

56 Common Problems Incomplete / missing information is the most common issue [Bettenburg 2008] It is also what I face when trying to help students 56

57 Common Problems Incomplete / missing information is the most common issue [Bettenburg 2008] It is also what I face when trying to help students Also, errors in: steps to reproduce (incorrectness or overcomplication) 57

58 Common Problems Incomplete / missing information is the most common issue [Bettenburg 2008] It is also what I face when trying to help students Also, errors in: steps to reproduce (incorrectness or overcomplication) expected behaviors 58

59 How can we minimize test cases? For now: How do you already minimize test cases? 59

60 How can we minimize test cases? For now: How do you already minimize test cases? Let's think of what else we could do 60

CMPT 473 Software Quality Assurance. Managing Bugs. Nick Sumner - Fall 2014

CMPT 473 Software Quality Assurance. Managing Bugs. Nick Sumner - Fall 2014 CMPT 473 Software Quality Assurance Managing Bugs Nick Sumner - Fall 2014 Bugs! So far, we've been trying to find & avoid them Test, test, test! 2 Bugs! So far, we've been trying to find & avoid them Test,

More information

2018/2/5 话费券企业客户接入文档 语雀

2018/2/5 话费券企业客户接入文档 语雀 1 2 2 1 2 1 1 138999999999 2 1 2 https:lark.alipay.com/kaidi.hwf/hsz6gg/ppesyh#2.4-%e4%bc%81%e4%b8%9a%e5%ae%a2%e6%88%b7%e6%8e%a5%e6%94%b6%e5%85%85%e5 1/8 2 1 3 static IAcsClient client = null; public static

More information

Errors and Exceptions

Errors and Exceptions Exceptions Errors and Exceptions An error is a bug in your program dividing by zero going outside the bounds of an array trying to use a null reference An exception isn t necessarily your fault trying

More information

Testing. Topics. Types of Testing. Types of Testing

Testing. Topics. Types of Testing. Types of Testing Topics 1) What are common types of testing? a) Testing like a user: through the UI. b) Testing like a dev: through the code. 2) What makes a good bug report? 3) How can we write code to test code (via

More information

16-Dec-10. Consider the following method:

16-Dec-10. Consider the following method: Boaz Kantor Introduction to Computer Science IDC Herzliya Exception is a class. Java comes with many, we can write our own. The Exception objects, along with some Java-specific structures, allow us to

More information

An exception is simply an error. Instead of saying an error occurred, we say that an.

An exception is simply an error. Instead of saying an error occurred, we say that an. 3-1 An exception is simply an error. Instead of saying an error occurred, we say that an. Suppose we have a chain of methods. The method is the first in the chain. An expression in it calls some other

More information

Exceptions. Errors and Exceptions. Dealing with exceptions. What to do about errors and exceptions

Exceptions. Errors and Exceptions. Dealing with exceptions. What to do about errors and exceptions Errors and Exceptions Exceptions An error is a bug in your program dividing by zero going outside the bounds of an array trying to use a null reference An exception is a problem whose cause is outside

More information

Design and Implementation of a Bug Tracking System for Student Groups

Design and Implementation of a Bug Tracking System for Student Groups Design and Implementation of a Bug Tracking System for Student Groups David Lannoye Department of Computer Science University of North Dakota Grand Forks, North Dakota 58202 dlannoye@cs.und.edu Abstract

More information

Writing your own Exceptions. How to extend Exception

Writing your own Exceptions. How to extend Exception Writing your own Exceptions How to extend Exception When would you write your own exception class? When to write your own custom exception is a matter for discussion in your project design team. There

More information

COMP 213. Advanced Object-oriented Programming. Lecture 17. Exceptions

COMP 213. Advanced Object-oriented Programming. Lecture 17. Exceptions COMP 213 Advanced Object-oriented Programming Lecture 17 Exceptions Errors Writing programs is not trivial. Most (large) programs that are written contain errors: in some way, the program doesn t do what

More information

Main concepts to be covered. Handling errors. Some causes of error situations. Not always programmer error. Defensive programming.

Main concepts to be covered. Handling errors. Some causes of error situations. Not always programmer error. Defensive programming. Main concepts to be covered Handling errors Or, When Bad Things Happen to Good Programs Defensive programming. Anticipating that things could go wrong. Exception handling and throwing. Error reporting.

More information

COMP-202 Unit 9: Exceptions

COMP-202 Unit 9: Exceptions COMP-202 Unit 9: Exceptions Announcements - Assignment 4: due Monday April 16th - Assignment 4: tutorial - Final exam tutorial next week 2 Exceptions An exception is an object that describes an unusual

More information

CS159. Nathan Sprague

CS159. Nathan Sprague CS159 Nathan Sprague What s wrong with the following code? 1 /* ************************************************** 2 * Return the mean, or -1 if the array has length 0. 3 ***************************************************

More information

CS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling

CS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling CS115 Pi Principles i of fcomputer Science Chapter 17 Exception Handling Prof. Joe X. Zhou Department of Computer Science CS115 ExceptionHandling.1 Objectives in Exception Handling To know what is exception

More information

Remedial Java - Excep0ons 3/09/17. (remedial) Java. Jars. Anastasia Bezerianos 1

Remedial Java - Excep0ons 3/09/17. (remedial) Java. Jars. Anastasia Bezerianos 1 (remedial) Java anastasia.bezerianos@lri.fr Jars Anastasia Bezerianos 1 Disk organiza0on of Packages! Packages are just directories! For example! class3.inheritancerpg is located in! \remedialjava\src\class3\inheritencerpg!

More information

Data Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi

Data Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi Data Structures Subodh Kumar Dept of Computer Sc. & Engg. IIT Delhi OOP Quiz 2 Class Bird extends class Animal. class Cat { public Bird catchbird(bird birdtocatch) {... Later in a method Animal pigeon

More information

CS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010

CS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010 CS302 Midterm Exam Answers & Grading James S. Plank September 30, 2010 Question 1 Part 1, Program A: This program reads integers on standard input and stops when it encounters EOF or a non-integer. It

More information

Bug tracking. Second level Third level Fourth level Fifth level. - Software Development Project. Wednesday, March 6, 2013

Bug tracking. Second level Third level Fourth level Fifth level. - Software Development Project. Wednesday, March 6, 2013 Bug tracking Click to edit Master CSE text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level Wednesday, March 6, 2013 1 Prototype submission An email with your

More information

Pages and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines for more effective use of exceptions.

Pages and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines for more effective use of exceptions. CS511, HANDOUT 12, 7 February 2007 Exceptions READING: Chapter 4 in [PDJ] rationale for exceptions in general. Pages 56-63 and 68 in [JN] conventions for using exceptions in Java. Chapter 8 in [EJ] guidelines

More information

COE318 Lecture Notes Week 10 (Nov 7, 2011)

COE318 Lecture Notes Week 10 (Nov 7, 2011) COE318 Software Systems Lecture Notes: Week 10 1 of 5 COE318 Lecture Notes Week 10 (Nov 7, 2011) Topics More about exceptions References Head First Java: Chapter 11 (Risky Behavior) The Java Tutorial:

More information

COS226 - Spring 2018 Class Meeting # 21 April 23, 2018

COS226 - Spring 2018 Class Meeting # 21 April 23, 2018 COS226 - Spring 2018 Class Meeting # 21 April 23, 2018 X Unhandled exception has occurred in your application. if you click continue the application will ignore this error and attempt to continue. If you

More information

CSCI Object Oriented Design: Java Review Errors George Blankenship. Java Review - Errors George Blankenship 1

CSCI Object Oriented Design: Java Review Errors George Blankenship. Java Review - Errors George Blankenship 1 CSCI 6234 Object Oriented Design: Java Review Errors George Blankenship Java Review - Errors George Blankenship 1 Errors Exceptions Debugging Java Review Topics Java Review - Errors George Blankenship

More information

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED

엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED Outline - Interfaces - An Instrument interface - Multiple Inheritance

More information

CSCI Object-Oriented Design. Java Review Topics. Program Errors. George Blankenship 1. Java Review Errors George Blankenship

CSCI Object-Oriented Design. Java Review Topics. Program Errors. George Blankenship 1. Java Review Errors George Blankenship CSCI 6234 Object Oriented Design: Java Review Errors George Blankenship George Blankenship 1 Errors Exceptions Debugging Java Review Topics George Blankenship 2 Program Errors Types of errors Compile-time

More information

Exceptions - Example. Exceptions - Example

Exceptions - Example. Exceptions - Example - Example //precondition: x >= 0 public void sqrt(double x) double root; if (x < 0.0) //What to do? else //compute the square root of x return root; 1 - Example //precondition: x >= 0 public void sqrt(double

More information

Chapter 13 Exception Handling

Chapter 13 Exception Handling Chapter 13 Exception Handling 1 Motivations When a program runs into a runtime error, the program terminates abnormally. How can you handle the runtime error so that the program can continue to run or

More information

Known Issues Best Practices

Known Issues Best Practices Known Issues Best Practices NextGen Healthcare Success Community www.community.nextgen.com v.3 Updated 11.19.2018 1 TIPS ON KNOWN ISSUES 3 SIMULATION VIDEOS FOR KNOWN ISSUES 3 ANATOMY OF A KNOWN ISSUE

More information

GlobalLogic Technical Question Paper

GlobalLogic Technical Question Paper GlobalLogic Technical Question Paper What is the output of the following code when compiled and run? Select two correct answers. public class Question01 { public static void main(string[] args){ int y=0;

More information

The Limit of DTrace. A Failed Attempt at Deadlock Detection

The Limit of DTrace. A Failed Attempt at Deadlock Detection GEORGE MASON UNIVERSITY The Limit of DTrace A Failed Attempt at Deadlock Detection Khemara Chuon 2008-03-27 Solaris operating system is missing crucial probe implementations required for deadlock detection

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 15 testing ArrayIntList; pre/post conditions and exceptions reading: 4.4 15.1-15.3 2 Searching methods Implement the following methods: indexof returns first index of element,

More information

Day 8. COMP1006/1406 Summer M. Jason Hinek Carleton University

Day 8. COMP1006/1406 Summer M. Jason Hinek Carleton University Day 8 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments Assignment 4 is out and due on Tuesday Bugs and Exception handling 2 Bugs... often use the word bug when there

More information

COMP-202 Unit 9: Exceptions

COMP-202 Unit 9: Exceptions COMP-202 Unit 9: Exceptions Course Evaluations Please do these. -Fast to do -Used to improve course for future. (Winter 2011 had 6 assignments reduced to 4 based on feedback!) 2 Avoiding errors So far,

More information

Refactoring Without Ropes

Refactoring Without Ropes Refactoring Without Ropes Roger Orr OR/2 Limited The term 'refactoring' has become popular in recent years; but how do we do it safely in actual practice? Refactoring... Improving the design of existing

More information

Object Oriented Programming. Week 7 Part 1 Exceptions

Object Oriented Programming. Week 7 Part 1 Exceptions Object Oriented Programming Week 7 Part 1 Exceptions Lecture Overview of Exception How exceptions solve unexpected occurrences Catching exceptions Week 7 2 Exceptions Overview Week 7 3 Unexpected Occurances

More information

Chapter 12 Exception Handling

Chapter 12 Exception Handling Chapter 12 Exception Handling 1 Motivations Goal: Robust code. When a program runs into a runtime error, the program terminates abnormally. How can you handle the runtime error so that the program can

More information

Software Testing and Maintenance

Software Testing and Maintenance Software Testing and Maintenance Testing Strategies Black Box Testing, also known as Behavioral Testing, is a software testing method in which the internal structure/ design/ implementation of the item

More information

Computation Abstractions. Processes vs. Threads. So, What Is a Thread? CMSC 433 Programming Language Technologies and Paradigms Spring 2007

Computation Abstractions. Processes vs. Threads. So, What Is a Thread? CMSC 433 Programming Language Technologies and Paradigms Spring 2007 CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Threads and Synchronization May 8, 2007 Computation Abstractions t1 t1 t4 t2 t1 t2 t5 t3 p1 p2 p3 p4 CPU 1 CPU 2 A computer Processes

More information

Assure Self-Service Portal

Assure Self-Service Portal Assure Self-Service Portal Assure Self-Service Portal is a web-based portal, where Customers are able to: Record Cases to Assure Support 24/7 View existing and past Cases Find solutions to known issues

More information

Regression testing. Whenever you find a bug. Why is this a good idea?

Regression testing. Whenever you find a bug. Why is this a good idea? Regression testing Whenever you find a bug Reproduce it (before you fix it!) Store input that elicited that bug Store correct output Put into test suite Then, fix it and verify the fix Why is this a good

More information

International Journal of Computer Science Trends and Technology (IJCS T) Volume 4 Issue 3, May - Jun 2016

International Journal of Computer Science Trends and Technology (IJCS T) Volume 4 Issue 3, May - Jun 2016 RESEARCH ARTICLE Import Sourcing of Defect Life Cycle and Defect Management Process Dr V.Goutham Department of Computer Science and Engineering TKR Engineering College, JNTU Hyderabad Telangana - India

More information

Exception-Handling Overview

Exception-Handling Overview م.عبد الغني أبوجبل Exception Handling No matter how good a programmer you are, you cannot control everything. Things can go wrong. Very wrong. When you write a risky method, you need code to handle the

More information

Introduction to Computer Science II CS S-22 Exceptions

Introduction to Computer Science II CS S-22 Exceptions Introduction to Computer Science II CS112-2012S-22 Exceptions David Galles Department of Computer Science University of San Francisco 22-0: Errors Errors can occur in program Invalid input / bad data Unexpected

More information

Administration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11

Administration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11 Administration Exceptions CS 99 Summer 2000 Michael Clarkson Lecture 11 Lab 10 due tomorrow No lab tomorrow Work on final projects Remaining office hours Rick: today 2-3 Michael: Thursday 10-noon, Monday

More information

Topic 6: Exceptions. Exceptions are a Java mechanism for dealing with errors & unusual situations

Topic 6: Exceptions. Exceptions are a Java mechanism for dealing with errors & unusual situations Topic 6: Exceptions Exceptions are a Java mechanism for dealing with errors & unusual situations Goals: learn how to... think about different responses to errors write code that catches exceptions write

More information

Exceptions Handling Errors using Exceptions

Exceptions Handling Errors using Exceptions Java Programming in Java Exceptions Handling Errors using Exceptions Exceptions Exception = Exceptional Event Exceptions are: objects, derived from java.lang.throwable. Throwable Objects: Errors (Java

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions and

More information

Software Quality Assurance & Testing

Software Quality Assurance & Testing Software Quality Assurance & Testing 1.Software Testing - An ISTQB-BCS Certified Tester Foundation Guide 3rd edition, 2015 Brian Hambling, Peter Morgan, Geoff Thompson, Peter Williams,Angelina Samaroo

More information

To Think About. MyClass.mogrify(new int[] { 1, 2, 4, 6 }));

To Think About. MyClass.mogrify(new int[] { 1, 2, 4, 6 })); A student adds a JUnit test: To Think About @Test public void mogrifytest() { assertequals("mogrify fails", new int[] { 2, 4, 8, 12 }, MyClass.mogrify(new int[] { 1, 2, 4, 6 })); } The test always seems

More information

CSE 331 Software Design & Implementation

CSE 331 Software Design & Implementation CSE 331 Software Design & Implementation Hal Perkins Spring 2017 Exceptions and Assertions 1 Outline General concepts about dealing with errors and failures Assertions: what, why, how For things you believe

More information

Object-Oriented Programming Design Topic : Exception Programming

Object-Oriented Programming Design Topic : Exception Programming Electrical and Computer Engineering Object-Oriented Topic : Exception Maj Joel Young Joel.Young@afit.edu 18-Sep-03 Maj Joel Young Error Handling General error handling options Notify the user, and Return

More information

Last time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise

Last time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise Last time Reasoning about programs Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in

More information

Reasoning about programs

Reasoning about programs Reasoning about programs Last time Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in

More information

Chapter 11: Exception Handling

Chapter 11: Exception Handling Chapter 11: Exception Handling Understanding Exceptions Exception Any error condition or unexpected behavior in an executing program Exception handling Object-oriented techniques used to manage such errors

More information

Painless Persistence. Some guidelines for creating persistent Java applications that work

Painless Persistence. Some guidelines for creating persistent Java applications that work Painless Persistence Some guidelines for creating persistent Java applications that work The Authors Anthony Patricio Senior JBoss Certification Developer Highest volume poster on early Hibernate forums

More information

Cascade Health Alliance. User Guide. Authorization Management Provider Portal

Cascade Health Alliance. User Guide. Authorization Management Provider Portal Cascade Health Alliance User Guide Authorization Management Provider Portal 8-16-2017 Table of Contents USING THIS GUIDE... 2 SIGNING IN... 2 PROVIDER PORTAL NAVIGATION... 3 Portal... 3 Core... 3 Resources...

More information

Lecture 2 Pre-processing Concurrent Versions System Archives

Lecture 2 Pre-processing Concurrent Versions System Archives Lecture 2 Pre-processing Concurrent Versions System Archives Debian Developer Coordinates Distributed Development Distributed Development I hope no one else is editing the same parts of the code as I am.

More information

Crash course on Reporting Bugs

Crash course on Reporting Bugs Page 1 of 5 Crash course on Reporting Bugs Santhosh Tuppad Test Enthusiast http://tuppad.com Santhosh@testersblog.com Pradeep Soundararajan Test Consultant, Coach, Author and Speaker http://testertested.blogspot.com

More information

Oracle Utilities Application Framework

Oracle Utilities Application Framework Oracle Utilities Application Framework API Reference Notes Release 4.x E54104-04 March 2017 Oracle Utilities Application Framework API Reference Notes Release 4.x E54104-04 Copyright 2017, Oracle and/or

More information

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies Diego Cavalcanti 1, Dalton Guerrero 1, Jorge Figueiredo 1 1 Software Practices Laboratory (SPLab) Federal University of Campina

More information

CS193j, Stanford Handout #25. Exceptions

CS193j, Stanford Handout #25. Exceptions CS193j, Stanford Handout #25 Summer, 2003 Manu Kumar Exceptions Great Exceptations Here we'll cover the basic features and uses of exceptions. Pre-Exceptions A program has to encode two ideas -- how to

More information

Introduction. Exceptions: An OO Way for Handling Errors. Common Runtime Errors. Error Handling. Without Error Handling Example 1

Introduction. Exceptions: An OO Way for Handling Errors. Common Runtime Errors. Error Handling. Without Error Handling Example 1 Exceptions: An OO Way for Handling Errors Introduction Rarely does a program runs successfully at its very first attempt. It is common to make mistakes while developing as well as typing a program. Such

More information

Because you can t fix what you don t know is broken

Because you can t fix what you don t know is broken Because you can t fix what you don t know is broken About me Initiator of the Automated Error Reporting Initiative Project Lead of Eclipse Code Recommenders Eclipse Committer since 2010 Plug-in Developer

More information

CSPP : Introduction to Object-Oriented Programming

CSPP : Introduction to Object-Oriented Programming CSPP 511-01: Introduction to Object-Oriented Programming Harri Hakula Ryerson 256, tel. 773-702-8584 hhakula@cs.uchicago.edu August 7, 2000 CSPP 511-01: Lecture 15, August 7, 2000 1 Exceptions Files: Text

More information

Recreation. MyClass.mogrify(new int[] { 1, 2, 4, 6 }));

Recreation. MyClass.mogrify(new int[] { 1, 2, 4, 6 })); A student adds a JUnit test: Recreation @Test public void mogrifytest() { assertequals("mogrify fails", new int[] { 2, 4, 8, 12 }, MyClass.mogrify(new int[] { 1, 2, 4, 6 })); } The test always seems to

More information

Java Programming Fundamentals - Day Instructor: Jason Yoon Website:

Java Programming Fundamentals - Day Instructor: Jason Yoon Website: Java Programming Fundamentals - Day 1 07.09.2016 Instructor: Jason Yoon Website: http://mryoon.weebly.com Quick Advice Before We Get Started Java is not the same as javascript! Don t get them confused

More information

Problems with Concurrency. February 19, 2014

Problems with Concurrency. February 19, 2014 with Concurrency February 19, 2014 s with concurrency interleavings race conditions dead GUI source of s non-determinism deterministic execution model 2 / 30 General ideas Shared variable Access interleavings

More information

Chapter 15. Exception Handling. Chapter Goals. Error Handling. Error Handling. Throwing Exceptions. Throwing Exceptions

Chapter 15. Exception Handling. Chapter Goals. Error Handling. Error Handling. Throwing Exceptions. Throwing Exceptions Chapter 15 Exception Handling Chapter Goals To learn how to throw exceptions To be able to design your own exception classes To understand the difference between checked and unchecked exceptions To learn

More information

The Anatomy of A FOSS Project

The Anatomy of A FOSS Project The Anatomy of A FOSS Project We heard the historical/ political side What does it mean then to say that something is a FOSS project? What do we think of when we hear that term FOSS project? What are expectations

More information

CMPT 473 Software Quality Assurance. Security. Nick Sumner - Fall 2014

CMPT 473 Software Quality Assurance. Security. Nick Sumner - Fall 2014 CMPT 473 Software Quality Assurance Security Nick Sumner - Fall 2014 Basic Security What are attributes of a secure program? CIA 2 Basic Security What are attributes of a secure program? CIA (C)onfidentiality

More information

Exceptions. Examples of code which shows the syntax and all that

Exceptions. Examples of code which shows the syntax and all that Exceptions Examples of code which shows the syntax and all that When a method might cause a checked exception So the main difference between checked and unchecked exceptions was that the compiler forces

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 04: Exception Handling MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Creating Classes 2 Introduction Exception Handling Common Exceptions Exceptions with Methods Assertions

More information

CSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige

CSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1 2 Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors

More information

Duplication de code: un défi pour l assurance qualité des logiciels?

Duplication de code: un défi pour l assurance qualité des logiciels? Duplication de code: un défi pour l assurance qualité des logiciels? Foutse Khomh S.W.A.T http://swat.polymtl.ca/ 2 JHotDraw 3 Code duplication can be 4 Example of code duplication Duplication to experiment

More information

Full file at Chapter 2 - Inheritance and Exception Handling

Full file at   Chapter 2 - Inheritance and Exception Handling Chapter 2 - Inheritance and Exception Handling TRUE/FALSE 1. The superclass inherits all its properties from the subclass. ANS: F PTS: 1 REF: 76 2. Private members of a superclass can be accessed by a

More information

Exception Handling. General idea Checked vs. unchecked exceptions Semantics of... Example from text: DataAnalyzer.

Exception Handling. General idea Checked vs. unchecked exceptions Semantics of... Example from text: DataAnalyzer. Exception Handling General idea Checked vs. unchecked exceptions Semantics of throws try-catch Example from text: DataAnalyzer Exceptions [Bono] 1 Announcements Lab this week is based on the textbook example

More information

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Ah Lecture Note 29 Streams and Exceptions We saw back in Lecture Note 9 how to design and implement our own Java classes. An object such as a Student4 object contains related fields such as surname,

More information

Chapter 10. Testing and Quality Assurance

Chapter 10. Testing and Quality Assurance Chapter 10 Testing and Quality Assurance Different styles of doing code review Human Reviewer Code Inspection with continuous integration infrastructure Pinger s testing set up Testing Related topics 1.

More information

Midterm assessment - MAKEUP Fall 2010

Midterm assessment - MAKEUP Fall 2010 M257 MTA Faculty of Computer Studies Information Technology and Computing Date: /1/2011 Duration: 60 minutes 1-Version 1 M 257: Putting Java to Work Midterm assessment - MAKEUP Fall 2010 Student Name:

More information

Input Space Partitioning

Input Space Partitioning CMPT 473 Software Quality Assurance Input Space Partitioning Nick Sumner Recall Testing involves running software and comparing observed behavior against expected behavior Select an input, look at the

More information

Video 2.1. Arvind Bhusnurmath. Property of Penn Engineering, Arvind Bhusnurmath. SD1x-2 1

Video 2.1. Arvind Bhusnurmath. Property of Penn Engineering, Arvind Bhusnurmath. SD1x-2 1 Video 2.1 Arvind Bhusnurmath SD1x-2 1 Topics Why is testing important? Different types of testing Unit testing SD1x-2 2 Software testing Integral part of development. If you ship a software with bugs,

More information

Traditional Error Handling

Traditional Error Handling Exception Handling 1 Traditional Error Handling We have already covered several mechanisms for handling errors in C++. We ll quickly review them here. Returning Error Values One classic approach involves

More information

Here is a hierarchy of classes to deal with Input and Output streams.

Here is a hierarchy of classes to deal with Input and Output streams. PART 15 15. Files and I/O 15.1 Reading and Writing Files A stream can be defined as a sequence of data. The InputStream is used to read data from a source and the OutputStream is used for writing data

More information

Bruce Silver Associates Independent Expertise in BPM

Bruce Silver Associates Independent Expertise in BPM Bruce Silver Associates Independent Expertise in BPM BPMN and the Business Process Expert, Part 4: Mastering BPMN Events Summary: The ability to describe event-triggered behavior directly in the diagram

More information

CSE 331. Programming by contract: pre/post conditions; Javadoc

CSE 331. Programming by contract: pre/post conditions; Javadoc CSE 331 Programming by contract: pre/post conditions; Javadoc slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/ 1

More information

Simple testing can prevent most critical failures -- An analysis of production failures in distributed data-intensive systems

Simple testing can prevent most critical failures -- An analysis of production failures in distributed data-intensive systems Simple testing can prevent most critical failures -- An analysis of production failures in distributed data-intensive systems Ding Yuan, Yu Luo, Xin Zhuang, Guilherme Rodrigues, Xu Zhao, Yongle Zhang,

More information

Lecture 19 Programming Exceptions CSE11 Fall 2013

Lecture 19 Programming Exceptions CSE11 Fall 2013 Lecture 19 Programming Exceptions CSE11 Fall 2013 When Things go Wrong We've seen a number of run time errors Array Index out of Bounds e.g., Exception in thread "main" java.lang.arrayindexoutofboundsexception:

More information

Getting Your s Read!

Getting Your  s Read! Getting Your Emails Read! The time-tested, tried, and true methods for getting your emails read and opened. This is essential for anyone that wants to build a full time income from their list efforts.

More information

CMPT 473 Software Quality Assurance. Graph Coverage. Nick Sumner

CMPT 473 Software Quality Assurance. Graph Coverage. Nick Sumner CMPT 473 Software Quality Assurance Graph Coverage Nick Sumner Recall: Coverage/Adequacy Can't look at all possible inputs. Need to determine if a test suite covers / is adequate for our quality objectives.

More information

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley

CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley CSE 142/143 Unofficial Commenting Guide Eric Arendt, Alyssa Harding, Melissa Winstanley In Brief: What You Need to Know to Comment Methods in CSE 143 Audience o A random person you don t know who wants

More information

CS 161 Computer Security. Security Throughout the Software Development Process

CS 161 Computer Security. Security Throughout the Software Development Process Popa & Wagner Spring 2016 CS 161 Computer Security 1/25 Security Throughout the Software Development Process Generally speaking, we should think of security is an ongoing process. For best results, it

More information

Tracking Issues with JIRA

Tracking Issues with JIRA Tracking Issues with JIRA Get a Linux Foundation Account JIRA User's Guide JIRA Setup for ONAP Viewing Issues in JIRA Reporting a Bug Proposing a New Feature JIRA Issue Types JIRA Workflow JIRA Statuses

More information

SERVICE REQUEST MANAGEMENT GUIDE FOR MENTOR PARTNERS

SERVICE REQUEST MANAGEMENT GUIDE FOR MENTOR PARTNERS SERVICE REQUEST MANAGEMENT GUIDE FOR MENTOR PARTNERS This document contains information that is proprietary to Mentor Graphics Corporation, a Siemens business. The original recipient of this document may

More information

Outlook Best Practices:

Outlook Best Practices: Key Items: Make sure all users with mobile devices have the latest updates (OS, IOS, etc.) o IOS 4.2 is known to cause corruption in calendars. Must be on 4.3.3 Look for Event ID 54. This will tell you

More information

DATA MANAGEMENT USE CASES

DATA MANAGEMENT USE CASES DATA MANAGEMENT USE CASES Data Management is a general term for a variety of tasks ISD is frequently asked to assist with. DATA MANAGEMENT WHAT S POSSIBLE? Consulting on implementing new workflows or improving

More information

C. E. McDowell August 25, Baskin Center for. University of California, Santa Cruz. Santa Cruz, CA USA. abstract

C. E. McDowell August 25, Baskin Center for. University of California, Santa Cruz. Santa Cruz, CA USA. abstract Unloading Java Classes That Contain Static Fields C. E. McDowell E. A. Baldwin 97-18 August 25, 1997 Baskin Center for Computer Engineering & Information Sciences University of California, Santa Cruz Santa

More information

Practice exam for CMSC131-04, Fall 2017

Practice exam for CMSC131-04, Fall 2017 Practice exam for CMSC131-04, Fall 2017 Q1 makepalindrome - Relevant topics: arrays, loops Write a method makepalidrome that takes an int array, return a new int array that contains the values from the

More information

Exposing unforeseen consequences of software change

Exposing unforeseen consequences of software change Exposing unforeseen consequences of software change David Notkin University of Washington February 2010 Joint work with Reid Holmes Thank you! My first trip to India and I am sure not my last! Wonderful

More information

School of Informatics, University of Edinburgh

School of Informatics, University of Edinburgh CS1Bh Lecture Note 16 Case Study: Client/Server In this case study we look at providing a slightly more realistic client/server application and explore some of the issues that arise in this context. Specifically

More information

// Initially NULL, points to the dynamically allocated array of bytes. uint8_t *data;

// Initially NULL, points to the dynamically allocated array of bytes. uint8_t *data; Creating a Data Type in C Bytes For this assignment, you will use the struct mechanism in C to implement a data type that represents an array of bytes. This data structure could be used kind of like a

More information

Large-Scale API Protocol Mining for Automated Bug Detection

Large-Scale API Protocol Mining for Automated Bug Detection Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();

More information