The Problem with Good Enough Software Bj Rollison Test Training Manager Microsoft, Inc.

Slides:



Advertisements
Similar presentations
Test process essentials Riitta Viitamäki,
Advertisements

McGraw-Hill/Irwin © 2006 The McGraw-Hill Companies, Inc. All rights reserved BUSINESS DRIVEN TECHNOLOGY Chapter Nineteen: Building Software to Support.
BUSINESS DRIVEN TECHNOLOGY
Chapter 4 Quality Assurance in Context
ICamp GTA Switching to Open Source August 8, 2014 Erin Tripp, discoverygarden inc.
1 In-Process Metrics for Software Testing Kan Ch 10 Steve Chenoweth, RHIT Left – In materials testing, the goal always is to break it! That’s how you know.
CS351 © 2003 Ray S. Babcock Software Testing What is it?
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
1 Testing. 2 About Testing  The reason the program is in testing is that it probably doesn’t work!  We test to find bugs before our users and hope that.
CHAPTER 17 Building Software to Support an Agile Organization
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
Software Process and Product Metrics
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Introduction to Software Testing
History of Software Testing Philippe CHARMAN Last update:
Lecture 3.
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
8/27/20151NeST Controlled. 2 Communication Transportation Education Banking Home Applications.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
1 Advanced Computer Programming Project Management: Software Life Cycle Copyright © Texas Education Agency, 2013.
CST 316 Process. Junior Project Process Provide necessary points of communication for individual effort. Allow a controllable division of labor. Divide.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
9/10/20151 Hyperion Enterprise 6.5 New Features & Functionality Robert Cybulski, CPA Finit Solutions.
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
Business Driven Technology Unit 5 Transforming Organizations McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved.
Appendix D McGraw-Hill/Irwin Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Validation Metrics. Metrics are Needed to Answer the Following Questions How much time is required to find bugs, fix them, and verify that they are fixed?
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
© FPT Software Code Review with VS © FPT Software Agenda What is Code review? Run Code analysis in VS 2012 Configuring Code Analysis rule set.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Software Quality See accompanying Word file “Software quality 1”
IT Requirements Management Balancing Needs and Expectations.
Martin Cryer Software Development. ‹#› Development Processes Traditional e.g. Waterfall Method Agile –Design Build (Quick to Market) –Combines Engineering,
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
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 ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
Software from Requirements Brent Haines April 12, 2007 Why Methodology Doesn’t Really Matter.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
LOGO TESTING Team 8: 1.Nguyễn Hoàng Khánh 2.Dương Quốc Việt 3.Trang Thế Vinh.
Inspection and Review The main objective of an Inspection or a Review is to detect defects. This activity and procedure was first formalized by Mike Fagan.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
CSCE 240 – Intro to Software Engineering Lecture 2.
CS223: Software Engineering Lecture 4: Software Development Models.
CSC444F'07Lecture 41 CSC444 Software Engineering Top 10 Practices.
Requirements Management with Use Cases Module 2: Introduction to RMUC Requirements Management with Use Cases Module 2: Introduction to RMUC.
Week # 4 Quality Assurance Software Quality Engineering 1.
CSC 480 Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Testing More In CS430.
Quality Assurance: Early Work Items
Introduction SOFTWARE ENGINEERING.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Introduction to Software Testing
SDLC The systems development life cycle is the foundation for many systems development methodologies such as RAD and agile Systems development life cycle.
Software Engineering S o f t w a r e T e s t i n g Chapter 8
Software Reviews.
Presentation transcript:

The Problem with Good Enough Software Bj Rollison Test Training Manager Microsoft, Inc.

Overview Discuss the intent and the reality of good enough software Test engineering…where we are and where should we go

What is software quality? Three properties of software quality  Features The cool stuff that makes customers want the software  Attributes Functionality, security, usability, reliability, maintainability  Defects The bugs that make users wish they bought something else  Defects =  Quality There is no such thing as defective, high-quality software

Good enough software Utilitarian view of quality – potential positive consequences outweigh potential negative consequences “…powerful alternative to the orthodox, expensive, and boring methodologies that aim at the best possible quality.” “…secret to the success of Microsoft…”

Utilitarian view in practice Good enough: Features exceed defects 80/20 rule: Defects actually exceed features Defects Features

Development cycles in practice Hack-and-whack approach Projects that rely on testing spend a lot of time and money on testing Orthodox, boring engineered approach Projects that rely on engineering practices use test to validate quality Plan? Code 1 defects / 10 LOC Test Random, Subjective Plan Detailed plan Reviewed Modeled Code Inspected Reviewed Unit tested Test Focused

Microsoft’s success!!! Complex products/ unwanted features Bugs, Security Patches & Service Packs Un-needed/unwanted upgrades Unpredictable, reactionary

The reality of good enough software Tends to focus on features & schedule  PM’s/Dev’s are rewarded for features not quality Heavy investment in testing to validate quality  Reliance on testing to find defects  You can’t test in quality Necessitates sustained engineering  There’s never enough time to do it right the first time, but there’s always enough time to fix it.

Features vs. Quality “If Microsoft is not here in 10 years it won’t be because of a lack of features, it will be due to a lack of quality!” – Craig Zhou, Microsoft Problems in the process  Undefined features  Feature creep  Schedule driven releases

Testing Effectiveness 50% Bugs Testing Ideal Testing Actual

Sustained Engineering Costs Microsoft issued 60 patches for Windows 2000 in 2001 Security patches cost an enterprise customer about $300,000 to install It costs Microsoft about $100,000 per patch Windows XP SP 1 – risk free, but why bother Maintenance has become similar to shipping a product at Microsoft.

The changing role of test engineering

Hack – n - Whack Approach Program Mgt. Development Testing Non-detailed specs Write code Integration testing Unit testing testing System

Engineering Approach Program Mgt. Development Testing Detailed specs Write code Integration testing Unit testing System testing Model

Role of Software Test Engineer Validation  “Establishing confidence that a program…does what it is supposed to do.” – Hetzel, 1983 Falsification  “Executing a program or system with the intent of finding errors.” – Myers, 1979 Achieve testable designs  Spec reviews, modeling, writing hooks in code, etc. Provide information to developers  More than bugs, code reviews, inspections, metrics, etc. Provide information to management  “The penultimate objective of testing is to gather management information.” – Beizer, 1995

Questions