Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002.

Slides:



Advertisements
Similar presentations
Top 10 User Mistakes with Static Analysis Sate IV March 2012.
Advertisements

Test process essentials Riitta Viitamäki,
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION DEBUGGING Autumn 2011 Bug-Date: Sept 9, 1947.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
T. E. Potok - University of Tennessee Software Engineering Dr. Thomas E. Potok Adjunct Professor UT Research Staff Member ORNL.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Introduction.
Applied Software Project Management INTRODUCTION Applied Software Project Management 1 5/20/2015.
Reliability and Safety Lessons Learned. Ways to Prevent Problems Good computer systems Good computer systems Good training Good training Accountability.
MADALINA CROITORU Software Engineering week 1 Madalina Croitoru IUT Montpellier.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
SE 450 Software Processes & Product Metrics 1 Quality Systems Frameworks.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Cleanroom: A Superior Software Development Process Jim Stambaugh 11/29/2006.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
The University Startup Company Law Firm California Massachusetts Florida (310) Stephen P.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
ICAPRG301A Week 4Buggy Programming ICAPRG301A Apply introductory programming techniques Program Bugs US Navy Admiral Grace Hopper is often credited with.
1.  Project: temporary endeavor to achieve some specific objectives in a defined time  Project management ◦ Dynamic process ◦ Controlled and structured.
 CS 5380 Software Engineering Chapter 8 Testing.
Feasibility Analysis What is feasibility and when should feasibility checkpoints occur? What are the four types of feasibility and what is the description.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
The Systems Development Life Cycle
CS5103 Software Engineering Lecture 02 More on Software Process Models.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
Agile Metrics It’s Not All That Complicated. © 2011 VersionOne 2 Welcome – About your Trainer, Katia Sullivan VersionOne Product Trainer and Agile Coach.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
COM/537.  Final Proposal and New Game release Project Assessment.
Teaching slides Chapter 3
Software Engineering Lecture # 1.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
 In an effort to come close to making quota you are put into a very difficult situation where ethics come into play.  To get rid of inventory now in.
CS 5150 Software Engineering Lecture 22 Reliability 3.
IT Project Management, Third Edition Chapter 8 1 Chapter 5: Project Quality Management.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
CS 160 and CMPE/SE 131 Software Engineering April 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Week # 4 Quality Assurance Software Quality Engineering 1.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
1 Chapter 1- Introduction How Bugs affect our lives What is a Bug? What software testers do?
Why the need for an operating system? ● Managing the computer's memory ● Managing the hardware ● Providing a user interface.
Home Stretch 1CPS4: Java for Video Games The Home Stretch.
Information Systems Development
Peter Varhol Solutions Evangelist
Testing More In CS430.
SEVERITY & PRIORITY RELATIONSHIP
Higher Information Systems
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Information Systems Development
Introduction to Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Software Verification, Validation, and Acceptance Testing
CMPE/SE 131 Software Engineering April 11 Class Meeting
Benefits Of Hiring A Inbound Marketing Agency. Think About Time Consumption Most marketer just don’t have the time as they are so busy actually dealing.
The Home S t r e t c h.
Presentation transcript:

Ethics of Software Testing Thomas LaToza CS 210 Final Presentation 12 / 2 / 2002

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Overview Background - facts of testing and bugs Education, training, best practices, and a commitment to reliability All help to improve reliability Don’t solve the problem and still leave Research How much to spend on testing When to release software Most organizations should spend more on testing

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Facts of Testing Testing is an activity to evaluate quality and find bugs Testing only proves presence of bugs Testing NEVER proves absence of bugs (unless you could run every line of code for all possible inputs for all possible states in all possible environments with an oracle that knows the correct output and state) Testing is underappreciated None of the top 5 CS departments offer an undergraduate course on testing or building software systems for reliability (other than formal verification) – only taught as part of a software engineering course Often not perceived as challenging and fun Admission of failure – people make mistakes

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Finding Bugs Not all bugs are equal. Bugs may be Easier to find than other bugs More important than other bugs (bugs that crash or destroy data vs. bugs that make the interface look bad) Invisible until other bugs are fixed

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Fixing Bugs Fixing a bug always has a chance of introducing new bug(s) which may be worse Overall effect of testing depends on ratio of bugs fixed to bugs introduced

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Bugs aren’t cheap For users Bugs and glitches cost the economy $59.5 Billion a year (NIST estimate) For software projects Testing cost can easily be 25 – 50% cost of project and can be much more for certified systems

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Testing bug curve Bugs Time / Effort / Testing resources

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Overview Background - facts of testing and bugs Education, training, best practices, and a commitment to reliability All help to improve reliability Don’t solve the problem and still leave Research How much to spend on testing When to release software Most organizations should spend more on testing

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Engineering practices can help prevent bugs Code reviews – highly effective Team members proof read the code and discuss Writing for readability There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. - C. A. R. Hoare Design by test Write the interface and test case first, then write the functionality Statistical testing Commercial off the shelf software / Open Source / Components Separate Quality Assurance team Betas But none of these replace testing…

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Research Problem has (recently) sparked great research interest Recovery Oriented Computing Formal Methods Program Comprehension Software Engineering

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Testing Review It’s expensive and time consuming Doesn’t guarantee lack of bugs Developers often don’t like doing it But it’s really important…

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Overview Background - facts of testing and bugs Education, training, best practices, and a commitment to reliability All help to improve reliability Don’t solve the problem and still leave Research How much to spend on testing When to release software Most organizations should spend more on testing

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Review – Applying Ethical Theories 1. Evaluate information 2. Consider how decision may affect stakeholders 3. Consider what ethics [ethical values] are relevant to situation 4. Determine the best course of action that takes into account relevant values and stakeholders’ interests. (from Lockheed Martin Decision Making Model)

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign How much to spend on testing (1. Evaluate Information) Most organizations should spend more on testing But have to stop somewhere – can’t spend all of your budget on testing Question of where on the curve is best There are advantages for being further left and advantages for being further right

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign More testing / Less bugs (2. Consider how decision may affect stakeholders) Advantages Developers / Customers – less time working around bugs Customers – less frustration dealing with software Managers – know more about bugs in product and can deliver a higher quality product Company – quality makes software more valuable to customer Company – sooner bugs can be fixed the cheaper they are to fix Disadvantages Customers – more expensive products Company – less features, less compelling reasons for customer to spend money upgrading

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign How much to spend on testing (3. Consider what ethics [ethical values] are relevant to situation) (4. Determine best action based on relevant values and stakeholders) Utilitarian – maximize cost / benefit for company and / or customers Value – have a responsibility to provide a quality product by setting a quality standard and sticking to it Libertarian – just enough that it helps company the most (customer fends for himself) Altruism – so that it is best for the customer

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign When to release (1. Evaluate Information) Would like to have a higher quality product But have to stop somewhere – may not ever find all of the bugs Again question of where on the curve is best There are advantages for being further left and advantages for being further right

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Release later / Less bugs (2. Consider how decision may affect stakeholders) Advantages All of the advantages of more testing / less bugs Managers – know more about quality of the product being delivered Company / customers – higher quality product Disadvantages All of the disadvantages of less testing / more bugs Company – may lose marketshare to competitors Company – no income from product Customer – can’t use product at all Company – may lose credibility for missing deadline

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign When to release (3. Consider what ethics [ethical values] are relevant to situation) (4. Determine best action based on relevant values and stakeholders) Utilitarian – maximize cost / benefit for company and / or customers Value – set quality standard vs. keeping a ship date vs. money for company Libertarian – whenever the most customers will buy it Altruism – so that customer will have optimum balance of most time to use it and the best product

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Conclusions Many other ethical questions Should a bug be fixed? How much information about testing to release? Do developers and testers have professional standards to uphold? Expectations for quality – too high or too low?

© Thomas LaToza - 12/2/2002 – Ethical and Professional Issues in Computing Final Presentation – University of Illinois at Urbana-Champaign Further Reading Economics of Software Verification